POS — Punto de Venta
Caja registradora para ventas presenciales. Vende cualquier ítem del Catálogo (productos, servicios, bundles) con descuento automático de inventario. Forma parte del addon Commerce.
Cómo usarlo
- Abrir turno — selecciona caja y vendedor. Registra fondo inicial.
- Agregar ítems — busca por nombre o SKU. Los bundles aparecen como un solo ítem y se descomponen automáticamente al cobrar.
- Cobrar — selecciona método de pago (efectivo, tarjeta, transferencia, gift card, cupón). Soporta pagos mixtos.
- Cerrar turno (Z-close) — cierra la caja, calcula totales por método y genera reporte.
- Cambiar vendedor — un mismo turno puede registrar ventas de varios vendedores sin cerrar caja.
Campos importantes
- Caja — POS físico/lógico. Cada caja tiene su propio turno activo.
- Vendedor — usuario que ejecuta la venta (puede cambiar dentro del turno).
- Método de pago — cash, card, transfer, gift_card, coupon. Configurables en POS Config.
- NCF — opcional. Si está habilitado, asigna del rango configurado.
Bundles en POS
Vendes "Experiencia La Manual" (1 Taller + 10 Alpargatas) y el sistema:
- Inserta la línea del bundle en la orden.
- Al marcar la orden como
completed, el trigger descompone:
- 10 movimientos negativos en
inventory_movementspara Alpargatas. - 1 fila en
service_executionspara Taller (parent_bundle_id apunta al bundle).
- Permite reportar bundles vendidos y servicios ejecutados por separado.
Inventario — stock negativo
Por defecto, el POS bloquea las ventas que dejarían el inventario físico en negativo. Esto protege los reportes de stock, el costo promedio y los asientos automáticos.
- La validación se dispara al confirmar el cobro (antes de emitir NCF/e-CF).
- Aplica solo a ítems con
track_inventory = true(productos físicos). Servicios, bundles y itemstrack_inventory = falsese saltan. - Si falta stock, el sistema lista las líneas afectadas (ítem, pedido, disponible, faltante) y bloquea la venta.
Habilitar ventas con stock negativo (pre-ventas, entregas diferidas):
- POS → Configuración → Preferencias.
- Marcar Permitir stock negativo.
- Guardar preferencias.
El flag es por tenant. Cuando está activo, el POS deja pasar cualquier cantidad y los movimientos de inventario quedan en negativo hasta que se registre una entrada.
Integración con Contabilidad
Si el addon Contabilidad está activo, las ventas POS publican eventos pos:* que se convierten en asientos automáticos en el Mayor. El asiento se genera al cierre Z (default) o por venta individual según configuración.
Permisos
- pos:operate — abrir turno, vender, cobrar.
- pos:configure — configurar cajas, métodos de pago, descuentos.
- pos:close — cerrar turno (Z-close).
- pos:refund — anular ventas o procesar devoluciones.
- Rol Cashier trae
pos:operateypos:closepor defecto.
Preguntas frecuentes
¿Funciona offline?
No por ahora. POS requiere conexión a Supabase para validar stock y registrar ventas.
¿Puedo emitir e-CF desde POS?
Sí, si tienes el addon Emisor e-CF activo y configuras la secuencia E-series en POS Config.
¿Cómo manejo devoluciones?
Con permiso pos:refund, abre la venta original y procesa devolución. Genera movimiento positivo en inventario y, si aplica, Nota de Crédito.