🔗Public APIs for Uploading

These public endpoints allow you to upload pricing and discount rules from an external system directly into your Shopify store using the B2B/Wholesale Solution app. When a request is made, the app automatically uploads all enabled rules to your active theme, keeping your storefront pricing logic up-to-date.


🔐 Authentication

All requests require an Access Key generated in your app. You can include this in the request body or as a Bearer token header:

Authorization: Bearer <accessKey>

⚠️ Important: Each endpoint has a rate limit of 1 request per 5 minutes. Exceeding this limit returns a 429 Too Many Requests response.


I. 🧾 Upload Custom Pricing Rules

Upload all active Custom Pricing rules from your app or system to Shopify.

Endpoint

POST https://b2b-solution-public-api.bsscommerce.com/api/v1/rule/upload

Request Body

Field
Type
Required
Description

domain

String

Your store’s myshopify.com domain

accessKey

String

API Access Key generated from the B2B/Wholesale Solution app

Example Request

curl -X POST "https://b2b-solution-public-api.bsscommerce.com/api/v1/rule/upload" \
  -H "Content-Type: application/json" \
  -d '{
        "domain": "bsscommerce-store.myshopify.com",
        "accessKey": "yt1pRFAU8ARdwQORhz/Ww7vyS+xxxxxxxxxxxxxx"
      }'

Responses

Code
Meaning
Notes

200 OK

Upload successful

All enabled rules were applied to the active theme

429 Too Many Requests

Rate limit exceeded

Wait 5 minutes before sending another request


II. 📦 Upload Quantity / Amount Breaks Rules

Upload all active Quantity Break or Amount Break rules to your store.

Endpoint

POST https://b2b-solution-public-api.bsscommerce.com/api/v1/qb/rule/upload

Request Body

Field
Type
Required
Description

domain

String

Your store’s myshopify.com domain

accessKey

String

API Access Key generated from the app

Example Request

curl -X POST "https://b2b-solution-public-api.bsscommerce.com/api/v1/qb/rule/upload" \
  -H "Content-Type: application/json" \
  -d '{
        "domain": "bsscommerce-store.myshopify.com",
        "accessKey": "yt1pRFAU8ARdwQORhz/Ww7vyS+xxxxxxxxxxxxxx"
      }'

Responses

Code
Meaning
Notes

200 OK

Rules uploaded successfully

Quantity/Amount Breaks were synced

429 Too Many Requests

Rate limit exceeded

Wait 5 minutes before retrying


III. 💰 Upload Price List Rules

Upload all active Price List rules to your Shopify store.

Endpoint

POST https://b2b-solution-public-api.bsscommerce.com/api/v1/pl/rule/upload

Request Body

Field
Type
Required
Description

domain

String

Your store’s myshopify.com domain

accessKey

String

API Access Key generated from the app

Example Request

curl -X POST "https://b2b-solution-public-api.bsscommerce.com/api/v1/pl/rule/upload" \
  -H "Content-Type: application/json" \
  -d '{
        "domain": "bsscommerce-store.myshopify.com",
        "accessKey": "yt1pRFAU8ARdwQORhz/Ww7vyS+xxxxxxxxxxxxxx"
      }'

Responses

Code
Meaning
Notes

200 OK

Rules uploaded successfully

Price List data has been deployed to the theme

429 Too Many Requests

Rate limit exceeded

Wait 5 minutes before sending another request


🧠 Data Storage and Limitations

When uploading rules through these APIs, the data is stored in Shopify metafields as JSON.

Specification
Details

Maximum metafields

10 keys

Data type

JSON

Max size per key

2,000,000 characters

Total max data size

~20,000,000 characters

Exceeding data

Any content beyond this limit will not be uploaded

Uploaded content

Primarily rule data and minimal setting data

Active rules only

Only enabled rules are uploaded — inactive ones are ignored

Example metafield structure:

{
  "namespace": "bss_b2b_solution",
  "key": "pricing_rule_data",
  "type": "json",
  "value": { /* rule data here */ }
}

🧩 Best Practices

  • 🕐 Respect rate limits: Schedule uploads every 5+ minutes to avoid throttling.

  • 🔑 Secure your API key: Treat it like a password. Do not hardcode it in client-side code.

  • 🧼 Clean inactive rules: Only active rules are uploaded, but keeping the rule list lean helps performance.

  • 🧾 Validate before upload: Make sure rule data size stays within metafield limits (~20MB total).

  • ⚙️ Automate updates: Integrate these APIs into your ERP or product sync pipeline to keep pricing live.


✅ Example Automation Flow

  1. External system (ERP/CRM) updates B2B rules.

  2. System triggers a POST request to the relevant upload API.

  3. B2B/Wholesale Solution validates data and pushes it to the Shopify metafields.

  4. Storefront automatically reflects updated pricing and rule logic.


With these Public Upload APIs, your development team can fully automate pricing rule synchronization — ensuring your B2B store always delivers accurate, real-time pricing without manual updates.

Last updated

Was this helpful?