Product Price Table Customers
This documentation explains how to associate and disassociate customers with a product price table, allowing merchants to control which customers have access to specific pricing rules and discounts.
Customer Properties
| Property | Explanation |
|---|---|
| id | The unique identifier for the customer |
| created_at | Timestamp when the customer was associated to product price table in ISO 8601 format |
| approved_at | Timestamp when the customer was approved to product price table association in ISO 8601 format (nullable) |
Endpoints
PUT /products/price-tables/{id}/customers
Adds one or more customers to a product price table. This operation is incremental (append) — customers sent in each request are added to the existing associations without removing previously linked customers.
Limits and constraints:
- Maximum of 10,000 customers per request.
- A customer can only be associated with one price table at a time. If any customer in the payload is already associated with a price table, the entire batch fails with a
409 Conflicterror. Remove the conflicting customers from the payload or disassociate them from their current price table before retrying.
PUT /products/price-tables/1/customers
["123456789", "654987321", "456897321"]
HTTP/1.1 204 No Content
{}
Error responses
HTTP/1.1 409 Conflict — One or more customers are already associated with a price table. The errors field lists the conflicting customer IDs.
{
"code": 409,
"message": "Conflict",
"description": "Customers are associated with a product price table.",
"errors": [
{
"customers": ["123456789"]
}
]
}
POST /products/price-tables/{id}/approve-customers
Approve one or more customers in a product price table.
POST /products/price-tables/1/approve-customers
["123456789", "654987321", "456897321"]
HTTP/1.1 204 No Content
{}
GET /products/price-tables/customers/{id}
Returns a paginated list of product price tables associated with a customer.
| Parameter | Explanation |
|---|---|
| page | Page to show |
| per_page | Amount of results |
GET /products/price-tables/customers/123456789?page=1&per_page=10
HTTP/1.1 200 Ok
{
"total": 1,
"page": 1,
"price_tables": [
{
"id": "1",
"verification_code": "5a23d45e-52b4-470f-8cf8-ff959b9ef0fa",
"store_id": "3776871",
"name": "Price Table",
"default_discount": "7.00",
"cart_minimum_price": "250.00",
"cart_minimum_quantity": 30,
"auto_approve_customers": true,
"active": true,
"created_at": "2025-11-17T15:12:39.396Z",
"updated_at": "2025-11-23T12:48:52.132Z",
"has_categories": true,
"has_products_variants": false,
"has_customers": true
}
]
}
GET /products/price-tables/{id}/customers
Returns a paginated list of customers from the product price table.
| Parameter | Explanation |
|---|---|
| page | Page to show |
| per_page | Amount of results |
GET /products/price-tables/1/customers?page=1&per_page=50
HTTP/1.1 200 Ok
{
"total": 4,
"page": 1,
"price_table": {
"id": "1",
"verification_code": "5a23d45e-52b4-470f-8cf8-ff959b9ef0fa",
"store_id": "3776871",
"name": "Price Table",
"default_discount": "7.00",
"cart_minimum_price": "250.00",
"cart_minimum_quantity": 30,
"auto_approve_customers": true,
"active": true,
"created_at": "2025-11-17T15:12:39.396Z",
"updated_at": "2025-11-23T12:48:52.132Z",
"has_categories": true,
"has_products_variants": false,
"has_customers": true,
"customers": [
{
"id": "123456789",
"created_at": "2026-04-10T19:10:18.795Z",
"approved_at": "2026-04-22T17:56:42.924Z"
},
{
"id": "987654321",
"created_at": "2026-04-11T19:10:18.795Z",
"approved_at": "2026-04-22T17:56:42.924Z"
},
{
"id": "789456321",
"created_at": "2026-04-12T19:10:18.795Z",
"approved_at": "2026-04-22T17:56:42.924Z"
},
{
"id": "654987321",
"created_at": "2026-04-13T19:10:18.795Z",
"approved_at": "2026-04-22T17:56:42.924Z"
}
]
}
}
DELETE /products/price-tables/{id}/customers/{id}
Delete a specific customer from a product price table.
DELETE /products/price-tables/1/customers/987654321
HTTP/1.1 204 No Content
{}
FAQ
How to create a Product Price Table?
In this case, see the documentation on how to configure the discount in a specific product and variant for a product price table (link with documentation).
How do I bulk-associate customers with a price table?
Use PUT /products/price-tables/{id}/customers with batches of up to 10,000 customer IDs per request. Each request appends the provided customers to the price table — existing associations are preserved.
Before sending a batch, make sure none of the customers are already associated with a price table (including the target one). If any customer in the payload has an existing association, the entire batch is rejected with a 409 Conflict error listing the conflicting IDs. You must remove those customers from the payload or disassociate them first using DELETE /products/price-tables/{id}/customers/{customerId}, then retry.
What happens if I send the same customer in multiple requests?
A customer can only be associated with one price table at a time. If a customer is already linked to any price table and you include them in a new request, the entire batch fails with a 409 Conflict response. To move a customer to a different price table, first delete their association using DELETE /products/price-tables/{id}/customers/{customerId}, then add them to the new table.