Cómo Cambiar el Estado de las Órdenes
Guía completa para actualizar el estado de las órdenes desde diferentes interfaces y entender el flujo de trabajo
¿Por qué es importante actualizar los estados?
Mantener actualizados los estados de las órdenes es fundamental para:
- • Coordinar el trabajo entre cocina, meseros y cadetes
- • Informar a los clientes sobre el progreso de sus pedidos
- • Generar notificaciones en tiempo real
- • Mantener un flujo de trabajo eficiente
- • Facilitar el seguimiento y análisis del servicio
Transiciones de Estado Permitidas
Flujo Normal de una Orden
Cancelación de Órdenes
Una orden puede cancelarse desde cualquier estado excepto:
- •
delivered- Ya fue entregada - •
cancelled- Ya está cancelada
Importante: La cancelación revierte el stock automáticamente y registra la acción en el log de auditoría.
Permisos por Rol
Admin / Manager
Control total
- Puede cambiar cualquier estado
- Puede cancelar órdenes
- Puede asignar/reasignar cadetes
- Acceso desde panel de administración
Cocina
Vista de preparación
confirmed→preparingpreparing→ready- No puede cancelar órdenes
- No puede asignar cadetes
POS / Cajero
Punto de venta
- Puede crear órdenes (inician en
confirmed) - Puede asignar cadetes a órdenes
ready→out_for_delivery(con cadete)- Puede cancelar órdenes recientes
Cadete
Delivery
out_for_delivery→delivered- Solo puede marcar como entregada
- No puede cancelar órdenes
- Acceso desde app móvil
Cómo Cambiar el Estado - Paso a Paso
Desde el Panel de Administración
- 1
Accede a la sección de Órdenes
Navega a
/{slug}/admin/orders - 2
Selecciona la orden
Haz clic en la orden que deseas actualizar. Se abrirá un modal con los detalles.
- 3
Cambia el estado
En el modal, encontrarás un dropdown con los estados disponibles. Selecciona el nuevo estado.
- 4
Confirma el cambio
Haz clic en "Actualizar Estado". El sistema validará la transición y emitirá notificaciones.
Desde la Vista de Cocina
- 1
Accede a la vista de cocina
Navega a
/{slug}/kitchene inicia sesión con PIN - 2
Visualiza las órdenes pendientes
Verás tarjetas con las órdenes en estado
confirmed - 3
Marca como "En Preparación"
Haz clic en "Comenzar a Preparar". El estado cambiará a
preparing - 4
Marca como "Lista"
Cuando termines, haz clic en "Marcar como Lista". El estado cambiará a
ready
💡 Consejo: La vista de cocina se actualiza en tiempo real. No necesitas refrescar la página para ver nuevas órdenes.
Desde el Punto de Venta (POS)
- 1
Accede al POS
Navega a
/{slug}/pose inicia sesión - 2
Ve a "Órdenes"
Navega a
/{slug}/pos/orders - 3
Gestiona órdenes
Desde aquí puedes:
- • Asignar cadetes a órdenes listas
- • Ver el estado actual de cada orden
- • Cancelar órdenes si es necesario
- 4
Marca como "En Camino"
Al asignar un cadete, la orden cambia automáticamente a
out_for_delivery
Desde la App de Cadete
- 1
Accede con tu PIN único
Usa el link personalizado:
/{slug}/cadete/{id} - 2
Visualiza tus entregas
Verás todas las órdenes asignadas a ti en estado
out_for_delivery - 3
Revisa los detalles
Haz clic en una orden para ver la dirección, productos, monto a cobrar, etc.
- 4
Marca como entregada
Cuando completes la entrega, haz clic en "Marcar como Entregada". El estado cambiará a
delivered
💡 Consejo: Al marcar como entregada, se calcula automáticamente tu comisión según la configuración del cadete (porcentaje o monto fijo).
Endpoint de la API
Actualizar Estado de una Orden
/api/{slug}/orders/{orderId}/statusRequest Body:
{
"status": "preparing" // Nuevo estado
}Headers:
Authorization: Bearer <token> Content-Type: application/json
Response (200 OK):
{
"success": true,
"order": {
"_id": "65a1234567890abcdef12345",
"orderNumber": "ORD-1001",
"status": "preparing",
"items": [...],
"total": 2500,
"updatedAt": "2024-01-15T14:30:00.000Z"
}
}Posibles Errores:
Notificaciones en Tiempo Real
¿Cómo funcionan las notificaciones?
Cuando se actualiza el estado de una orden, el sistema emite eventos WebSocket que permiten actualizaciones en tiempo real en todas las interfaces conectadas.
orderUpdatedEvento principal
Se emite cada vez que cambia el estado de una orden.
// Socket.IO Namespace: /orders
// Room: tenantId
socket.emit('orderUpdated', {
order: {
_id: "...",
orderNumber: "ORD-1001",
status: "preparing",
items: [...],
// ... resto de la orden
}
});orderReadyOrden lista para entregar
Se emite cuando una orden cambia a estado ready.
socket.emit('orderReady', {
order: {
_id: "...",
orderNumber: "ORD-1001",
status: "ready",
// ...
}
});orderAssignedCadete asignado
Se emite cuando se asigna un cadete a una orden.
socket.emit('orderAssigned', {
order: {
_id: "...",
orderNumber: "ORD-1001",
status: "out_for_delivery",
assignedCadete: {
name: "Juan Pérez",
phone: "123456789"
}
// ...
}
});orderDeliveredOrden entregada
Se emite cuando una orden es marcada como entregada.
socket.emit('orderDelivered', {
order: {
_id: "...",
orderNumber: "ORD-1001",
status: "delivered",
deliveredAt: "2024-01-15T15:45:00.000Z"
// ...
}
});orderCancelledOrden cancelada
Se emite cuando se cancela una orden.
socket.emit('orderCancelled', {
order: {
_id: "...",
orderNumber: "ORD-1001",
status: "cancelled",
cancellationReason: "Cliente solicitó cancelación"
// ...
}
});💡 Consejo: Todas las interfaces (Admin, Kitchen, POS, Cadete) están suscritas a estos eventos para mantener la información actualizada sin necesidad de refrescar la página.
Validaciones y Reglas de Negocio
⚠️No se puede retroceder de estado
El sistema solo permite avanzar en el flujo. Por ejemplo, no puedes cambiar de ready a preparing.
ℹ️Órdenes POS inician confirmadas
Las órdenes creadas desde el POS (punto de venta) inician directamente en estado confirmed, saltándose el estado pending.
🚚Cadete requerido para "En Camino"
Para cambiar una orden a out_for_delivery, debe tener un cadete asignado. Si la orden es para retiro en local, se puede marcar directamente como delivered desde ready.
🔒Órdenes entregadas son inmutables
Una vez que una orden está en estado delivered, no se puede modificar su estado ni cancelar. Esto garantiza la integridad de los registros de ventas.
📦Cancelación revierte stock
Al cancelar una orden, el sistema automáticamente revierte el stock de ingredientes que fueron descontados al crear la orden. Esto se registra en el log de movimientos de stock.
✓Auditoría completa
Cada cambio de estado se registra con: usuario que realizó el cambio, timestamp, estado anterior, estado nuevo, y dirección IP. Esto permite un seguimiento completo de la orden.
Mejores Prácticas
Actualiza los estados rápidamente
Mantén los estados actualizados en tiempo real. Esto mejora la coordinación del equipo y la experiencia del cliente.
Usa las notificaciones
Aprovecha las notificaciones en tiempo real para coordinar el trabajo entre cocina, meseros y cadetes sin necesidad de comunicación manual.
Asigna cadetes desde el POS
Cuando una orden esté lista, asigna el cadete inmediatamente desde el POS para optimizar los tiempos de entrega.
Cancela con cuidado
Antes de cancelar una orden, asegúrate de que realmente es necesario. Recuerda que la cancelación revierte el stock y queda registrada en la auditoría.
Monitorea el flujo
Revisa regularmente las órdenes que llevan mucho tiempo en un estado. Esto ayuda a identificar cuellos de botella en el proceso.
Capacita a tu equipo
Asegúrate de que todo el equipo entienda el flujo de estados y la importancia de mantenerlos actualizados correctamente.
Solución de Problemas
❌ Error: "Transición de estado no válida"
Causa: Estás intentando hacer una transición que no está permitida.
Solución:
- Verifica el estado actual de la orden
- Consulta el diagrama de transiciones válidas arriba
- Asegúrate de seguir el flujo correcto
- Recuerda que no puedes retroceder de estado
🔒 Error: "Sin permisos para cambiar este estado"
Causa: Tu rol no tiene permisos para realizar ese cambio de estado.
Solución:
- Verifica tu rol actual (Admin, Kitchen, POS, Cadete)
- Revisa la sección "Permisos por Rol" arriba
- Si necesitas más permisos, contacta a un administrador
- Algunas acciones solo las puede hacer el Admin
🚚 Error: "Debe asignar un cadete primero"
Causa: Intentas marcar la orden como "En Camino" sin asignar un cadete.
Solución:
- Asigna un cadete a la orden primero
- Puedes hacerlo desde el panel de administración o el POS
- Si la orden es para retiro en local, marca como "delivered" directamente desde "ready"
🔄 Las notificaciones no se actualizan en tiempo real
Causa: Problema de conexión WebSocket.
Solución:
- Verifica tu conexión a internet
- Recarga la página (F5)
- Comprueba que el servidor backend esté funcionando
- Revisa la consola del navegador para ver errores de WebSocket
- Si el problema persiste, contacta al soporte técnico
❌ No puedo cancelar una orden
Causa: La orden ya fue entregada o cancelada.
Solución:
- Las órdenes en estado "delivered" o "cancelled" no se pueden modificar
- Si necesitas hacer un ajuste, crea una nueva orden o un reembolso
- Consulta con un administrador para casos especiales
Guías Relacionadas
Estados de las Órdenes
Aprende sobre los 7 estados posibles de una orden y qué significa cada uno.
Asignar Mesero a Órdenes
Guía para asignar meseros a las órdenes y gestionar el seguimiento por empleado.
Cancelar Órdenes
Cómo cancelar órdenes correctamente y entender el impacto en el stock e inventario.
Asignar Cadete
Aprende cómo asignar cadetes a las órdenes para delivery.
Órdenes POS vs Online
Entiende las diferencias entre órdenes del punto de venta y órdenes online.
Historial de Órdenes
Accede y consulta el historial completo de órdenes con filtros avanzados.
¿Necesitas más ayuda?
Si tienes dudas sobre el cambio de estados o necesitas asistencia, estamos aquí para ayudarte.