Estoque e preço
PATCH /stock — set absoluto de estoque/preço por loja, store_id por item, PRODUCT_NOT_FOUND e remoção de price_override.
Use PATCH /integration/v1/stock para fazer set absoluto de estoque e preço
por loja. Esta rota exige o scope stock:write.
Set absoluto, não delta
O valor enviado substitui o saldo atual — não é um incremento. O ERP é a autoridade de estoque: após cada venda, envie o saldo novo por esta rota.
Requisição
curl -sS -X PATCH https://api.onmia.com.br/integration/v1/stock \
-H "X-API-Key: $ONMIA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"items": [
{
"external_id": "ERP-7891",
"store_id": "c5745b49-3883-45f9-8dc4-63cc7d9f2611",
"stock_quantity": 10.25,
"price_override": 17.99
}
]
}'Resposta
Mesmo envelope por item do catálogo — status 200 mesmo com itens em erro.
{
"sync_id": "7c2d1b90-3e4f-4a5b-8c6d-9e0f1a2b3c4d",
"summary": { "created": 0, "updated": 1, "errors": 0 },
"results": [
{ "index": 0, "external_id": "ERP-7891", "status": "updated" }
]
}Regras
| Regra | Detalhe |
|---|---|
| Não cria produtos | external_id desconhecido retorna status: "error" com code: "PRODUCT_NOT_FOUND" naquele item. |
| Pelo menos um campo | Cada item exige stock_quantity e/ou price_override. Item sem nenhum dos dois é VALIDATION_ERROR. |
| Campos independentes | Campo ausente não é alterado. |
| Remover override | price_override: null remove o override — o preço volta ao preço base do catálogo. |
| Decimais | Preservados até 3 casas. |
store_id por item
store_idé opcional somente quando a chave está restrita a exatamente 1 loja (a loja é implícita).- Chave com acesso a mais de uma loja exige
store_idem todo item.
Confira o store_ids retornado pelo /health para saber em qual modo sua chave
opera.