Carrinho e Pedidos
Autenticação: X-API-Key + Authorization: Bearer <token do cliente> (ações do comprador).
Carrinho
GET
/v1/cart🔒 X-API-Key + BearerPOST
/v1/cart/items🔒 X-API-Key + BearerPATCH
/v1/cart/items/:id🔒 X-API-Key + BearerDELETE
/v1/cart/items/:id🔒 X-API-Key + BearerPOST /v1/cart/items (por VARIANTE)
{ "variantId": "cmse...", "quantity": 2 }
Sempre por variante
variantId, nunca productId. Pegue o id em GET /products/:id → variants[].
Checkout
POST
/v1/orders/checkout🔒 X-API-Key + BearerCria o pedido PENDING a partir do carrinho ativo e reserva o estoque.
- curl
- 201
curl -X POST "$BASE/orders/checkout" \
-H "X-API-Key: $API_KEY" -H "Authorization: Bearer $TOKEN"
{ "id": "cmse...", "status": "PENDING", "total": 359.7 }
Pagar
POST
/v1/orders/:id/pay🔒 X-API-Key + Bearer{ "method": "PIX" } // aprova (padrão)
{ "method": "CREDIT_CARD", "simulate": "decline" } // força recusa (não baixa estoque)
Estados
PENDING → PAID (aprovado, baixa estoque) · PENDING → CANCELLED (libera reserva). Recusa
mantém PENDING.
Acompanhar pedidos
GET
/v1/orders🔒 X-API-Key + BearerGET
/v1/orders/:id🔒 X-API-Key + BearerPOST
/v1/orders/:id/cancel🔒 X-API-Key + BearerGestão de pedidos (painel do grupo)
O painel do aluno usa rotas próprias (token de aluno) para operar os pedidos da loja:
GET
/v1/store/orders🔒 token de alunoPOST
/v1/store/orders/:id/transition🔒 token de alunoPOST
/v1/store/orders/:id/refund🔒 token de alunoPOST /v1/store/orders/:id/transition
{ "to": "SHIPPED" }