Cómo hacer un cobro rápido en el TPV
Crea una cuenta rápida en Marea Gran Via, añade productos del catálogo, cobra el total con un método rápido y deja el ticket listo para revisión si el pago o el intento de cierre no termina.
En este artículo
El cobro rápido está pensado para ventas directas de barra o mostrador. El operador trabaja desde la pestaña `Cuenta rapida`, añade productos del catálogo y cobra sin asignar mesa ni reserva.
El flujo usa el servicio activo, el empleado seleccionado cuando el TPV lo exige y hasta dos métodos rápidos de cobro. La implementación actual no debe documentarse como cierre automático garantizado: si algo falla después de crear el ticket, la app lleva al detalle para revisarlo.
Antes de empezar
- Sesión iniciada en Grupo Marea Demo y Marea Gran Via con permiso `tpv:use`.
- `tpv_settings.allow_quick_mode` activo y una `service_session` abierta en la ubicación.
- Productos disponibles en el catálogo del servicio activo o en la carta por defecto, por ejemplo Croquetas o Patatas bravas Marea.
- Al menos un `tpv_payment_method` activo para resolver los botones `Cobrar · {{method}}`.
- Empleado seleccionado si `employee_access_mode` está en `selector`, `pin` o `card`; en la demo, Marta Ruiz.
- Si el método rápido es de efectivo, la terminal `${TPV_TERMINAL_ID}` debe tener una `cash_register_session` abierta.
Instrucciones
- 1.
Abrir Cuenta rapida
Entra en `${APP_DEEPLINK_BASE}${ORG_ID}/${LOCATION_ID}/tpv?tab=fast&terminalId=${TPV_TERMINAL_ID}`. La pestaña aparece solo cuando el modo rápido está permitido.
- 2.
Confirmar empleado y servicio
Comprueba que hay servicio activo y selecciona el empleado si la pantalla lo solicita. El borrador rápido se separa por empleado seleccionado o usa un borrador compartido cuando no se exige empleado.
- 3.
Añadir productos
Busca o filtra productos del catálogo y toca artículos como Croquetas o Bravas. Si el producto ya está en el borrador, aumenta la cantidad; si no, se añade con precio, impuestos y total.
- 4.
Elegir método rápido
Revisa los botones `Cobrar · {{method}}`. La pantalla muestra hasta dos métodos tomados de la configuración primaria/secundaria o, si faltan, de los primeros métodos activos.
- 5.
Cobrar la cuenta
Pulsa el método rápido. La app crea un ticket con `source_kind: fast`, añade los productos como items servidos y registra un pago único por el total calculado.
- 6.
Revisar la resolución
Si el pago cubre el total, el backend marca el ticket como pagado. Después la UI intenta cerrar con `PUT /tickets/{ticketId}` y `status: "closed"`, pero el cierre real implementado está en `POST /tickets/{ticketId}/close`.
- 7.
Imprimir si queda disponible
Cuando la UI termina con un último ticket rápido disponible y el usuario tiene permiso de impresión, aparece la acción `Imprimir ticket`.
Validaciones y límites
- Si `allow_quick_mode` está desactivado, `tab=fast` se normaliza a `summary` y la pestaña rápida no se muestra.
- Sin servicio activo, el flujo muestra `Abre un servicio antes de cobrar en fast mode.` y no crea ticket.
- Si el modo de empleado lo exige y no hay empleado seleccionado, muestra `Selecciona el empleado antes de cobrar en fast mode.`
- Con el borrador vacío, muestra `Añade productos antes de cobrar la cuenta rápida.`
- Si no hay métodos activos, el footer queda bloqueado con `Sin método rápido`.
- Los métodos de efectivo requieren caja abierta para la terminal; si falta, el ticket y los items pueden quedar creados antes del fallo de pago.
- Los items rápidos se crean como `served`, por lo que esta acción no envía comanda a cocina/KDS.
- Un pago completo sincroniza el ticket a `paid`; un pago insuficiente puede dejarlo en `partially_paid`.
- `UpdateTicket` no acepta cerrar con `status: "closed"`; el cierre correcto requiere `POST /tickets/{ticketId}/close` y un ticket `paid`.
- La impresión posterior requiere `lastFastModeTicket` y permiso `tpv:print` o `tpv:manage`.
Resultado esperado
La cuenta rápida queda registrada como ticket `fast`, con productos servidos y un pago si el método se completa. Si el pago o el cierre no terminan, el operador conserva el detalle del ticket para revisar y resolver la cuenta manualmente.