Kitchen — Tablero de Órdenes
¿Qué es?
El Tablero es la pantalla principal de la Kitchen app. Muestra todas las órdenes activas en tiempo real y permite que el personal de cocina las avance por el flujo de preparación.
URL: / (raíz de la Kitchen app).
---
Layout general
Encabezado con:
- Título "Órdenes"
- Contador de órdenes activas (estado
pendingopreparing) - Indicador de conexión en tiempo real (punto verde/amarillo/rojo)
- Selector de estación de cocina
- Selector de vista (Kanban / Tabla)
---
Vistas disponibles
Vista Kanban (predeterminada)
Una columna por cada estado visible. Las columnas son configurables, pero el orden siempre es:
| Columna | Estado | Color por defecto |
|---|---|---|
| Pendiente | pending | Amarillo |
| Preparando | preparing | Azul |
| Listo | ready | Verde |
| Entregado | delivered | Gris |
El administrador puede ocultar columnas desde la configuración (visibleStatuses). Las columnas tienen scroll vertical independiente.
Cada columna muestra las órdenes asignadas a ese estado como tarjetas.
Vista Tabla
Todas las órdenes en una tabla horizontal con columnas por estado. Es más compacta y útil para cocinas que manejan muchas órdenes simultáneamente.
La vista Tabla también soporta navegación por teclado:
- Flechas izquierda/derecha para moverse entre columnas
- Flechas arriba/abajo para seleccionar órdenes dentro de una columna
- Enter para abrir el detalle de la orden seleccionada
- Espacio para avanzar el estado de la orden seleccionada
---
Tarjetas de orden (Vista Kanban)
Cada tarjeta muestra:
- Número de orden (prominente, ej. #42)
- Tipo de orden: En mesa / Para llevar / A domicilio (con ícono)
- Número de mesa (si es dine_in)
- Nombre del cliente (si es delivery)
- Tiempo transcurrido desde que se creó la orden (en rojo si supera el umbral de urgencia
urgencyThresholdMinutes) - Lista de artículos (ítems que van a cocina, filtrados con
filterVisibleItems) - Notas del artículo (si hay)
- Estado de redirect si la orden fue redirigida desde otra sucursal
- Botón de acción principal: texto según el estado actual (ej. "Iniciar preparación", "Marcar como lista")
- Método de pago (pequeño, en el pie de la tarjeta)
Colores de urgencia
El tiempo transcurrido cambia de color:
- Normal: gris/muted
- Urgente (supera
urgencyThresholdMinutes): rojo parpadeante
---
Modo de avance: Orden completa vs. Ítem por ítem
La configuración bulkAdvance define cómo se avanzan los estados:
bulkAdvance = true (Modo orden completa)
Al pulsar el botón de acción en una tarjeta, toda la orden avanza al siguiente estado. Una orden va de pending → preparing → ready → delivered.
bulkAdvance = false (Modo ítem por ítem)
Cada artículo de la orden tiene su propio estado y su propio botón. La orden solo avanza al siguiente estado cuando todos sus ítems han avanzado. Permite preparar artículos en paralelo desde distintas estaciones.
En modo ítem por ítem, las "tarjetas" son por ítem, no por orden completa. Cada tarjeta de ítem muestra el nombre del artículo, la cantidad, y el botón para avanzar ese ítem.
---
Flujo de estados de la Kitchen app
pending → preparing → ready → deliveredpending: la orden llegó, está esperando que cocina la tomepreparing: cocina está trabajando en la ordenready: la orden está lista para ser entregada al cliente (o recogida)delivered: el pedido fue entregado (también puede avanzarse desde el POS)
Nota: El estado awaiting_confirmation (esperando aprobación) no aparece en el tablero de cocina. La cocina solo ve órdenes que ya fueron aprobadas (pending en adelante).
---
Sonido de nuevas órdenes
Si soundEnabled = true (configurado en /settings), cuando llega una nueva orden se reproduce un sonido de alerta. El sonido se activa mediante playNewOrderSound() al recibir el evento order.created de Ably.
---
Órdenes redirigidas
Si una orden fue enviada desde otra sucursal (redirect):
- La tarjeta muestra un badge con la sucursal de origen
- Si el
redirectStatus = "pending"(la sucursal destino aún no la aceptó), la tarjeta muestra botones Aceptar y Rechazar - Al aceptar, el
redirectStatuscambia aacceptedy la orden entra al flujo normal - Al rechazar, el
redirectStatuscambia arejectedy la sucursal origen es notificada
---
Selector de estación
En el encabezado hay un selector de estación de cocina (botón con el nombre de la estación activa o "Sin estación"). Al seleccionar una estación:
- Las órdenes se filtran para mostrar solo las que corresponden a esa estación según el
categoryFilterconfigurado - Las tarjetas se muestran solo para artículos de las categorías asignadas a esa estación
- Los ajustes de configuración se aplican en la jerarquía: defaults → empresa → sucursal → estación
---
PIN de confirmación
Si requirePinToAdvance = true en la configuración de cocina, antes de avanzar el estado de una orden aparece un diálogo que pide el PIN de la estación. Esto previene avances accidentales.
El PIN se configura por estación o por sucursal en /settings.
---
Indicador de conexión
El punto en el encabezado indica el estado de la conexión Ably:
- Verde: tiempo real activo, los eventos llegan inmediatamente
- Amarillo parpadeante: reconectando
- Rojo parpadeante: sin conexión — la app hace polling automático cada
pollIntervalSecondssegundos como fallback