POSTComprar de novo
Coloca no carrinho os itens de um pedido antigo, com os preços de hoje.
É o botão "Comprar de novo": pega os itens de um pedido antigo e os coloca no carrinho atual do cliente, de uma vez. Nada é cobrado nem criado aqui; o cliente segue para o checkout normal. Os preços e a disponibilidade são os de hoje (o preço antigo nunca é copiado), então o total do carrinho pode ser diferente do pedido original.
/api/v1/storefront/orders/{orderId}/reorderClienteAdiciona os itens de um pedido ao carrinho
Parâmetros de caminho
orderIduuidobrigatórioId do pedido de origem, que precisa ser do cliente.
bash
curl -X POST "$BASE_URL/api/v1/storefront/orders/$ORDER_ID/reorder" \
-H "Authorization: Bearer $TOKEN"200Itens adicionados
json
{
"added": [
{
"product_id": "a34f126e-ff3b-4779-bf74-bda03502136e",
"name": "Caneca Exemplo",
"sku": "CAN-002",
"quantity": 1,
"unit_price": 4990,
"vendor_id": "9d9d9d56-eb43-4719-889d-055632f7c7da"
}
],
"failed": [],
"cart": {
"cart_id": "1c8e8f2a-63a5-4105-b460-aeb71a1e9bfe",
"items": [
{ "product_id": "a34f126e-ff3b-4779-bf74-bda03502136e", "name": "Caneca Exemplo", "quantity": 1, "unit_price": 4990 }
],
"subtotal": 4990,
"total": 4990,
"currency": "BRL"
}
}Campos da resposta
addedarrayLinhas que entraram no carrinho, com o preço atual em centavos (
unit_price).failedarrayLinhas que não entraram, cada uma com
product_id e reason (por exemplo, produto inativo ou sem estoque). Mostre ao cliente quais ficaram de fora.cartobjectO carrinho depois da operação, no mesmo formato do carrinho da loja (
items, subtotal, total...).| Status | Quando | Corpo |
|---|---|---|
| 400 | orderId não é um UUID | {"error":"invalid orderId","detail":"orderId must be a valid UUID"} |
| 401 | Sem token, ou token inválido ou expirado | {"error":"missing authorization header"} / {"error":"invalid or expired token"} |
| 404 | Pedido inexistente | {"error":"order not found"} |
| 500 | Pedido de outro cliente (hoje a plataforma responde 500 em vez de 404), ou falha interna | {"error":"failed to reorder","detail":"order does not belong to user"} |