These REST APIs let you manage customer pricing rules , calculate variant prices based on rules, and fetch customers/products .
Requirements
Install the B2B/Wholesale Solution Shopify app
Get your Access Key (see below)
🔑 Get the Access Key
Open the B2B/Wholesale Solution app.
Click Copy to copy your accessKey .
Include it in the request body for every call.
🧱 Rule Endpoints
Rule Field Reference
priority
Determines whether a rule is prioritized over another.
status
Copy 0: inactive
1: active apply_to
apply_at
exc_product_type
exclude_from
discount_type
</details>
Get rules by domain
POST https://b2b-solution-public-api.bsscommerce.com/api/v1/pl/get-by-domain
Headers
Body
Response (example)
Get rules by id
POST https://b2b-solution-public-api.bsscommerce.com/api/v1/pl/get-by-id
Headers
Body
Response (example)
Get rules by products
POST https://b2b-solution-public-api.bsscommerce.com/api/v1/pl/get-rules-by-products
Headers
Body
You can choose to get rules by either product IDs or product tags .
Response (example)
Get rules by customers
POST https://b2b-solution-public-api.bsscommerce.com/api/v1/pl/get-rules-by-customers
Headers
Body
You can choose to get rules by either customer IDs or customer tags .
Response (example)
Create or Update a single rule
Limit: You can create a rule of 10,000 products/variants .
POST https://b2b-solution-public-api.bsscommerce.com/api/v1/pl/save
Headers
Body
If there is no id in the request data, a new rule is created. Otherwise, all the data of the existing rule with id will be replaced .
Response (example)
Create or Update multiple rules
Limit: You can create a rule of 10,000 products/variants .
POST https://b2b-solution-public-api.bsscommerce.com/api/v1/pl/bulk-save
Headers
Body
If there is no id , a new rule is created. Otherwise, the existing rule with id will be overridden .
Response (example)
Update product data to a single rule
This endpoint helps you:
Add new specific products to your existing rule
(If the product/variant ID does not exist in the rule, it is treated as new )
Edit existing product data in the rule
(If the product/variant ID already exists , it is treated as existing )
POST https://b2b-solution-public-api.bsscommerce.com/api/v1/pl/update
Headers
Body
Response
Update product data to multiple rules
This endpoint helps you:
Add new specific products to your existing rules
Edit existing product data in the rules
PUT https://b2b-solution-public-api.bsscommerce.com/api/v1/pl/update-items
Headers
Body
Response (success)
Response (mixed)
POST https://b2b-solution-public-api.bsscommerce.com/api/v1/pl/delete
Headers
Body
Response
Delete multiple rules
POST https://b2b-solution-public-api.bsscommerce.com/api/v1/pl/bulk-delete
Headers
Body
Response
Remove existing products from rules
PUT https://b2b-solution-public-api.bsscommerce.com/api/v1/pl/delete-items
Headers
Body
Response (success)
Response (error)
Get Applied Rules for Products
POST https://b2b-solution-public-api.bsscommerce.com/api/v1/pl/get-products-applied-rules
Headers
Body
If customer_id is null , the system checks Price List Rules that apply to all or not-logged-in customers.
Response (example)
Get Price List of Variants based on Applied Rules
POST https://b2b-solution-public-api.bsscommerce.com/api/v1/pl/get-variants-price-list
Headers
Body
If customer_id is null , the system checks Price List Rules that apply to all or not-logged-in customers.
"expand" must be "products" or "variants" based on the applied level in the rule.
Response (example)
🛍️ Product Endpoints
Search products
POST https://b2b-solution-public-api.bsscommerce.com/api/v1/product/search
Headers
Body
afterIndex is a cursor. If null, search starts from the beginning.
Example cursor: eyJsYXN0X2lkIjo2NjU1NDU2Mzc5MDUzLCJsYXN0X3ZhbHVlIjo2NjU1NDU2Mzc5MDUzfQ==
Response (example)
POST https://b2b-solution-public-api.bsscommerce.com/api/v1/product/get-tags
Headers
Body
Response (example)
POST https://b2b-solution-public-api.bsscommerce.com/api/v1/product/get-by-tags
Headers
Body
Operation
"AND" → returned products must contain all tags.
"OR" → returned products must contain any tag in the array.
Response (example)
Get Products by IDs
POST https://b2b-solution-public-api.bsscommerce.com/api/v1/product/get-by-ids
Headers
Body
Response (example)
👤 Customer Endpoints
Search Customers
POST https://b2b-solution-public-api.bsscommerce.com/api/v1/customer/search
Headers
Body
Response (example)
POST https://b2b-solution-public-api.bsscommerce.com/api/v1/customer/get-tags
Headers
Body
Response (example)
Get Customers by IDs
POST https://b2b-solution-public-api.bsscommerce.com/api/v1/customer/get-by-ids
Headers
Body
Response (example)
POST https://b2b-solution-public-api.bsscommerce.com/api/v1/customer/get-by-tags
Headers
Body
Operation
"AND" → must contain all tags.
"OR" → must contain any tag.
Response (example)
🗂️ Collection Endpoints
As provided, Get Collections uses the /customer/search endpoint and returns a customers array.
POST https://b2b-solution-public-api.bsscommerce.com/api/v1/customer/search
Headers
Body
Response (example)
⚙️ Request Handling Policy
We handle one request at a time .
After your request is completed, the next one will be processed.
In case of a server error , it may take up to 3 minutes to recover and process a new request.