Produtos por token de app
Acesso de aplicativos de terceiros para criar, alterar e excluir produtos com token vat_ e escopo write_products, sem usuário administrador.
Um app de terceiros (um conector de ERP, um hub de marketplace, uma ferramenta de catálogo) normalmente não deve usar o login de uma pessoa. A plataforma oferece outra forma de acesso: o app é cadastrado no portal de desenvolvedores da loja, recebe um token de app (começa com vat_live_ ou vat_test_) e só pode o que os escopos aprovados permitem. Para saber como o token é obtido e como o app é aprovado, veja Pedidos por token de app, que explica o mesmo mecanismo.
As rotas de escrita de produtos sob /api/admin/... aceitam esse token. Elas usam o corpo e a resposta do cadastro de administração do produto: dinheiro em centavos inteiros, ids em UUID e erros no formato {"error","detail"}, diferente do formato decimal das rotas /api/v1.0/products. Esta página descreve o cabeçalho, o escopo, as rotas disponíveis e os campos de cada uma.
Rotas disponíveis com token de app
| Rota | Escopo | Operação |
|---|---|---|
POST /api/admin/products | write_products | Criar produto |
PUT /api/admin/products/{id} | write_products | Alterar produto |
DELETE /api/admin/products/{id} | write_products | Excluir produto |
GET /api/admin/products/{id}/inventory | read_inventory | Estoque |
/api/admin/productsAutenticadaToken de app: criar um produto
Responde 201 com o produto completo. Escopo write_products.
Corpo da requisição
namestringobrigatóriovendor_iduuidobrigatóriocategory_iduuidobrigatóriopriceintegerobrigatórioskustringquantitynumberstatusstringpadrão: AADHCampos opcionais adicionais:
Outros campos do corpo
additional_category_idsarraylist_priceintegerprice.cost_priceintegerbarcodestringncm_codestringslugstringdescriptionstringshort_descriptionstringmin_quantitynumbermax_quantitynumber0 = sem máximo).quantity_stepnumberweightnumberlengthnumberwidthnumberheightnumber/api/admin/products/{id}AutenticadaToken de app: alterar um produto
Responde 200 com o produto atualizado. Escopo write_products. O ajuste é parcial: só os campos enviados mudam.
Parâmetros de caminho
iduuidobrigatórioCorpo da requisição
priceintegerquantitynumberstatusstringADHRXQualquer campo de "Outros campos do corpo" da criação também vale na alteração, além de name, vendor_id e category_id.
/api/admin/products/{id}AutenticadaToken de app: excluir um produto
Exclusão suave: 200 {"message":"product deleted"}, e o produto vai para a lixeira por 30 dias. Escopo write_products.
Parâmetros de caminho
iduuidobrigatórioExemplo de requisição
curl -X PUT "$BASE_URL/api/admin/products/0497b6a8-c868-43be-ac21-2abddd24cd3c" \
-H "Authorization: Bearer $APP_TOKEN" \
-H "Content-Type: application/json" \
-d '{"price": 5290, "quantity": 20}'Resposta
{
"id": "0497b6a8-c868-43be-ac21-2abddd24cd3c",
"name": "Caneca Esmaltada 350 ml",
"sku": "CAN-350-AZ",
"price": 5290,
"quantity": 20,
"status": "A",
"price_str": "52.90",
"amount": 20
}Resposta abreviada: o corpo real traz todos os campos do produto.
Campos da resposta
iduuiddisplay_idintegernamestringskustringslugstringpriceintegerlist_priceintegercost_priceintegerquantitynumberstatusstringADHRXvendor_iduuidcategory_iduuidcreated_atstringupdated_atstring*any{"message":"product deleted"}.Erros
| Status | Quando | Corpo |
|---|---|---|
| 400 | {id} zero ou negativo | {"error":"invalid id parameter"} |
| 401 | Sem token, ou o token não é de app (por exemplo um JWT de usuário) | {"error":"app_token_required"} |
| 401 | Token de app inválido, revogado ou expirado | A mensagem sai do serviço de tokens |
| 403 | O token não tem o escopo write_products | {"error":"missing_scope","required":"write_products"} |
| 400, 404, 409, 500 | Erros de negócio: corpo inválido, produto inexistente, SKU repetido, falha interna | {"error":"...","detail":"..."} |