Pedir de novo
Coloca na sacola os itens de um pedido anterior, conferindo cada um contra o catálogo de hoje e dizendo o que não deu.
No WhatsApp, o gesto mais natural é repetir o último pedido. Esta rota lê os itens de um pedido do próprio cliente e os adiciona à sacola atual.
Ela não promete uma cópia fiel. Cada item é revalidado contra o catálogo de hoje: o produto que saiu de linha, ficou sem estoque ou passou a exigir uma escolha obrigatória não entra, e volta numa lista com o motivo, para a tela explicar em vez de montar uma sacola errada em silêncio. A sacola atual não é limpa: o cliente pode estar montando outra coisa.
Pedir de novo
/api/v1/storefront/wa-coex/order/{token}/{orderID}/reorderPúblicaAdiciona à sacola os itens de um pedido anterior
Clicar duas vezes não duplica: o que a sacola já tem na quantidade pedida é contado em already_in_cart e não é somado de novo; se tem só parte, entra o que falta. As quantidades fracionadas (1,5 kg) voltam exatas, e a observação de cada linha é levada junto.
Parâmetros de caminho
tokenstringobrigatórioorderIDuuidobrigatórioNão tem corpo.
Exemplo de requisição
curl -X POST "$BASE_URL/api/v1/storefront/wa-coex/order/$TOKEN/9f4a6d2e-1b7c-4c53-8d21-5e0b6a7c1f33/reorder"Resposta
{
"added": 1,
"skipped": [
{ "name": "Mouse sem fio", "reason": "stock", "product_id": "3a872b9c-45e3-4307-85b2-e9a07ef7db06" }
],
"already_in_cart": 0,
"cart": {
"cart_id": "c8a36455-37a0-4d82-bb9b-895931af38ce",
"items": [],
"subtotal_cents": 18400,
"total_cents": 18400,
"currency": "BRL",
"item_count": 2
}
}Campos da resposta
addedintegerskippedarrayname, reason e product_id. reason é unavailable (saiu do catálogo ou do canal), needs_choice (exige hoje uma opção obrigatória ou a variação exata saiu de linha, e o cliente precisa escolher na página do produto) ou stock (sem estoque suficiente).already_in_cartintegercartobjectpendingarrayskipped). O checkout recusa a sacola até cada um ser resolvido.Erros
| Status | Quando | Corpo |
|---|---|---|
| 403 | A loja exige conta para mexer na sacola. | {"error":"account_required","message":"Entre ou crie sua conta para adicionar produtos."} |
| 404 | O pedido não existe, não é deste cliente ou não tem itens. | {"error":"order_not_found"} |
| 503 | Falha ao ler o pedido. | {"error":"reorder_unavailable"} |