Preço por quantidade
Lê, cria e substitui as escalas de preço por quantidade e por grupo de clientes de um produto do seller.
Use escalas para preço de atacado ("a partir de 10 unidades, R$ 44,90") ou preço especial para um grupo de clientes. No carrinho, por padrão o preço cobrado é o menor entre as escalas que se aplicam e nunca passa do preço base do produto. A loja pode trocar a regra para usar a escala de maior quantidade atingida; o limite do preço base continua valendo.
Ler
/api/v1/vendor/products/{id}/price-tiersSellerLer as escalas de preço
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso do usuário seller (veja Tokens).Parâmetros de caminho
idstring (uuid)obrigatórioExemplo de requisição (ler)
curl "$BASE_URL/api/v1/vendor/products/$PRODUCT_ID/price-tiers" \
-H "Authorization: Bearer $TOKEN"Resposta (ler)
{
"tiers": [
{
"id": "7a6b5c4d-0001-4e2f-9a3b-1c2d3e4f5a6b",
"product_id": "7bc1d5e9-a9a4-457b-866f-bbb3879d258d",
"lower_limit": 10,
"price": 4490,
"percentage_discount": 0,
"usergroup_id": null,
"created_at": "2026-10-11T21:30:00Z"
}
],
"base_price": 4990,
"product_id": "7bc1d5e9-a9a4-457b-866f-bbb3879d258d"
}Campos da resposta
tiersarrayEscalas, ordenadas por grupo e quantidade.
idstring (uuid)product_idstring (uuid)lower_limitintegerpriceintegerpercentage_discountnumberprice.usergroup_idstring | nullnull = todos; guest = visitantes; registered = logados; ou o UUID de um grupo de clientes.value_per_kgintegervalue_per_unitintegercreated_atstringbase_priceintegerproduct_idstring (uuid)Erros (ler)
| Status | Quando | Corpo |
|---|---|---|
| 401 | Token ausente, inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | Token que não é de seller, ou usuário sem o privilégio exigido pela rota. | {"error":"insufficient vendor privileges","privilege_required_any":["vendor_catalog"]} |
| 403 | O produto existe mas é de outro seller (ou da loja). | {"error":"you do not have access to this product"} |
| 404 | Produto não existe. | {"error":"product not found"} |
Criar uma escala
Cria a escala, ou atualiza a existente quando já há uma para o mesmo lower_limit e grupo.
/api/v1/vendor/products/{id}/price-tiersSellerCriar ou atualizar uma escala
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso do usuário seller (veja Tokens).Parâmetros de caminho
idstring (uuid)obrigatórioCorpo da requisição
lower_limitintegerobrigatóriopriceintegerobrigatóriopercentage_discountnumberusergroup_idstringguest, registered ou UUID de grupo.value_per_kgintegervalue_per_unitintegerExemplo de requisição (criar)
curl -X POST "$BASE_URL/api/v1/vendor/products/$PRODUCT_ID/price-tiers" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"lower_limit": 10,
"price": 4490
}'Resposta (criar)
{
"id": "7a6b5c4d-0001-4e2f-9a3b-1c2d3e4f5a6b",
"product_id": "7bc1d5e9-a9a4-457b-866f-bbb3879d258d",
"lower_limit": 10,
"price": 4490,
"percentage_discount": 0,
"usergroup_id": null,
"created_at": "2026-10-11T21:30:00Z"
}Campos da resposta
idstring (uuid)product_idstring (uuid)lower_limitintegerpriceintegerpercentage_discountnumberprice.usergroup_idstring | nullnull = todos; guest = visitantes; registered = logados; ou o UUID de um grupo de clientes.value_per_kgintegervalue_per_unitintegercreated_atstringErros (criar)
| Status | Quando | Corpo |
|---|---|---|
| 401 | Token ausente, inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | Token que não é de seller, ou usuário sem o privilégio exigido pela rota. | {"error":"insufficient vendor privileges","privilege_required_any":["vendor_catalog"]} |
| 400 | lower_limit menor que 1. | {"error":"lower_limit must be at least 1"} |
| 403 | O produto existe mas é de outro seller (ou da loja). | {"error":"you do not have access to this product"} |
| 404 | Produto não existe. | {"error":"product not found"} |
Substituir todas
Apaga todas as escalas do produto e grava a lista enviada. Se a lista contiver a escala lower_limit: 1 sem grupo, o preço do produto passa a ser o dela (com o percentual aplicado, se houver).
/api/v1/vendor/products/{id}/price-tiersSellerSubstituir todas as escalas
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso do usuário seller (veja Tokens).Parâmetros de caminho
idstring (uuid)obrigatórioCorpo da requisição
tiersarrayobrigatórioEscalas a gravar (lista vazia remove todas). Itens como em "Criar uma escala"; lower_limit menor que 1 vira 1.
lower_limitintegerobrigatóriopriceintegerobrigatóriopercentage_discountnumberusergroup_idstringguest, registered ou UUID de grupo.value_per_kgintegervalue_per_unitintegerExemplo de requisição (substituir)
curl -X PUT "$BASE_URL/api/v1/vendor/products/$PRODUCT_ID/price-tiers" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"tiers": [
{
"lower_limit": 1,
"price": 4990
},
{
"lower_limit": 10,
"price": 4490
},
{
"lower_limit": 50,
"percentage_discount": 15,
"price": 0
}
]
}'Resposta (substituir)
{
"tiers": [
{
"id": "7a6b5c4d-0001-4e2f-9a3b-1c2d3e4f5a6b",
"product_id": "7bc1d5e9-a9a4-457b-866f-bbb3879d258d",
"lower_limit": 10,
"price": 4490,
"percentage_discount": 0,
"usergroup_id": null,
"created_at": "2026-10-11T21:30:00Z"
}
],
"base_price": 4990,
"product_id": "7bc1d5e9-a9a4-457b-866f-bbb3879d258d"
}Campos da resposta
tiersarrayEscalas, ordenadas por grupo e quantidade.
idstring (uuid)product_idstring (uuid)lower_limitintegerpriceintegerpercentage_discountnumberprice.usergroup_idstring | nullnull = todos; guest = visitantes; registered = logados; ou o UUID de um grupo de clientes.value_per_kgintegervalue_per_unitintegercreated_atstringbase_priceintegerproduct_idstring (uuid)Erros (substituir)
| Status | Quando | Corpo |
|---|---|---|
| 401 | Token ausente, inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | Token que não é de seller, ou usuário sem o privilégio exigido pela rota. | {"error":"insufficient vendor privileges","privilege_required_any":["vendor_catalog"]} |
| 403 | O produto existe mas é de outro seller (ou da loja). | {"error":"you do not have access to this product"} |
| 404 | Produto não existe. | {"error":"product not found"} |