Skip to main content
Version: Unstable

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

PropertyExplanation
idThe unique identifier for the customer
created_atTimestamp when the customer was associated to product price table in ISO 8601 format
approved_atTimestamp 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 Conflict error. 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.

ParameterExplanation
pagePage to show
per_pageAmount 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.

ParameterExplanation
pagePage to show
per_pageAmount 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.