erp-retail/docs/08-epicas/EPIC-RT-002-pos.md

8.6 KiB

EPICA: EPIC-RT-002 - Punto de Venta (POS)

Metadata

Campo Valor
ID EPIC-RT-002
Nombre Punto de Venta (POS)
Modulo pos
Fase Fase 1 - MVP
Prioridad P0 (Critico)
Estado Backlog
Story Points 55
Sprint(s) Sprint 2-4

Descripcion

Sistema de punto de venta optimizado para retail. PWA que funciona offline, permite ventas rápidas con escaneo de código de barras, múltiples formas de pago, integración con programa de lealtad y sincronización automática con inventario central.


Objetivo de Negocio

  • Ventas rápidas (< 30 segundos por transacción)
  • Operación sin interrupciones (offline)
  • Control en tiempo real de ventas
  • Experiencia fluida para cajeros
  • Integración omnicanal

Historias de Usuario

ID Historia Prioridad SP Estado
US-RT002-001 Como cajero, quiero escanear código de barras para agregar productos rápidamente P0 5 Backlog
US-RT002-002 Como cajero, quiero buscar producto por nombre si no tiene código de barras P0 3 Backlog
US-RT002-003 Como cajero, quiero ver carrito de compra con totales en tiempo real P0 3 Backlog
US-RT002-004 Como cajero, quiero aplicar descuento porcentual o monto fijo a la venta P0 3 Backlog
US-RT002-005 Como cajero, quiero registrar pago en efectivo con cálculo de cambio P0 3 Backlog
US-RT002-006 Como cajero, quiero registrar pago con tarjeta (terminal integrada) P0 8 Backlog
US-RT002-007 Como cajero, quiero registrar pagos mixtos (parte efectivo, parte tarjeta) P0 5 Backlog
US-RT002-008 Como cajero, quiero imprimir ticket de venta automáticamente P0 3 Backlog
US-RT002-009 Como cajero, quiero que el POS funcione sin internet para no perder ventas P0 8 Backlog
US-RT002-010 Como supervisor, quiero autorizar descuentos mayores al límite del cajero P1 3 Backlog
US-RT002-011 Como cajero, quiero consultar puntos de cliente y aplicar canje P1 5 Backlog
US-RT002-012 Como cajero, quiero cancelar venta parcial o totalmente P1 3 Backlog
US-RT002-013 Como admin, quiero configurar impresoras y terminales de pago P0 3 Backlog

Total Story Points: 55 SP


Flujo de Venta

┌─────────────┐
│   INICIO    │  ← Cajero listo
└──────┬──────┘
       │
       ▼
┌─────────────┐
│   ESCANER   │  ← Agregar productos
└──────┬──────┘
       │
       ▼
┌─────────────┐
│   CARRITO   │  ← Revisar y aplicar descuentos
└──────┬──────┘
       │
       ▼
┌─────────────┐
│    PAGO     │  ← Efectivo/Tarjeta/Mixto
└──────┬──────┘
       │
       ▼
┌─────────────┐
│   TICKET    │  ← Imprimir comprobante
└──────┬──────┘
       │
       ▼
┌─────────────┐
│  COMPLETADO │  ← Venta registrada
└─────────────┘

Modos de Operación

┌─────────────────────────────────────────────────────────┐
│                   MODOS DEL POS                         │
├─────────────────────────────────────────────────────────┤
│                                                         │
│  ONLINE                                                 │
│  ├── Sincronización en tiempo real                      │
│  ├── Validación de stock central                        │
│  ├── Procesamiento de pagos con tarjeta                 │
│  └── Consulta de puntos de lealtad                      │
│                                                         │
│  OFFLINE (PWA)                                          │
│  ├── Catálogo de productos en cache                     │
│  ├── Ventas en cola para sincronizar                    │
│  ├── Solo pagos en efectivo                             │
│  ├── Cálculo local de puntos                            │
│  └── Sincronización automática al reconectar            │
│                                                         │
└─────────────────────────────────────────────────────────┘

Criterios de Aceptacion de la Epica

Funcionales:

  • Escaneo de código de barras (cámara o lector USB)
  • Búsqueda de productos por nombre/SKU
  • Carrito con totales en tiempo real
  • Descuentos (porcentuales y fijos)
  • Pagos: efectivo, tarjeta, mixtos
  • Impresión de tickets
  • Modo offline con sincronización
  • Consulta y canje de puntos

No Funcionales:

  • Agregar producto < 500ms
  • Cierre de venta < 3 segundos
  • PWA instalable en tablet/PC
  • Funcionamiento offline 24+ horas

Tecnicos:

  • Service Workers para offline
  • IndexedDB para almacenamiento local
  • Integración con impresoras ESC/POS
  • Integración con terminales de pago

Dependencias

Esta epica depende de:

Epica/Modulo Estado Bloqueante
EPIC-RT-001 Fundamentos Backlog Si
EPIC-RT-003 Inventario Backlog Si
EPIC-RT-006 Precios Backlog Si

Esta epica bloquea:

Epica/Modulo Razon
EPIC-RT-007 Caja Requiere ventas para arqueo
EPIC-RT-008 Reportes Requiere datos de ventas
EPIC-RT-010 Facturacion Requiere ventas completadas

Desglose Tecnico

Database:

  • Schema: pos
  • Tablas: 7 (sales, sale_items, payments, terminals, printers, offline_queue, sessions)
  • Funciones: 3 (calculate_totals, apply_discount, sync_offline)
  • Indices: Por fecha, cajero, terminal, ticket

Backend:

  • Modulo: pos
  • Entities: 6 (Sale, SaleItem, Payment, Terminal, Printer, OfflineSale)
  • Endpoints: 15
  • Tests: 35

Frontend (PWA):

  • Paginas: 4 (POSMain, ProductSearch, Payment, Config)
  • Componentes: 20 (Cart, ProductCard, PaymentModal, Scanner, etc.)
  • Stores: 2 (posStore, offlineStore)
  • Service Workers: Offline + Sync

Endpoints API

Metodo Endpoint Descripcion
POST /api/pos/sales Crear venta
GET /api/pos/sales/:id Detalle de venta
POST /api/pos/sales/:id/items Agregar item
DELETE /api/pos/sales/:id/items/:itemId Quitar item
POST /api/pos/sales/:id/discount Aplicar descuento
POST /api/pos/sales/:id/pay Registrar pago
POST /api/pos/sales/:id/complete Cerrar venta
POST /api/pos/sales/:id/cancel Cancelar venta
POST /api/pos/sync Sincronizar ventas offline
GET /api/pos/products/search Buscar productos
GET /api/pos/products/:barcode Buscar por código

Integraciones de Hardware

Dispositivo Protocolo Notas
Lector código barras USB HID / WebSerial Actúa como teclado
Impresora tickets ESC/POS USB o red
Terminal bancaria API propietaria Depende del proveedor
Cajón de dinero Pulso via impresora RJ-11 conectado a impresora

Riesgos

Riesgo Probabilidad Impacto Mitigacion
Fallas de sincronización Media Alto Cola de reintentos + alertas
Hardware incompatible Media Medio Lista de dispositivos probados
Pérdida de datos offline Baja Alto Respaldo en múltiples stores

Definition of Ready (DoR)

  • Historias de usuario definidas
  • Criterios de aceptacion claros
  • Dependencias identificadas
  • Estimacion completada
  • Diseño de UI aprobado
  • Hardware de prueba disponible

Definition of Done (DoD)

  • Flujo de venta completo funcionando
  • Modo offline operativo
  • Integración con impresora/lector
  • Tests de integración pasando
  • PWA instalable y funcional
  • Documentación de API

Historial

Fecha Cambio Autor
2025-12-08 Creacion de epica Claude-Agent

Creada por: Claude-Agent Fecha: 2025-12-08 Ultima actualizacion: 2025-12-08