Antylogic
Probar demoAcceso app

399 guías operativas

Secciones de Docs
DocsTPV
Dispositivo

Cómo cambiar la cantidad de un producto

Aumenta o reduce las unidades de un producto que ya está en un ticket TPV. Antylogic conserva la línea existente, actualiza la cantidad y recalcula el total del producto, los totales del ticket y el estado de pago derivado.

En este artículo

Usa esta guía cuando el equipo de sala necesita corregir unidades en una cuenta abierta sin borrar el producto ni añadir una línea duplicada. La acción trabaja sobre el `ticket_item` existente y mantiene el contexto del ticket.

En el demo de España, el recorrido se documenta sobre Grupo Marea Demo, la ubicación Marea Gran Via y Marta Ruiz como personal TPV. La interfaz puede mostrar primero una actualización optimista y después sustituirla por la respuesta definitiva del servidor.

Antes de empezar

  • Tener abierto un ticket TPV de la ubicación activa, cargado con su lista de productos.
  • El ticket debe pertenecer a la misma ubicación de la ruta actual y no debe estar anulado ni cerrado desde la interfaz.
  • El producto debe existir dentro del ticket y estar visible en la lista de productos.
  • Si el usuario opera con `tpv:use`, debe existir una `service_session` abierta y el ticket debe pertenecer a esa sesión.
  • Para modificar una línea con descuento, el usuario necesita `tickets:manage` o `tpv:discount`.
  • Para reducir cantidad desde la interfaz, la línea debe tener `quantity` mayor que 1.
  • Con KDS activo, la interfaz no permite editar cantidad en productos `sent`, `preparing` o `ready`.

Instrucciones

  1. 1.

    Abre el ticket

    Entra en el detalle desde el TPV de sala o mediante el enlace directo del ticket. Comprueba que la pantalla muestra la cuenta de Marea Gran Via, su lista de productos y las acciones del ticket.

  2. 2.

    Selecciona el producto

    Localiza la línea que quieres ajustar. Toca la fila para abrir el editor del producto o revela sus acciones laterales cuando quieras usar el cambio rápido de cantidad.

  3. 3.

    Suma o resta una unidad

    Pulsa `Sumar` para añadir una unidad o `Restar` para quitar una. En las acciones laterales, `Aumentar cantidad` y `Reducir cantidad` ejecutan la misma actualización sin abrir el editor completo.

  4. 4.

    Revisa el recálculo

    Comprueba que cambian la cantidad de la línea, el total del producto y el total del ticket. El servidor recalcula los importes a partir de precio, cantidad, descuento e impuesto, aunque la pantalla haya mostrado el cambio de forma optimista.

  5. 5.

    Resuelve bloqueos o errores

    Si la acción falla, la pantalla restaura el estado anterior. Revisa ubicación, sesión de servicio abierta, permisos de TPV y descuentos protegidos antes de repetir el cambio.

Validaciones y límites

  • La acción actualiza un `ticket_item` existente; no crea líneas nuevas ni elimina el producto.
  • `Restar` queda deshabilitado cuando `quantity` es 1; para quitar el producto se usa la eliminación de línea.
  • Mientras otra acción de producto está en curso, los controles de cantidad quedan deshabilitados.
  • El backend exige acceso al ticket mediante `tickets:manage` o `tpv:use` ligado a la sesión de servicio abierta; si hay descuento, también exige `tickets:manage` o `tpv:discount`.
  • El ticket y el producto deben pertenecer a la ubicación activa; un ticket o item de otra ubicación se trata como no encontrado.
  • El `itemId` efectivo viene de la ruta `PUT /api/app/{orgId}/{locationId}/tickets/{ticketId}/items/{itemId}` y el backend lo aplica sobre el payload recibido.
  • El servidor recalcula `subtotal_price`, `tax_amount`, `total_price`, `ticket.subtotal`, `ticket.tax` y `ticket.total`; no se debe confiar en importes enviados por cliente.
  • Si ya había pagos, el estado del ticket y el `payment_status` de las líneas se reevalúan con pagos y asignaciones.
  • La interfaz bloquea tickets `void` y `closed`; en el backend verificado, esta mutación rechaza explícitamente tickets `void`.
  • Con KDS activo, la interfaz bloquea `sent`, `preparing` y `ready`; el backend no bloquea una actualización directa de cantidad si `production_status` no cambia.

Resultado esperado

El producto conserva su línea dentro del ticket, queda con la cantidad corregida y Antylogic devuelve un `TicketDetail` actualizado con importes del item, totales del ticket y estado de pago recalculados.

Artículos relacionados