GETPreço B2B do cliente
Mostra o preço que o cliente logado paga por um produto, e de onde ele vem (tabela, regra B2B, preço negociado).
Em lojas B2B, o preço depende de quem compra: regras de atacado por cliente ou grupo, listas de preço e preços negociados em cotação. Esta rota resolve o preço efetivo do cliente logado para uma quantidade e diz qual mecanismo o produziu. Exige token de cliente.
A resposta não é guardada em cache.
/api/v1/storefront/products/{id}/b2b-priceClientePreço efetivo B2B do cliente logado
Parâmetros de caminho
iduuidobrigatórioId do produto (UUID completo).
Parâmetros de consulta
quantityintegerpadrão: 1Quantidade. Valor inválido, zero ou negativo vale 1.
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN de um cliente logado. Com chave de API, ela precisa do escopo customer:read.Exemplo de requisição
bash
curl "$BASE_URL/api/v1/storefront/products/5e833a7f-1a77-402c-835a-32594350d7a7/b2b-price?quantity=5" \
-H "Authorization: Bearer $TOKEN"Resposta
200Sem regra, preço base
json
{"product_id":"5e833a7f-1a77-402c-835a-32594350d7a7","quantity":5,"base_price":5290,"unit_price":5290,"total":26450,"source":"base","min_order_qty":1}Com uma regra de atacado de 10% (1000 pontos-base) a partir de 10 unidades:
200Regra B2B aplicada
json
{"product_id":"5e833a7f-1a77-402c-835a-32594350d7a7","quantity":10,"base_price":5290,"unit_price":4761,"total":47610,"discount_bps":1000,"rule_id":3,"source":"b2b_rule","min_order_qty":1}Campos da resposta
product_iduuidId do produto.
quantityintegerQuantidade usada.
base_priceintegerPreço normal do produto, em centavos.
unit_priceintegerPreço unitário do cliente, em centavos.
totalintegerunit_price vezes quantity, em centavos.discount_bpsintegerDesconto da regra em pontos-base (100 = 1%). Só aparece quando a regra é percentual.
rule_idintegerId da regra B2B aplicada. Ausente quando não há regra.
price_list_idstringId da lista de preços, quando
source é price_list.sourcestringbasetierb2b_rulequoterep_discountprice_listOrigem do preço:
base (preço normal), tier (faixa do produto), b2b_rule (regra de atacado), quote (cotação aceita), rep_discount (desconto do representante), price_list (lista de preços).min_order_qtyintegerQuantidade mínima de compra exigida para o cliente neste produto.
Erros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 401 | Sem token de cliente. | {"error":"missing authorization header"} |
| 404 | O produto não existe. | {"error":"product not found"} |
| 500 | Falha no cálculo. | {"error":"failed to calculate price","detail":"..."} |