Cancelar o actualizar un pedido

Actualiza los datos de un pedido existente: estado, notas, causa de cancelación, cortesía, cantidad, comensales, entre otros. Este es el endpoint utilizado para cancelar o anular un pedido.

🚫 Cómo cancelar (o anular) un pedido

Cancelar un pedido no es una ruta aparte: se hace con este mismo PUT /orders cambiando el estado del pedido. Sigue estos pasos:

  1. Obtén el _id del pedido que deseas cancelar (por ejemplo desde GET /orders).
  2. Envía el cuerpo de la petición con:
    • _id: el ID del pedido a cancelar (obligatorio).
    • status: "Cancelada" (también se acepta el valor equivalente "Anulada").
    • causeCancel: el motivo de la cancelación (opcional pero recomendado).
  3. Resultado: el pedido queda con el nuevo estado y se emite una notificación WebSocket con el evento orderCancelled que incluye el producto cancelado, la cantidad, la mesa y el motivo (causeCancel) cuando están disponibles.

Ejemplo mínimo del cuerpo para cancelar:

{
  "_id": "507f1f77bcf86cd799439011",
  "status": "Cancelada",
  "causeCancel": "El cliente cambió de opinión"
}

Nota: "Cancelada" y "Anulada" son equivalentes: ambos valores cancelan el pedido siguiendo exactamente el mismo flujo. Si el _id no corresponde a un pedido del negocio, la respuesta será 404.

Otros comportamientos:

  • Si el pedido se marca como cortesía (complementary.isComplementary = true) el precio y total se establecen en 0.
  • Si updateDiners es true se actualiza la cantidad de comensales (validada entre 1 y 999) y se registra en el historial.
  • Si updateQuantity es true se recalculan los totales de productsExtra y productsCombo según la nueva cantidad.
  • Si el estado cambia a "Entregado" se descuenta del inventario.
  • Cualquier cambio notifica al negocio via WebSocket (ordersUpdated).

Autenticación requerida: Bearer Token en header Authorization: Bearer {tokenCurrent}

Permiso requerido: OR_PUT - "Cancelar Pedidos"

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Body Params
string
required

ID del pedido a actualizar

string
enum

Nuevo estado del pedido

string

ID de la mesa

notes
array of strings

Notas del pedido

notes
string

Motivo de cancelación. Opcional, pero se recomienda enviarlo cuando status es Cancelada/Anulada (se incluye en la notificación WebSocket)

complementary
object

Configuración de cortesía

number

Nueva cantidad del pedido

boolean

Si es true, recalcula totales de productsExtra y productsCombo según la nueva cantidad

diners
object

Cantidad de comensales del pedido (se aplica solo si updateDiners es true)

boolean

Si es true, actualiza la cantidad de comensales con el valor de diners.quantity y lo registra en el historial

promo
object

Información de promoción aplicada

boolean

Si es true, resetea el flag de impresión del pedido

Responses

Language
Credentials
Bearer
JWT
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json