Embalagem de envio
Lê e grava as medidas da caixa de envio de um produto do seller, usadas na cotação de frete dos Correios.
Estas rotas só existem quando a loja liga o módulo de frete dos Correios; sem ele a resposta é 403 module_disabled. A gravação usa controle de versão: leia, altere e devolva o updated_at recebido. Se alguém gravar no meio, você recebe 409 e deve reler.
Ler embalagem
/api/v1/vendor/products/{id}/shipping-packagingSellerLer a embalagem medida
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso do usuário seller (veja Tokens).Parâmetros de caminho
idstring (uuid)obrigatórioId do produto.
Exemplo de requisição (ler)
bash
curl "$BASE_URL/api/v1/vendor/products/$PRODUCT_ID/shipping-packaging" \
-H "Authorization: Bearer $TOKEN"Resposta (ler)
200Embalagem
json
{
"box_length": 30,
"box_width": 20,
"box_height": 10,
"min_items_in_box": 1,
"max_items_in_box": 6,
"box_tare_grams": 120,
"updated_at": "2026-10-11T21:20:00.123456Z"
}Campos da resposta
box_lengthnumberComprimento externo da caixa em cm (até 2 casas).
box_widthnumberLargura externa em cm.
box_heightnumberAltura externa em cm.
min_items_in_boxintegerUnidades mínimas que a caixa comporta.
0 = sem mínimo.max_items_in_boxintegerUnidades máximas que a caixa comporta.
0 = sem máximo.box_tare_gramsintegerPeso da caixa vazia em gramas.
updated_atstringVersão da edição. Devolva o mesmo valor no
PUT.Erros (ler)
| 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_catalog"]} |
| 400 | id não é UUID. | {"error":"invalid product id"} |
| 403 | Módulo de frete dos Correios desligado, ou usuário não é de seller. | {"error":"module_disabled"} |
| 404 | Produto não existe. | {"error":"product not found"} |
Gravar embalagem
Grava as medidas da caixa em que o produto realmente é enviado, para a cotação de frete usar a caixa e não só as medidas do produto. Os sete campos são obrigatórios. Para desligar a embalagem medida, envie as três medidas e a tara e as capacidades em 0.
/api/v1/vendor/products/{id}/shipping-packagingSellerGravar a embalagem medida
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso do usuário seller (veja Tokens).Parâmetros de caminho
idstring (uuid)obrigatórioId do produto.
Corpo da requisição
box_lengthnumberComprimento externo da caixa em cm (até 2 casas).
box_widthnumberLargura externa em cm.
box_heightnumberAltura externa em cm.
min_items_in_boxintegerUnidades mínimas que a caixa comporta.
0 = sem mínimo.max_items_in_boxintegerUnidades máximas que a caixa comporta.
0 = sem máximo.box_tare_gramsintegerPeso da caixa vazia em gramas.
updated_atstringVersão da edição. Devolva o mesmo valor no
PUT.Exemplo de requisição (gravar)
bash
curl -X PUT "$BASE_URL/api/v1/vendor/products/$PRODUCT_ID/shipping-packaging" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"box_length": 30,
"box_width": 20,
"box_height": 10,
"min_items_in_box": 1,
"max_items_in_box": 6,
"box_tare_grams": 120,
"updated_at": "2026-10-11T21:20:00.123456Z"
}'Resposta (gravar)
200Embalagem gravada
json
{
"box_length": 30,
"box_width": 20,
"box_height": 10,
"min_items_in_box": 1,
"max_items_in_box": 6,
"box_tare_grams": 120,
"updated_at": "2026-10-11T21:25:00.654321Z"
}Campos da resposta
box_lengthnumberComprimento externo da caixa em cm (até 2 casas).
box_widthnumberLargura externa em cm.
box_heightnumberAltura externa em cm.
min_items_in_boxintegerUnidades mínimas que a caixa comporta.
0 = sem mínimo.max_items_in_boxintegerUnidades máximas que a caixa comporta.
0 = sem máximo.box_tare_gramsintegerPeso da caixa vazia em gramas.
updated_atstringVersão da edição. Devolva o mesmo valor no
PUT.Erros (gravar)
| 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_catalog"]} |
| 400 | Falta algum dos sete campos, ele é null, ou o corpo tem campos a mais. | {"error":"all packaging fields are required"} |
| 400 | Valor inválido: negativo, mais de 2 casas, só uma ou duas das três medidas, caixa definida com capacidade zerada, mínimo maior que máximo, ou capacidade ou tara preenchidas com todas as medidas zeradas. | {"error":"invalid packaging values","detail":"all three outer packaging dimensions are required"} |
| 403 | Módulo de frete dos Correios desligado, ou privilégio de escrita ausente. | {"error":"module_disabled"} |
| 404 | Produto não existe. | {"error":"product not found"} |
| 409 | Alguém gravou depois da sua leitura: o updated_at enviado está velho. | {"error":"product_packaging_changed"} |