Tabelas de preço
Lista, consulta, cria, altera e exclui as tabelas de preço B2B da loja.
Uma tabela de preço é o "cabeçalho" da política: nome, código, vigência e prioridade. Os preços ficam nos itens e o alcance fica nas atribuições. Estas cinco rotas cuidam só do cabeçalho. Todas exigem o módulo b2b-pricing e o privilégio manage_b2b ou manage_promotions.
Listar tabelas
Devolve todas as tabelas não excluídas, da maior prioridade para a menor e, em empate, por nome. Não há paginação: a lista de uma loja costuma ser curta.
/api/v1/admin/b2b/price-listsAdminLista as tabelas de preço
Parâmetros de consulta
statusstringdraftactivearchivedExemplo de requisição
Resposta
Campos da resposta
price_listsarrayiduuidnamestringcodestringdescriptionstringstatusstringdraftactivearchivedvalid_fromstringYYYY-MM-DD. O campo some da resposta quando é nulo.valid_untilstringYYYY-MM-DD, inclusive. Some quando é nulo.priorityintegeritem_countintegerassignment_countinteger0 significa que ninguém recebe esta tabela.created_atstringupdated_atstringErros
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token | {"error":"missing authorization header"} |
| 403 | Sem privilégio | {"error":"insufficient privileges","privilege_required_any":["manage_b2b","manage_promotions"]} |
| 403 | Módulo desligado | {"error":"module_disabled","module":"b2b-pricing"} |
| 500 | Falha ao consultar | {"error":"failed to list price lists","detail":"..."} |
Criar uma tabela
Cria uma tabela em rascunho. Ela ainda não afeta nenhum preço: preencha os itens, atribua a quem vale e só então ative.
/api/v1/admin/b2b/price-listsAdminCria uma tabela de preço
Corpo da requisição
namestringobrigatóriocodestringobrigatórioatacado-sp-2026s2). Repetir o código de outra tabela não excluída é recusado.descriptionstringvalid_fromstringYYYY-MM-DD. Vazio ou ausente significa "sem início".valid_untilstringYYYY-MM-DD, inclusive. Vazio ou ausente significa "sem fim".priorityintegerpadrão: 0Exemplo de requisição
Resposta
Os campos são os da listagem. A tabela volta com status: draft e contagens zeradas.
Erros
| Status | Quando | Corpo |
|---|---|---|
| 400 | JSON inválido | {"error":"invalid request body","detail":"..."} |
| 400 | name vazio | {"error":"failed to create price list","detail":"name is required"} |
| 400 | code vazio | {"error":"failed to create price list","detail":"code is required"} |
| 400 | Código repetido ou data inválida | {"error":"failed to create price list","detail":"insert price list: ..."} |
| 401 / 403 | Sem token, sem privilégio, módulo desligado | veja a lista acima |
Consultar uma tabela
Devolve uma tabela pelo id, com as contagens de itens e atribuições.
/api/v1/admin/b2b/price-lists/{id}AdminConsulta uma tabela de preço
Parâmetros de caminho
iduuidobrigatórioExemplo de requisição
Resposta
Erros
| Status | Quando | Corpo |
|---|---|---|
| 404 | UUID válido que não existe, ou tabela excluída | {"error":"price list not found"} |
| 400 | Id 0 | {"error":"invalid id parameter"} |
| 500 | Id que não é UUID | {"error":"price list operation failed","detail":"..."} |
Alterar uma tabela
Altera só os campos enviados (os demais ficam como estão). Não muda o status: use as rotas de ativar e arquivar. O code não é editável.
/api/v1/admin/b2b/price-lists/{id}AdminAltera uma tabela de preço
Parâmetros de caminho
iduuidobrigatórioCorpo da requisição
namestring"" grava um nome vazio (a API não valida aqui).descriptionstringvalid_fromstringYYYY-MM-DD. Enviar "" remove a data.valid_untilstringYYYY-MM-DD. Enviar "" remove a data.priorityintegerExemplo de requisição
Resposta
A resposta é a tabela completa depois da alteração.
Erros
| Status | Quando | Corpo |
|---|---|---|
| 400 | JSON inválido | {"error":"invalid request body","detail":"..."} |
| 404 | Tabela inexistente ou excluída | {"error":"price list not found"} |
| 500 | Id que não é UUID, ou data inválida | {"error":"price list operation failed","detail":"..."} |
Excluir uma tabela
Exclusão lógica: a tabela some das listagens e o code fica livre para reutilização. Só funciona para draft ou archived.
/api/v1/admin/b2b/price-lists/{id}AdminExclui uma tabela de preço
Parâmetros de caminho
iduuidobrigatórioExemplo de requisição
Resposta
Erros
| Status | Quando | Corpo |
|---|---|---|
| 409 | Tabela ativa, já excluída ou inexistente | {"error":"failed to delete price list","detail":"price list not found or not in a deletable state (must be draft/archived)"} |