Pedidos
Listado de pedidos
La pantalla muestra todos los pedidos con filtros en la parte superior:
| Filtro | Opciones |
|---|---|
| Estado | Todos / Creado / Aceptado / Preparando / Listo / En camino / Entregado / Cancelado |
| Rango de fechas | Seleccionar fecha inicio y fin |
| Búsqueda | Por ID de pedido o nombre de cliente |
La tabla muestra: ID, cliente, restaurante, estado, método de pago, total y fecha.
Estados de un pedido
Los pedidos siguen este flujo:
created → accepted → preparing → ready → on_delivery → delivered
↘ cancelled (desde cualquier estado anterior)
| Estado | Significado |
|---|---|
created | Pedido recibido, aún sin aceptar por el restaurante |
accepted | Restaurante aceptó el pedido |
preparing | En preparación en cocina |
ready | Listo para ser recogido por el conductor |
on_delivery | El conductor recogió el pedido, en camino al cliente |
delivered | Entregado al cliente (estado final positivo) |
cancelled | Cancelado (estado final negativo) |
Detalle de un pedido
Hacer clic en un pedido abre su pantalla de detalle con:
- Datos del cliente — nombre, teléfono, dirección de entrega
- Productos ordenados — lista de artículos, variaciones y precios
- Estado del pago — pendiente / pagado / reembolsado / fallido / cortesía
- Conductor asignado — nombre y teléfono (si ya fue asignado)
- Notas al conductor — instrucciones que el restaurante escribió al despachar (ej. "llevar cubiertos")
- Historial de estados — quién ejecutó cada cambio y cuándo
- Incidencias — problemas reportados durante la entrega
- Notas internas — visibles solo para administradores
Acciones disponibles
Los botones de acción aparecen según el estado actual del pedido. Un botón desactivado (gris) indica que esa acción no está disponible en este momento.
Avanzar estado
Mueve el pedido al siguiente estado en el flujo. Por ejemplo, de accepted a preparing, o de ready a on_delivery.
Asignar conductor
Disponible cuando el pedido está en ready. Abre un selector con los conductores en estado Disponible en ese momento. Si el pedido ya tiene conductor asignado, el botón cambia a Reasignar.
Cancelar pedido
Disponible antes de que el pedido llegue a on_delivery. Al cancelar:
- El sistema pide confirmar la acción
- Se selecciona el motivo de cancelación
- La cancelación no se puede deshacer desde el panel
Si el pedido ya está en on_delivery o delivered, la cancelación no está disponible.
Registrar incidencia
Usa esto cuando algo salió mal durante la operación: conductor que no llegó, producto incorrecto, problema con el cliente. La incidencia queda registrada en el historial del pedido pero no cambia su estado.
Nota interna
Agrega un comentario visible solo para administradores. El cliente y el conductor no pueden ver estas notas. Útil para registrar contexto, acuerdos o instrucciones para el equipo.
Cortesía — condonar pago
Disponible en pedidos con pago pendiente en efectivo o terminal. Permite condonar el cobro por decisión del administrador (ej. error del restaurante, inconveniente con el pedido).
- Abrir el detalle del pedido
- Usar el botón Cortesía (solo visible si el pago está pendiente y el método es efectivo o terminal)
- Escribir el motivo de la cortesía
- Confirmar
El estado del pago cambia a Cortesía (badge azul claro). El motivo queda registrado en la auditoría.
Los pedidos de empleados no admiten cortesía salvo que quien la aplique sea superadmin. Esto es intencional para evitar que el beneficio de empleado se combine con una condonación.
Alerta: conductor se liberó
Cuando un conductor no puede recoger el pedido y lo reporta desde su app, aparece un banner naranja en la parte superior del detalle del pedido con:
- El motivo que indicó el conductor
- La hora en que ocurrió
- Un botón Ignorar aviso
El conductor queda desasignado automáticamente. El pedido necesita un nuevo conductor — usa Asignar conductor para asignar uno disponible.
Al tocar Ignorar aviso el banner desaparece, pero el evento queda registrado en el historial. Si se asigna un nuevo conductor, el banner también desaparece automáticamente.
Pagos manuales
Si el cliente paga en efectivo o con terminal al momento de la entrega:
- Abrir el detalle del pedido
- Usar Registrar pago manual
- Seleccionar método: efectivo o terminal
- Confirmar el monto
Solo registrar pagos que efectivamente se recibieron. El sistema no verifica el monto — la responsabilidad es del operador.
Pedidos legacy (sistema anterior)
Desde julio de 2026 el sistema anterior está apagado — ningún pedido nuevo se crea ya como legacy. Esta sección aplica solo a pedidos históricos, importados antes del corte.
Los pedidos importados del sistema anterior se identifican porque:
- Llevan una etiqueta "Legacy" junto al folio
- El campo Cliente puede aparecer como "—" (el sistema anterior no siempre guardaba el nombre en el pedido)
- El campo Sucursal puede aparecer también como "—"
- Pueden tener advertencias en el detalle (
LEGACY_ORDER_SERIALIZED,MISSING_FIELDS, etc.) - La única acción disponible es Sincronizar V2 — crea o actualiza el espejo del pedido en el sistema nuevo. No existe una acción de "migración masiva"; cada pedido se sincroniza individualmente si hace falta.
Estas advertencias son normales e indican datos del sistema anterior. No requieren acción inmediata a menos que el equipo técnico lo indique.
Reembolsos
Disponible en pedidos con pago ya confirmado (payment.paid en verdadero) que no estén ya reembolsados o anulados. El botón Reembolsar aparece en el detalle del pedido:
- Abrir el detalle del pedido
- Usar el botón Reembolsar
- Elegir tipo: total o parcial
- Si es parcial, escribir el monto (se sugiere el total del pedido por defecto)
- Elegir el motivo: pedido cancelado, producto no disponible, entrega fallida, queja del cliente, cobro duplicado, ajuste manual, u otro
- Nota opcional
- Confirmar
Solo superadministradores pueden registrar un reembolso. Si el pago se reembolsó directamente desde el proveedor de pago (no desde este botón), el sistema lo detecta y actualiza el estado automáticamente — no hace falta duplicar la acción aquí.
Pago con tarjeta en línea
Además de efectivo y terminal, los pedidos hechos desde la app de clientes pueden pagarse con tarjeta directamente en la app, sin que el conductor ni el restaurante manejen el cobro. Estos pedidos:
- Muestran el método de pago como tarjeta en línea en vez de efectivo/terminal
- El pago se confirma automáticamente cuando el cliente completa el cobro — no requiere acción del restaurante ni del admin
- Si el cliente nunca completa el cobro (cierra la app, tarjeta rechazada sin reintentar), el pedido se cancela solo pasadas 24 horas — no queda pendiente para siempre