Operações de manutenção
Preenche o código HS dos produtos a partir do NCM, e zera o estoque de todos os produtos antes de uma carga completa de estoque.
Duas operações que agem sobre o catálogo inteiro. Uma é inofensiva e útil para o frete internacional; a outra é destrutiva e existe para preparar uma recarga completa de estoque. As duas exigem o privilégio manage_catalog.
Derivar códigos HS
O código HS (Sistema Harmonizado) é a classificação aduaneira internacional usada nas remessas para o exterior. Os produtos brasileiros têm um código NCM, cujos 6 primeiros dígitos são o código HS. Esta rota copia esses 6 dígitos para o hs_code dos produtos que têm NCM e ainda não têm código HS.
/api/v1/admin/products/derive-hs-codesAdminPreencher códigos HS a partir do NCM
Nunca sobrescreve um código HS digitado por alguém, nunca toca em produtos excluídos e ignora produtos cujo NCM tem menos de 6 dígitos (eles são contados em skipped_no_ncm). A pontuação do NCM (6109.10.00) é ignorada.
Corpo da requisição
product_idsarraynull ou [], para rodar sobre todos os produtos da loja.Exemplo de requisição
curl -X POST "$BASE_URL/api/v1/admin/products/derive-hs-codes" \
-H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '{"product_ids":["ea4e5a3d-bed2-4bcc-bce4-53a8370cee28"]}'Resposta
{ "updated": 0, "skipped_no_ncm": 2 }Campos da resposta
updatedintegerskipped_no_ncmintegerproduct_ids é enviado, conta só esses produtos.Erros
| Status | Quando | Exemplo de corpo |
|---|---|---|
| 401 / 403 | Sem token / sem manage_catalog | {"error":"missing authorization header"} / {"error":"insufficient privileges","required":"manage_catalog"} |
| 500 | Falha do banco de dados | {"error":"derive_failed","detail":"..."} |
| 501 | Frete internacional indisponível nesta loja | {"error":"not_configured","detail":"international shipping unavailable"} |
Zerar todo o estoque
Antes de recarregar o estoque da loja inteira a partir de um arquivo do ERP, algumas lojas primeiro põem tudo em zero para que os produtos ausentes do arquivo não fiquem com quantidade velha. Esta é a rota desse passo.
/api/v1/admin/products/zero-quantitiesAdminZerar o estoque de todos os produtos
Põe quantity em 0 em todos os produtos não excluídos da loja, inclusive os de todos os sellers, em um único comando. Não tem filtro, simulação, token de confirmação nem desfazer. Para proteger contra acidentes, o corpo precisa conter {"confirm": true}; sem isso nada acontece.
Corpo da requisição
confirmbooleanobrigatóriotrue. Qualquer outro valor, corpo vazio ou ausente devolve 400.Exemplo de requisição
curl -X POST "$BASE_URL/api/v1/admin/products/zero-quantities" \
-H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '{"confirm": true}'Resposta
{ "affected": 4985, "message": "Set 4985 products to zero quantity" }Campos da resposta
affectedintegermessagestringErros
| Status | Quando | Exemplo de corpo |
|---|---|---|
| 400 | confirm não é true, ou não há corpo | {"error":"confirmation required","detail":"this zeroes the stock of every product; resend with {\"confirm\":true} to proceed"} |
| 400 | Corpo não é JSON válido | {"error":"invalid request body","detail":"..."} |
| 401 / 403 | Sem token / sem manage_catalog | {"error":"missing authorization header"} / {"error":"insufficient privileges","required":"manage_catalog"} |
| 500 | Falha do banco de dados | {"error":"failed to zero quantities","detail":"..."} |