POSTCriar caixa
Cria uma caixa de produto (grade ou caixa fechada) com a composição de tamanhos e os títulos por idioma.
Use esta operação para cadastrar uma nova caixa: por exemplo, "Grade 37 e 38" com 2 pares do 37 e 4 pares do 38. Criar a caixa não a coloca à venda: ela só passa a valer para um produto depois de ligada a ele por uma variante, que traz o preço e o estoque.
A caixa nasce ativa (status A) se você não disser outro. Para ela ser aceita é preciso ter um título não vazio em pelo menos um idioma e ao menos uma linha de composição com tamanho e quantidade maior que zero.
/api/v1/admin/product-boxesAdminCria uma caixa de produto
Autenticação: Authorization: Bearer <token> de um administrador com o privilégio manage_product_boxes ou manage_catalog.
Corpo da requisição
box_typestringobrigatórioCGC caixa fechada (todos os pares do mesmo tamanho) ou G grade (tamanhos variados). Outro valor dá 400.size_qty_infoarrayobrigatórioComposição da caixa. Precisa ter ao menos uma linha com size não vazio e amount maior que zero.
sizestringobrigatório"37", "M").amountintegerobrigatóriodescriptionsobjectobrigatórioTextos por idioma. A chave é o código do idioma (pt-BR, en...). Pelo menos um idioma precisa ter title com texto.
{lang}.lang_codestring{lang}.titlestring{lang}.descriptionstringstatusstringpadrão: AADHA aparecem na loja.size_variant_idstringlegacy_box_idintegervendor_iduuidExemplo de requisição
Resposta
A resposta é a caixa completa, com os campos de Consultar caixa. Guarde o id: é ele que você usa para criar variantes.
Erros
| Status | Quando | Corpo |
|---|---|---|
| 400 | Corpo não é JSON válido | {"error":"invalid request body","detail":"..."} |
| 400 | box_type diferente de C e G | {"error":"invalid input","detail":"product-boxes: invalid input: box_type must be C or G"} |
| 400 | status fora de A, D, H | {"error":"invalid input","detail":"product-boxes: invalid input: invalid status \"X\""} |
| 400 | Sem título em nenhum idioma | {"error":"invalid input","detail":"product-boxes: invalid input: title is required"} |
| 400 | Sem nenhuma linha de composição utilizável | {"error":"invalid input","detail":"product-boxes: invalid input: at least one size_qty_info row (size + amount > 0) is required"} |
| 401 | Token ausente ou expirado | {"error":"invalid or expired token"} |
| 403 | Módulo product-boxes desligado, ou sem privilégio | {"error":"module_disabled","module":"product-boxes"} |
| 500 | size_variant_id ou vendor_id que não é UUID, ou falha interna | {"error":"internal error","detail":"..."} |