Caixas de produto
Lista, cria, consulta, altera e exclui as caixas do seller: embalagens fechadas de várias unidades e tamanhos para venda no atacado.
Uma caixa representa uma embalagem fechada de atacado, típica de calçados: uma "caixa grade" com 3 pares do 37, 4 do 38 e 3 do 39 (10 pares), ou uma "caixa fechada" só do 38. Aqui você cadastra a composição e o título da caixa; a ligação da caixa com produtos específicos, com preço e estoque próprios, não é feita por estas rotas.
Listar
/api/v1/vendor/product-boxesSellerListar as caixas
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso do usuário seller (veja Tokens).Parâmetros de consulta
pageintegerpadrão: 1Página.
per_pageintegerpadrão: 25Itens por página, 1 a 200.
statusstringADHStatus.
box_typestringCGTipo.
searchstringBusca no título.
size_variant_idstring (uuid)Opção de tamanho.
langstringpadrão: pt-BRIdioma do título.
Exemplo de requisição (listar)
bash
curl "$BASE_URL/api/v1/vendor/product-boxes" \
-H "Authorization: Bearer $TOKEN"Resposta (listar)
200Caixas
json
{
"items": [
{
"id": "fcbde3cd-a90b-435c-90df-9ee2bb438a5f",
"box_type": "G",
"status": "A",
"size_qty_info": [
{
"size": "37",
"amount": 3
},
{
"size": "38",
"amount": 4
},
{
"size": "39",
"amount": 3
}
],
"vendor_id": "94bd7e9a-fdad-4d01-8fc2-ba9d677d8b36",
"created_at": "2026-10-11T20:00:00Z",
"updated_at": "2026-10-11T20:00:00Z",
"title": "Caixa grade 37 ao 39",
"total_pairs": 10
}
],
"total": 1,
"page": 1,
"per_page": 25
}Campos da resposta
itemsarrayCaixas, com title e total_pairs.
idstring (uuid)Id da caixa.
box_typestringCGC caixa fechada (todas as unidades do mesmo tamanho) ou G grade (tamanhos variados).statusstringADHA ativa, D desativada, H oculta.size_qty_infoarrayComposição: lista de
{size, amount}.size_variant_idstring (uuid)Opção de tamanho de referência, se houver.
vendor_idstring (uuid)Seu seller.
descriptionsobjectTítulos por idioma (só no detalhe).
titlestringTítulo no idioma pedido (só na lista).
total_pairsintegerSoma dos
amount da composição (só na lista).created_atstringCriação (RFC 3339).
updated_atstringÚltima alteração (RFC 3339).
totalintegerTotal.
pageintegerPágina.
per_pageintegerItens por página.
Erros (listar)
| 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_settings"]} |
| 403 | O módulo product-boxes está desligado na loja. | {"error":"module disabled","detail":"product-boxes: module disabled for tenant"} |
Criar
/api/v1/vendor/product-boxesSellerCriar uma caixa
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso do usuário seller (veja Tokens).Corpo da requisição
box_typestringobrigatórioCGTipo da caixa.
statusstringpadrão: AADHStatus.
size_qty_infoarrayobrigatórioComposição. Ao menos uma linha com size preenchido e amount maior que zero.
sizestringobrigatórioTamanho, por exemplo
38.amountintegerobrigatórioUnidades desse tamanho.
descriptionsobjectobrigatórioTítulos por idioma (
pt-BR, en...), cada um com lang_code, title, description. Ao menos um título não vazio.size_variant_idstring (uuid)Opção de tamanho de referência. Vazio vira nulo.
Exemplo de requisição (criar)
bash
curl -X POST "$BASE_URL/api/v1/vendor/product-boxes" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"box_type": "G",
"status": "A",
"size_qty_info": [
{
"size": "37",
"amount": 3
},
{
"size": "38",
"amount": 4
},
{
"size": "39",
"amount": 3
}
],
"descriptions": {
"pt-BR": {
"lang_code": "pt-BR",
"title": "Caixa grade 37 ao 39",
"description": "10 pares"
}
}
}'Resposta (criar)
201Caixa criada
json
{
"id": "fcbde3cd-a90b-435c-90df-9ee2bb438a5f",
"box_type": "G",
"status": "A",
"size_qty_info": [
{
"size": "37",
"amount": 3
},
{
"size": "38",
"amount": 4
},
{
"size": "39",
"amount": 3
}
],
"vendor_id": "94bd7e9a-fdad-4d01-8fc2-ba9d677d8b36",
"created_at": "2026-10-11T20:00:00Z",
"updated_at": "2026-10-11T20:00:00Z",
"descriptions": {
"pt-BR": {
"lang_code": "pt-BR",
"title": "Caixa grade 37 ao 39",
"description": "10 pares"
}
},
"title": "Caixa grade 37 ao 39",
"total_pairs": 10
}Campos da resposta
idstring (uuid)Id da caixa.
box_typestringCGC caixa fechada (todas as unidades do mesmo tamanho) ou G grade (tamanhos variados).statusstringADHA ativa, D desativada, H oculta.size_qty_infoarrayComposição: lista de
{size, amount}.size_variant_idstring (uuid)Opção de tamanho de referência, se houver.
vendor_idstring (uuid)Seu seller.
descriptionsobjectTítulos por idioma (só no detalhe).
titlestringTítulo no idioma pedido (só na lista).
total_pairsintegerSoma dos
amount da composição (só na lista).created_atstringCriação (RFC 3339).
updated_atstringÚltima alteração (RFC 3339).
Erros (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_settings"]} |
| 400 | Tipo fora de C/G, status inválido, sem título, ou sem linha de tamanho válida. | {"error":"invalid input","detail":"product-boxes: invalid input: box_type must be C or G"} |
| 403 | O módulo product-boxes está desligado na loja. | {"error":"module disabled","detail":"product-boxes: module disabled for tenant"} |
Consultar
/api/v1/vendor/product-boxes/{id}SellerConsultar uma caixa
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso do usuário seller (veja Tokens).Parâmetros de caminho
idstring (uuid)obrigatórioId da caixa.
Exemplo de requisição (consultar)
bash
curl "$BASE_URL/api/v1/vendor/product-boxes/$BOX_ID" \
-H "Authorization: Bearer $TOKEN"Resposta (consultar)
200Caixa
json
{
"id": "fcbde3cd-a90b-435c-90df-9ee2bb438a5f",
"box_type": "G",
"status": "A",
"size_qty_info": [
{
"size": "37",
"amount": 3
},
{
"size": "38",
"amount": 4
},
{
"size": "39",
"amount": 3
}
],
"vendor_id": "94bd7e9a-fdad-4d01-8fc2-ba9d677d8b36",
"created_at": "2026-10-11T20:00:00Z",
"updated_at": "2026-10-11T20:00:00Z",
"descriptions": {
"pt-BR": {
"lang_code": "pt-BR",
"title": "Caixa grade 37 ao 39",
"description": "10 pares"
}
},
"title": "Caixa grade 37 ao 39",
"total_pairs": 10
}Campos da resposta
idstring (uuid)Id da caixa.
box_typestringCGC caixa fechada (todas as unidades do mesmo tamanho) ou G grade (tamanhos variados).statusstringADHA ativa, D desativada, H oculta.size_qty_infoarrayComposição: lista de
{size, amount}.size_variant_idstring (uuid)Opção de tamanho de referência, se houver.
vendor_idstring (uuid)Seu seller.
descriptionsobjectTítulos por idioma (só no detalhe).
titlestringTítulo no idioma pedido (só na lista).
total_pairsintegerSoma dos
amount da composição (só na lista).created_atstringCriação (RFC 3339).
updated_atstringÚltima alteração (RFC 3339).
Erros (consultar)
| 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_settings"]} |
| 404 | A caixa não existe ou não é sua. | {"error":"product box not found"} |
| 403 | O módulo product-boxes está desligado na loja. | {"error":"module disabled","detail":"product-boxes: module disabled for tenant"} |
Alterar
/api/v1/vendor/product-boxes/{id}SellerAlterar uma caixa
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso do usuário seller (veja Tokens).Parâmetros de caminho
idstring (uuid)obrigatórioId da caixa.
Corpo da requisição
box_typestringCGTipo da caixa.
statusstringADHStatus.
size_variant_idstring (uuid)Opção de tamanho de referência. Vazio vira nulo.
size_qty_infoarrayNova composição (substitui).
descriptionsobjectTítulos por idioma; só os idiomas enviados mudam.
Exemplo de requisição (alterar)
bash
curl -X PUT "$BASE_URL/api/v1/vendor/product-boxes/$BOX_ID" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"status": "H"
}'Resposta (alterar)
200Caixa alterada
json
{
"id": "fcbde3cd-a90b-435c-90df-9ee2bb438a5f",
"box_type": "G",
"status": "H",
"size_qty_info": [
{
"size": "37",
"amount": 3
},
{
"size": "38",
"amount": 4
},
{
"size": "39",
"amount": 3
}
],
"vendor_id": "94bd7e9a-fdad-4d01-8fc2-ba9d677d8b36",
"created_at": "2026-10-11T20:00:00Z",
"updated_at": "2026-10-11T20:00:00Z",
"descriptions": {
"pt-BR": {
"lang_code": "pt-BR",
"title": "Caixa grade 37 ao 39",
"description": "10 pares"
}
},
"title": "Caixa grade 37 ao 39",
"total_pairs": 10
}Campos da resposta
idstring (uuid)Id da caixa.
box_typestringCGC caixa fechada (todas as unidades do mesmo tamanho) ou G grade (tamanhos variados).statusstringADHA ativa, D desativada, H oculta.size_qty_infoarrayComposição: lista de
{size, amount}.size_variant_idstring (uuid)Opção de tamanho de referência, se houver.
vendor_idstring (uuid)Seu seller.
descriptionsobjectTítulos por idioma (só no detalhe).
titlestringTítulo no idioma pedido (só na lista).
total_pairsintegerSoma dos
amount da composição (só na lista).created_atstringCriação (RFC 3339).
updated_atstringÚltima alteração (RFC 3339).
Erros (alterar)
| 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_settings"]} |
| 404 | A caixa não existe ou não é sua. | {"error":"not found","detail":"product-boxes: not found"} |
| 403 | O módulo product-boxes está desligado na loja. | {"error":"module disabled","detail":"product-boxes: module disabled for tenant"} |
| 400 | Tipo ou status inválidos. | {"error":"invalid input","detail":"..."} |
Excluir
/api/v1/vendor/product-boxes/{id}SellerExcluir uma caixa
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso do usuário seller (veja Tokens).Parâmetros de caminho
idstring (uuid)obrigatórioId da caixa.
Exemplo de requisição (excluir)
bash
curl -X DELETE "$BASE_URL/api/v1/vendor/product-boxes/$BOX_ID" \
-H "Authorization: Bearer $TOKEN"Resposta (excluir)
200Caixa excluída
json
{
"message": "product box deleted"
}Campos da resposta
messagestringConfirmação fixa.
Erros (excluir)
| 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_settings"]} |
| 404 | A caixa não existe ou não é sua. | {"error":"not found","detail":"product-boxes: not found"} |
| 403 | O módulo product-boxes está desligado na loja. | {"error":"module disabled","detail":"product-boxes: module disabled for tenant"} |