Consultar regras de preço B2B
Lista as regras de preço B2B com filtros e detalha uma regra.
A lista já traz o nome, o SKU e o preço base do produto e o nome do grupo, para você montar uma tela sem consultas extras.
Listar regras
/api/v1/admin/b2b-price-rulesAdminLista regras de preço B2B
Parâmetros de consulta
product_iduuidSó regras deste produto.
usergroup_iduuidSó regras deste grupo de usuários.
is_activebooleantrue só as ativas; qualquer outro valor não vazio (por exemplo false) só as inativas. Omita para todas.pageintegerpadrão: 1Página, a partir de 1.
per_pageintegerpadrão: 20Itens por página, de 1 a 100. Fora disso volta a 20.
Exemplo de requisição: listar
bash
curl "$BASE_URL/api/v1/admin/b2b-price-rules?product_id=b2e4c104-a926-4da7-a242-03bcc6c5c860&is_active=true" \
-H "Authorization: Bearer $TOKEN"Resposta: listar
200Página de regras
json
{
"rules": [
{
"id": 5,
"product_id": "b2e4c104-a926-4da7-a242-03bcc6c5c860",
"usergroup_id": "a1111111-1111-1111-1111-111111111111",
"min_qty": 50,
"max_qty": 99,
"price_cents": 0,
"discount_bps": 1500,
"priority": 2,
"is_active": true,
"created_at": "2026-07-01T01:42:06.978203Z",
"updated_at": "2026-07-01T01:42:06.978203Z",
"product_name": "Mochila Moderno Cinza 03701",
"product_sku": "SD-003701",
"product_price": 15990
}
],
"total": 24,
"page": 1,
"per_page": 20,
"total_pages": 2
}Campos da resposta
rulesarrayRegras da página.
idintegerIdentificador da regra. Atenção: é um número inteiro, não UUID.
product_iduuidProduto ao qual a regra se aplica.
usergroup_iduuid | omittedGrupo de usuários que recebe o preço. Ausente = vale para todos os clientes.
min_qtyintegerQuantidade mínima (inclusive) para a regra valer.
max_qtyintegerQuantidade máxima (inclusive).
0 = sem limite.price_centsintegerPreço unitário fixo, em centavos. Só vale quando
discount_bps é 0.discount_bpsintegerDesconto sobre o preço base, em pontos-base (
1500 = 15%). Quando maior que zero, tem precedência sobre price_cents.priorityintegerPrioridade de avaliação (maior primeiro). Veja a regra de escolha na home da seção.
is_activebooleanSe a regra está valendo.
created_atstring (RFC 3339)Criação.
updated_atstring (RFC 3339)Última alteração.
product_namestring | omittedNome do produto (para exibição).
product_skustring | omittedSKU do produto.
product_priceinteger | omittedPreço base atual do produto, em centavos.
usergroup_namestring | omittedNome do grupo de usuários.
totalintegerTotal que casa com o filtro.
pageintegerPágina devolvida.
per_pageintegerTamanho da página.
total_pagesintegerTotal de páginas.
Erros: listar
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 401 | Token ausente ou inválido. | {"error":"authentication required"} |
| 403 | O módulo b2b-pricing está desligado na loja. | {"error":"module_disabled","module":"b2b-pricing"} |
| 403 | Falta o privilégio manage_b2b (ou manage_promotions), também para leitura. | {"error":"insufficient privileges","required":"manage_b2b"} |
| 500 | Falha ao consultar (por exemplo product_id que não é UUID). | {"error":"failed to list price rules","detail":"..."} |
Detalhar uma regra
/api/v1/admin/b2b-price-rules/{id}AdminDetalha uma regra de preço B2B
Parâmetros de caminho
idintegerobrigatórioId da regra (inteiro).
Exemplo de requisição: detalhar
bash
curl "$BASE_URL/api/v1/admin/b2b-price-rules/5" \
-H "Authorization: Bearer $TOKEN"Resposta: detalhar
200Regra
json
{
"id": 5,
"product_id": "b2e4c104-a926-4da7-a242-03bcc6c5c860",
"usergroup_id": "a1111111-1111-1111-1111-111111111111",
"min_qty": 50,
"max_qty": 99,
"price_cents": 0,
"discount_bps": 1500,
"priority": 2,
"is_active": true,
"created_at": "2026-07-01T01:42:06.978203Z",
"updated_at": "2026-07-01T01:42:06.978203Z",
"product_name": "Mochila Moderno Cinza 03701",
"product_sku": "SD-003701",
"product_price": 15990
}Campos da resposta
idintegerIdentificador da regra. Atenção: é um número inteiro, não UUID.
product_iduuidProduto ao qual a regra se aplica.
usergroup_iduuid | omittedGrupo de usuários que recebe o preço. Ausente = vale para todos os clientes.
min_qtyintegerQuantidade mínima (inclusive) para a regra valer.
max_qtyintegerQuantidade máxima (inclusive).
0 = sem limite.price_centsintegerPreço unitário fixo, em centavos. Só vale quando
discount_bps é 0.discount_bpsintegerDesconto sobre o preço base, em pontos-base (
1500 = 15%). Quando maior que zero, tem precedência sobre price_cents.priorityintegerPrioridade de avaliação (maior primeiro). Veja a regra de escolha na home da seção.
is_activebooleanSe a regra está valendo.
created_atstring (RFC 3339)Criação.
updated_atstring (RFC 3339)Última alteração.
product_namestring | omittedNome do produto (para exibição).
product_skustring | omittedSKU do produto.
product_priceinteger | omittedPreço base atual do produto, em centavos.
usergroup_namestring | omittedNome do grupo de usuários.
Erros: detalhar
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 401 | Token ausente ou inválido. | {"error":"authentication required"} |
| 403 | O módulo b2b-pricing está desligado na loja. | {"error":"module_disabled","module":"b2b-pricing"} |
| 403 | Falta o privilégio manage_b2b (ou manage_promotions), também para leitura. | {"error":"insufficient privileges","required":"manage_b2b"} |
| 400 | O id da regra não é um número inteiro. | {"error":"invalid rule id"} |
| 404 | Não existe regra com esse id. | {"error":"price rule not found"} |