Orders
Órdenes de Tienda
Endpoints para gestionar el flujo de ventas del módulo Store. A diferencia del módulo restaurant, las órdenes de tienda se resuelven en una sola operación de checkout sin estado de mesa ni mesero.
-
GET /store/orders: Obtiene todas las órdenes de la tienda.- Authorization: Requiere
orders_read - Query Parameters:
status(string, opcional): Filtra por estado de la orden
- cURL Example:
curl -X GET "http://127.0.0.1:9154/store/orders" \-H "Cookie: accessToken=$ACCESS_TOKEN"- Response Body (200 OK): Lista de órdenes.
- Authorization: Requiere
-
GET /store/orders/{id}: Obtiene una orden específica por su ID.- Authorization: Requiere
orders_read - Path Parameters:
id(string): ID de la orden
- cURL Example:
curl -X GET "http://127.0.0.1:9154/store/orders/order-uuid" \-H "Cookie: accessToken=$ACCESS_TOKEN"- Response Body (200 OK): Objeto de la orden.
- Response Body (400 Bad Request):
"Missing order ID"- Response Body (404 Not Found):
"Order not found" - Authorization: Requiere
-
POST /store/orders/checkout: Procesa una venta completa: crea la orden, el ticket y el pago en una sola operación.- Authorization: Requiere
orders_create - Request Body:
{"userId": "string","items": [{"productId": "string","quantity": 1,"priceAtOrder": 25000}],"paymentMethodId": "string","currencyId": "string","amount": 250.00,"transactionId": "string (opcional)","ticketNotes": ""}- cURL Example:
curl -X POST "http://127.0.0.1:9154/store/orders/checkout" \-H "Cookie: accessToken=$ACCESS_TOKEN" \-H "Content-Type: application/json" \-d '{"userId": "user-uuid","items": [{ "productId": "product-uuid", "quantity": 2, "priceAtOrder": 25000 }],"paymentMethodId": "method-uuid","currencyId": "currency-uuid","amount": 500.00}'- Response Body (201 Created):
{"orderId": "order-uuid","ticketId": "ticket-uuid","paymentId": "payment-uuid"}- Response Body (400 Bad Request): stock insuficiente, ítems inválidos o datos de pago incorrectos
"Checkout failed: check items, stock levels, and payment details" - Authorization: Requiere
-
DELETE /store/orders/{id}: Cancela una orden.- Authorization: Requiere
orders_delete - Path Parameters:
id(string): ID de la orden
- cURL Example:
curl -X DELETE "http://127.0.0.1:9154/store/orders/order-uuid" \-H "Cookie: accessToken=$ACCESS_TOKEN"- Response Body (200 OK):
"Order cancelled successfully"- Response Body (400 Bad Request):
"Missing order ID"- Response Body (404 Not Found):
"Order not found or already closed" - Authorization: Requiere
Notas
priceAtOrderse expresa en centavos (ej.25000= $250.00) para evitar errores de punto flotante.- El checkout descuenta stock automáticamente. Si algún producto no tiene stock suficiente, la operación falla completa.
- El campo
transactionIdes útil para vincular pagos externos (Lightning, tarjeta) con la orden.