VenddorDocumentação API
API atualAPI legada
Guia rápidoReferência completa
Carregando índice…
API atual/Guia rápido/Lote, importação e exportação

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.

POST/api/v1/admin/products/derive-hs-codesAdmin

Preencher 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_idsarray
UUIDs de produto para restringir a operação. Omita, ou mande null ou [], para rodar sobre todos os produtos da loja.

Exemplo de requisição

bash
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

200Concluído
json
{ "updated": 0, "skipped_no_ncm": 2 }

Campos da resposta

updatedinteger
Produtos que tiveram o código HS preenchido.
skipped_no_ncminteger
Produtos sem código HS e sem NCM utilizável (menos de 6 dígitos), que por isso não puderam ser preenchidos. Quando product_ids é enviado, conta só esses produtos.

Erros

StatusQuandoExemplo de corpo
401 / 403Sem token / sem manage_catalog{"error":"missing authorization header"} / {"error":"insufficient privileges","required":"manage_catalog"}
500Falha do banco de dados{"error":"derive_failed","detail":"..."}
501Frete internacional indisponível nesta loja{"error":"not_configured","detail":"international shipping unavailable"}
Sem desfazer, mas seguro para repetir

Não há undo_id. Rodar duas vezes é inofensivo: a segunda execução não encontra mais nada para preencher.

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.

POST/api/v1/admin/products/zero-quantitiesAdmin

Zerar 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ório
Precisa ser true. Qualquer outro valor, corpo vazio ou ausente devolve 400.

Exemplo de requisição

bash
curl -X POST "$BASE_URL/api/v1/admin/products/zero-quantities" \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"confirm": true}'

Resposta

200Estoque zerado
json
{ "affected": 4985, "message": "Set 4985 products to zero quantity" }

Campos da resposta

affectedinteger
Produtos cujo estoque não era zero e agora é.
messagestring
Resumo em inglês.

Erros

StatusQuandoExemplo de corpo
400confirm 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"}
400Corpo não é JSON válido{"error":"invalid request body","detail":"..."}
401 / 403Sem token / sem manage_catalog{"error":"missing authorization header"} / {"error":"insufficient privileges","required":"manage_catalog"}
500Falha do banco de dados{"error":"failed to zero quantities","detail":"..."}
Irreversível, e atinge todos os produtos

Não há como recuperar as quantidades anteriores pela API: sem undo_id, sem retrato, sem entrada no histórico. A lista de produtos passará a mostrar estoque zero e a loja deixa de vender tudo o que depende desse número até você carregar as novas quantidades. Exporte antes o catálogo (Exportar) e guarde o arquivo. Nunca chame esta rota "só para testar" numa loja de verdade.

Uma alternativa mais branda

Se você só precisa zerar um grupo de produtos, use um lote por filtro com a ação update_field de Ações em lote: {"field":"quantity","op":"set","value":0}. Ele é simulado, confirmado e pode ser desfeito.

Veja também

  • Ações em lote
  • Importar um arquivo
  • Exportar
Anterior
Exportar
Próxima
Clientes
Nesta página
  • Derivar códigos HS
  • Exemplo de requisição
  • Resposta
  • Erros
  • Zerar todo o estoque
  • Exemplo de requisição
  • Resposta
  • Erros
  • Veja também