Criar caixa
Cria uma caixa de produto (grade ou caixa fechada) na API legada.
Use esta rota para cadastrar a composição de uma grade ou de uma caixa fechada. Ela não liga a caixa a um produto, não define preço e não define estoque: isso é feito no painel da loja.
Criar uma caixa
Cria uma caixa de produto. A caixa criada é sempre da loja, não de um seller, e só vende depois de ligada a um produto no painel.
/api/v1.0/product_boxesAdminCriar uma caixa
A rota exige o módulo product-boxes ligado na loja; sem ele responde erro com a mensagem product-boxes: module disabled for tenant. Autenticação: HTTP Basic com e-mail:chave_de_api de um administrador, ou Authorization: Bearer <JWT>.
Corpo da requisição
box_typestringCGPOST.statusstringADHA no POST.size_qty_infoarray{"size","amount"}. No POST, ao menos uma linha com tamanho e quantidade maior que zero. No PUT, substitui a lista inteira.size_variant_idstringPUT, "" desliga a ligação.descriptionsobject{"pt-BR": {"title": "...", "description": "..."}}. No POST, ao menos um título com texto./api/v1.0/productboxesAdminCriar uma caixa (nome sem sublinhado)
Esta é a grafia sem sublinhado (productboxes), que o aplicativo do seller usa. É o mesmo código, com a mesma resposta. Como as demais rotas desta família, ela também responde sem o prefixo de versão (/api/productboxes), com os ids em número decimal dentro de uma string.
Exemplo de requisição
curl -X POST -u "$EMAIL:$API_KEY" \
-H "Content-Type: application/json" \
-d '{"box_type": "C", "status": "A", "size_qty_info": [{"size": "40", "amount": 3}], "descriptions": {"pt-BR": {"title": "Caixa 40 x3", "description": ""}}}' \
"$BASE_URL/api/v1.0/product_boxes"Resposta
{
"box_id": "65af5203-c797-4aa8-88dd-7018f9fd92b3",
"box_type": "C",
"status": "A",
"size_qty_info": [
{
"size": "40",
"amount": 3
}
],
"size_variant_id": "",
"title": "Caixa 40 x3",
"description": "",
"lang_code": "pt-BR",
"timestamp": 1791752075
}O corpo é a caixa criada, nos mesmos campos de Listar e consultar caixas.
Erros
| Status | Quando | Corpo |
|---|---|---|
| 400 | Corpo inválido, ou regra de criação não atendida (sem título, sem composição, tipo inválido, módulo desligado) | {"message":"invalid request body","status":400} / {"message":"product-boxes: invalid input: title is required","status":400} |
| 401 | Sem credenciais ou chave inválida | {"message":"Authentication required. Use HTTP Basic with email:api_key or Bearer <jwt>.","status":401} |
| 403 | O usuário não é administrador | {"message":"Forbidden: admin scope required","status":403} |