Ativar, arquivar e duplicar
Muda o estado de uma tabela de preço entre rascunho, ativa e arquivada, e cria uma cópia de trabalho para reajustes.
O estado da tabela decide se ela entra no cálculo de preço. Estas três rotas não têm corpo obrigatório e todas exigem o módulo b2b-pricing e o privilégio manage_b2b ou manage_promotions. Ativar e arquivar publicam eventos (price_list.activated e price_list.archived) que integrações e webhooks da loja podem escutar.
Ativar uma tabela
Leva uma tabela de draft ou archived para active. A plataforma não confere se a tabela tem itens ou atribuições antes de ativar. A vigência (valid_from e valid_until) continua valendo: uma tabela ativa fora do período não participa do preço.
/api/v1/admin/b2b/price-lists/{id}/activateAdminAtiva uma tabela de preço
Parâmetros de caminho
iduuidobrigatórioExemplo de requisição
curl -X POST "$BASE_URL/api/v1/admin/b2b/price-lists/3f0c1a52-8d7e-4c1b-9a64-2b5e7d9c1a10/activate" \
-H "Authorization: Bearer $TOKEN"Resposta
{ "status": "active" }Erros
| Status | Quando | Corpo |
|---|---|---|
| 409 | Tabela já ativa, excluída ou inexistente | {"error":"failed to activate price list","detail":"price list not found or not in a valid state for this transition"} |
| 400 | Id 0 | {"error":"invalid id parameter"} |
Arquivar uma tabela
Leva uma tabela de draft ou active para archived. A tabela sai do cálculo de preço imediatamente: carrinhos novos já voltam ao preço base ou à próxima tabela aplicável.
/api/v1/admin/b2b/price-lists/{id}/archiveAdminArquiva uma tabela de preço
Parâmetros de caminho
iduuidobrigatórioExemplo de requisição
curl -X POST "$BASE_URL/api/v1/admin/b2b/price-lists/3f0c1a52-8d7e-4c1b-9a64-2b5e7d9c1a10/archive" \
-H "Authorization: Bearer $TOKEN"Resposta
{ "status": "archived" }Erros
| Status | Quando | Corpo |
|---|---|---|
| 409 | Tabela já arquivada, excluída ou inexistente | {"error":"failed to archive price list","detail":"price list not found or not in a valid state for this transition"} |
Duplicar uma tabela
Cria uma cópia de trabalho em rascunho: o fluxo recomendado para reajustar uma tabela em uso sem mexer no preço de quem já compra. A cópia leva o nome, a descrição, a prioridade e todos os itens. Não leva atribuições, nem vigência, nem status.
/api/v1/admin/b2b/price-lists/{id}/duplicateAdminDuplica uma tabela de preço
Parâmetros de caminho
iduuidobrigatórioCorpo da requisição (opcional)
codestringpadrão: {código original}-copynamestringpadrão: {nome original} (cópia)Exemplo de requisição
curl -X POST "$BASE_URL/api/v1/admin/b2b/price-lists/3f0c1a52-8d7e-4c1b-9a64-2b5e7d9c1a10/duplicate" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ "code": "atacado-sp-2027s1", "name": "Atacado SP 2027-S1" }'Resposta
{
"id": "9b2d6e4f-1c3a-4f78-8e21-5a0c7d3b9e42",
"name": "Atacado SP 2027-S1",
"code": "atacado-sp-2027s1",
"description": "",
"status": "draft",
"priority": 20,
"item_count": 1,
"assignment_count": 0,
"created_at": "2026-10-11T22:20:00Z",
"updated_at": "2026-10-11T22:20:00Z"
}Erros
| Status | Quando | Corpo |
|---|---|---|
| 404 | Tabela de origem inexistente | {"error":"price list not found"} |
| 500 | code já em uso (inclusive o padrão -copy na segunda cópia) | {"error":"price list operation failed","detail":"duplicate header: ..."} |