# DIRECTIVA-PUNTO-VENTA **Version:** 1.0 **Fecha:** 2025-12-08 **Vertical:** Retail / POS **Nivel:** 2B.2 --- ## PROPOSITO Define las directrices para la implementacion del sistema de punto de venta (POS). --- ## ALCANCE - Terminal de venta - Sesiones de caja - Procesamiento de pagos - Cortes y arqueos - Operacion offline --- ## PRINCIPIOS ### 1. Rendimiento Critico El POS debe responder en menos de 100ms por transaccion: - Busqueda de productos: < 50ms - Calculo de totales: < 10ms - Registro de venta: < 100ms ### 2. Disponibilidad - El sistema debe funcionar offline - Sincronizacion automatica cuando hay conexion - No perder transacciones nunca ### 3. Seguridad en Efectivo - Control estricto de sesiones de caja - Movimientos de efectivo auditados - Cortes obligatorios al cerrar --- ## FLUJO DE OPERACION ### Apertura de Caja ``` 1. Cajero inicia sesion | 2. Verifica caja asignada | 3. Registra fondo inicial | 4. Sesion activa ``` ### Venta ``` 1. Escaneo/busqueda de producto | 2. Agregar al carrito | 3. Aplicar descuentos/promociones | 4. Calcular total | 5. Seleccionar metodo de pago | 6. Procesar pago | 7. Imprimir ticket | 8. Actualizar inventario ``` ### Cierre de Caja ``` 1. Iniciar corte | 2. Declarar efectivo fisico | 3. Sistema calcula esperado | 4. Registrar diferencias | 5. Cerrar sesion ``` --- ## MODELO DE DATOS ### pos_sessions ```yaml campos: - id: uuid - user_id: FK -> auth.users (cajero) - cash_register_id: FK -> cash_registers - opening_balance: decimal - closing_balance: decimal - expected_balance: decimal - difference: decimal - status: enum(open, closing, closed) - opened_at: timestamp - closed_at: timestamp ``` ### pos_orders ```yaml campos: - id: uuid - session_id: FK -> pos_sessions - customer_id: FK -> retail.customers (opcional) - order_number: string - subtotal: decimal - discount: decimal - tax: decimal - total: decimal - status: enum(draft, paid, refunded, cancelled) - payment_method: enum(cash, card, mixed) - created_at: timestamp ``` ### cash_movements ```yaml campos: - id: uuid - session_id: FK -> pos_sessions - movement_type: enum(sale, refund, cash_in, cash_out) - amount: decimal - payment_method: enum(cash, card) - reference: string - notes: text - created_at: timestamp ``` --- ## OPERACION OFFLINE ### Datos en Cache Local - Catalogo de productos - Precios vigentes - Promociones activas - Clientes frecuentes ### Sincronizacion ``` [Terminal POS] <---> [Cola Local] <---> [Servidor Central] | | | Operacion Buffer Sincronizador | | | Cache IndexedDB PostgreSQL ``` ### Conflictos - El servidor tiene la version autoritativa - Las ventas offline siempre se registran - Los ajustes de inventario se reconcilian --- ## INTEGRACION CON HARDWARE ### Dispositivos Soportados | Dispositivo | Protocolo | Notas | |-------------|-----------|-------| | Impresora tickets | ESC/POS | USB o Red | | Lector codigo barras | HID | USB | | Cajon de dinero | Pulso via impresora | - | | Terminal bancaria | ISO 8583 | Integracion PAC | ### Arquitectura ``` [App POS] | [Driver Layer] | +---+---+---+ | | | | Print Scan Drawer Card ``` --- ## FACTURACION CFDI ### Flujo de Facturacion 1. Cliente solicita factura 2. Sistema recupera datos de venta 3. Genera XML CFDI 4.0 4. Envia a PAC para timbrado 5. Almacena UUID 6. Envia por email ### Consideraciones - Facturacion global para tickets sin factura - Complementos de pago para credito - Cancelaciones dentro de plazo legal --- ## INTEGRACION CON ERP CORE ### Herencia de Specs | Spec Core | Aplicacion | |-----------|------------| | SPEC-PRICING-RULES | Precios y promociones | | SPEC-INVENTARIOS-CICLICOS | Conteos de tienda | | SPEC-TRAZABILIDAD-LOTES-SERIES | Productos con caducidad | ### APIs a Extender - `ProductService` -> `RetailProductService` - `InventoryService` -> Multi-sucursal - `InvoiceService` -> CFDI automatico --- ## METRICAS | Metrica | Objetivo | Alerta | |---------|----------|--------| | Tiempo de venta | < 30 seg | > 60 seg | | Disponibilidad | 99.9% | < 99% | | Diferencias de caja | 0 | > $100 | | Ventas sin factura | < 10% | > 20% | --- ## REFERENCIAS - HERENCIA-SPECS-ERP-CORE.md - DATABASE_INVENTORY.yml - MASTER_INVENTORY.yml - CFDI 4.0 SAT --- **Documento de directiva oficial**