20 KiB
ROADMAP DE SPRINTS - RETAIL
Fecha: 2025-12-18 Fase: 3 - Plan de Implementaciones Metodologia: Sprints de 1 semana Total Story Points: 353 SP
1. RESUMEN EJECUTIVO
1.1 Distribucion de Esfuerzo
| Modulo | SP | % del Total | Prioridad |
|---|---|---|---|
| RT-001 Fundamentos | 0* | 0% | P0 |
| RT-002 POS | 55 | 15.6% | P0 |
| RT-003 Inventario | 42 | 11.9% | P0 |
| RT-004 Compras | 38 | 10.8% | P1 |
| RT-005 Clientes | 34 | 9.6% | P1 |
| RT-006 Precios | 36 | 10.2% | P0 |
| RT-007 Caja | 28 | 7.9% | P0 |
| RT-008 Reportes | 30 | 8.5% | P1 |
| RT-009 E-commerce | 55 | 15.6% | P2 |
| RT-010 Facturacion | 35 | 9.9% | P0 |
| TOTAL | 353 | 100% |
*RT-001 hereda 100% del core
1.2 Prerrequisitos Core (Bloqueadores)
Antes de iniciar retail, se deben completar estos modulos del core:
| Modulo Core | Estado Actual | Requerido | Gap |
|---|---|---|---|
| MGN-001 Auth | 40% | 100% | 60% |
| MGN-005 Catalogs | 0% | 100% | 100% |
| MGN-010 Financial | 70% | 90% | 20% |
| MGN-011 Inventory | 60% | 80% | 20% |
| MGN-013 Sales | 50% | 70% | 20% |
Estimacion prerrequisitos: 3-4 sprints
2. FASES DE IMPLEMENTACION
2.1 Vision General
┌─────────────────────────────────────────────────────────────────────────────┐
│ ROADMAP RETAIL - 20 SPRINTS │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ FASE 0: PRERREQUISITOS CORE (Sprints 1-4) │
│ ├── S1-S2: Auth + Catalogs │
│ └── S3-S4: Financial + Inventory + Sales │
│ │
│ FASE 1: FUNDAMENTOS RETAIL (Sprints 5-7) │
│ ├── S5: Database retail + RT-001 Fundamentos │
│ ├── S6: RT-006 Motor de Precios │
│ └── S7: RT-003 Inventario Multi-sucursal │
│ │
│ FASE 2: POS MVP (Sprints 8-11) │
│ ├── S8-S9: RT-002 POS Backend + Frontend │
│ ├── S10: RT-007 Caja │
│ └── S11: PWA + Offline │
│ │
│ FASE 3: FACTURACION + CLIENTES (Sprints 12-14) │
│ ├── S12: RT-010 CFDI Backend │
│ ├── S13: RT-010 CFDI Frontend + Autofactura │
│ └── S14: RT-005 Clientes + Lealtad │
│ │
│ FASE 4: COMPRAS + REPORTES (Sprints 15-16) │
│ ├── S15: RT-004 Compras │
│ └── S16: RT-008 Reportes + Dashboard │
│ │
│ FASE 5: E-COMMERCE (Sprints 17-20) │
│ ├── S17-S18: RT-009 Backend + Integraciones │
│ └── S19-S20: RT-009 Storefront │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
3. DETALLE POR SPRINT
FASE 0: PRERREQUISITOS CORE
Sprint 1: Auth + Catalogs (Parte 1)
Objetivo: Completar autenticacion y catalogos base
| Tarea | Capa | SP |
|---|---|---|
| Completar entities User, Role, Permission | Backend | 3 |
| Completar AuthService con JWT | Backend | 3 |
| Implementar middleware de autenticacion | Backend | 2 |
| Crear tablas core.countries, currencies | Database | 2 |
| Implementar CountriesService, CurrenciesService | Backend | 2 |
| Total Sprint 1 | 12 |
Sprint 2: Catalogs (Parte 2)
Objetivo: Completar catalogos y UoM
| Tarea | Capa | SP |
|---|---|---|
| Crear tablas core.uom_categories, uom | Database | 2 |
| Implementar UoMService | Backend | 2 |
| Crear core.sequences | Database | 1 |
| Implementar SequencesService | Backend | 2 |
| Crear tablas core.partners | Database | 2 |
| Implementar PartnersService | Backend | 3 |
| Total Sprint 2 | 12 |
Sprint 3: Financial
Objetivo: Completar modulo financiero base
| Tarea | Capa | SP |
|---|---|---|
| Migrar financial.taxes a TypeORM | Backend | 3 |
| Migrar financial.accounts a TypeORM | Backend | 3 |
| Migrar financial.journals a TypeORM | Backend | 2 |
| Implementar payment_methods | Backend | 2 |
| Tests unitarios financial | Backend | 2 |
| Total Sprint 3 | 12 |
Sprint 4: Inventory + Sales
Objetivo: Completar inventario y ventas base
| Tarea | Capa | SP |
|---|---|---|
| Completar inventory.products con TypeORM | Backend | 3 |
| Completar inventory.warehouses | Backend | 2 |
| Completar inventory.stock_quants | Backend | 3 |
| Implementar sales.pricelists | Backend | 3 |
| Implementar sales.pricelist_items | Backend | 2 |
| Total Sprint 4 | 13 |
FASE 1: FUNDAMENTOS RETAIL
Sprint 5: Database Retail + Fundamentos
Objetivo: Crear schema retail y tablas fundacionales
| Tarea | Capa | SP |
|---|---|---|
| Crear schema retail | Database | 1 |
| Crear retail.branches | Database | 2 |
| Crear retail.cash_registers | Database | 1 |
| Crear retail.branch_users | Database | 1 |
| BranchesService | Backend | 3 |
| CashRegistersService | Backend | 2 |
| BranchesController | Backend | 2 |
| Total Sprint 5 | 12 |
Sprint 6: Motor de Precios
Objetivo: RT-006 - Sistema de precios y promociones
| Tarea | Capa | SP |
|---|---|---|
| Crear retail.promotions, promotion_products | Database | 2 |
| Crear retail.coupons, coupon_redemptions | Database | 2 |
| PriceEngineService (core) | Backend | 8 |
| PromotionsService | Backend | 5 |
| CouponsService | Backend | 5 |
| PricingController | Backend | 3 |
| Total Sprint 6 | 25 |
Nota: Este sprint tiene mas SP porque el motor de precios es critico
Sprint 7: Inventario Multi-sucursal
Objetivo: RT-003 - Gestion de inventario por sucursal
| Tarea | Capa | SP |
|---|---|---|
| Crear retail.stock_transfers | Database | 2 |
| Crear retail.stock_adjustments | Database | 2 |
| RetailStockService (extiende core) | Backend | 5 |
| TransfersService | Backend | 5 |
| AdjustmentsService | Backend | 3 |
| InventoryController | Backend | 3 |
| Total Sprint 7 | 20 |
FASE 2: POS MVP
Sprint 8: POS Backend
Objetivo: RT-002 - Backend del punto de venta
| Tarea | Capa | SP |
|---|---|---|
| Crear retail.pos_sessions | Database | 2 |
| Crear retail.pos_orders, pos_order_lines | Database | 3 |
| Crear retail.pos_payments | Database | 2 |
| POSSessionService | Backend | 5 |
| POSOrderService | Backend | 8 |
| POSPaymentService | Backend | 3 |
| POSController | Backend | 3 |
| Total Sprint 8 | 26 |
Sprint 9: POS Frontend
Objetivo: UI del punto de venta
| Tarea | Capa | SP |
|---|---|---|
| Layout POS | Frontend | 2 |
| Pagina Login + Seleccion Caja | Frontend | 2 |
| Pantalla de Ventas | Frontend | 8 |
| Pantalla de Cobro | Frontend | 5 |
| Componente ProductGrid | Frontend | 3 |
| Componente OrderLines | Frontend | 2 |
| Componente PaymentMethods | Frontend | 3 |
| Total Sprint 9 | 25 |
Sprint 10: Caja
Objetivo: RT-007 - Arqueos y cortes de caja
| Tarea | Capa | SP |
|---|---|---|
| Crear retail.cash_movements | Database | 1 |
| Crear retail.cash_closings | Database | 2 |
| Crear retail.cash_counts | Database | 1 |
| CashSessionService | Backend | 5 |
| CashMovementService | Backend | 3 |
| CashClosingService | Backend | 5 |
| CashController | Backend | 3 |
| UI Apertura Caja | Frontend | 2 |
| UI Movimientos | Frontend | 2 |
| UI Cierre con Denominaciones | Frontend | 3 |
| Total Sprint 10 | 27 |
Sprint 11: PWA + Offline
Objetivo: Soporte offline para POS
| Tarea | Capa | SP |
|---|---|---|
| Configurar Service Worker | Frontend | 3 |
| IndexedDB con Dexie | Frontend | 3 |
| Cola de sincronizacion | Frontend | 5 |
| POSSyncService | Backend | 5 |
| WebSocket Gateway | Backend | 3 |
| Tests de offline | Frontend | 2 |
| Indicadores de estado | Frontend | 2 |
| Total Sprint 11 | 23 |
FASE 3: FACTURACION + CLIENTES
Sprint 12: CFDI Backend
Objetivo: RT-010 - Backend de facturacion CFDI 4.0
| Tarea | Capa | SP |
|---|---|---|
| Crear retail.cfdi_config | Database | 1 |
| Crear retail.cfdis | Database | 2 |
| CFDIService | Backend | 5 |
| CFDIBuilderService | Backend | 5 |
| XMLService | Backend | 3 |
| PACService (Finkok) | Backend | 5 |
| CFDIController | Backend | 3 |
| Total Sprint 12 | 24 |
Sprint 13: CFDI Frontend + Autofactura
Objetivo: UI de facturacion y portal autofactura
| Tarea | Capa | SP |
|---|---|---|
| PDFService | Backend | 2 |
| AutofacturaService | Backend | 3 |
| AutofacturaController | Backend | 2 |
| Modal Facturacion en POS | Frontend | 3 |
| Portal Autofactura (publico) | Frontend | 4 |
| Configuracion CFDI (backoffice) | Frontend | 2 |
| Lista de Facturas | Frontend | 2 |
| Total Sprint 13 | 18 |
Sprint 14: Clientes + Lealtad
Objetivo: RT-005 - Gestion de clientes y programa de lealtad
| Tarea | Capa | SP |
|---|---|---|
| Crear retail.loyalty_programs | Database | 1 |
| Crear retail.membership_levels | Database | 1 |
| Crear retail.loyalty_transactions | Database | 1 |
| Crear retail.customer_memberships | Database | 1 |
| RetailCustomersService | Backend | 3 |
| LoyaltyService | Backend | 8 |
| CustomersController | Backend | 3 |
| Lista Clientes (backoffice) | Frontend | 3 |
| Detalle Cliente con Membresia | Frontend | 3 |
| Config Programa Lealtad | Frontend | 2 |
| Widget Puntos en POS | Frontend | 2 |
| Total Sprint 14 | 28 |
FASE 4: COMPRAS + REPORTES
Sprint 15: Compras
Objetivo: RT-004 - Gestion de compras y reabastecimiento
| Tarea | Capa | SP |
|---|---|---|
| Crear retail.purchase_suggestions | Database | 2 |
| Crear retail.supplier_orders | Database | 2 |
| Crear retail.goods_receipts | Database | 2 |
| RetailPurchaseService | Backend | 5 |
| PurchaseSuggestionsService | Backend | 5 |
| GoodsReceiptService | Backend | 3 |
| PurchaseController | Backend | 3 |
| Lista Sugerencias (backoffice) | Frontend | 3 |
| Nueva Orden Proveedor | Frontend | 4 |
| Recepcion de Mercancia | Frontend | 3 |
| Total Sprint 15 | 32 |
Sprint 16: Reportes + Dashboard
Objetivo: RT-008 - Dashboard y reportes
| Tarea | Capa | SP |
|---|---|---|
| Crear vistas materializadas | Database | 2 |
| DashboardService | Backend | 3 |
| SalesReportService | Backend | 3 |
| ProductReportService | Backend | 2 |
| CashReportService | Backend | 2 |
| ExportService (Excel/PDF) | Backend | 3 |
| ReportsController | Backend | 3 |
| Dashboard Principal | Frontend | 8 |
| Paginas de Reportes | Frontend | 3 |
| Componentes de Graficos | Frontend | 3 |
| Total Sprint 16 | 32 |
FASE 5: E-COMMERCE
Sprint 17: E-commerce Backend (Parte 1)
Objetivo: RT-009 - Backend de tienda online
| Tarea | Capa | SP |
|---|---|---|
| Crear retail.carts, cart_items | Database | 2 |
| Crear retail.ecommerce_orders | Database | 2 |
| Crear retail.shipping_rates | Database | 1 |
| CatalogService | Backend | 3 |
| CartService | Backend | 5 |
| CheckoutService | Backend | 5 |
| EcommerceOrderService | Backend | 5 |
| Total Sprint 17 | 23 |
Sprint 18: E-commerce Backend (Parte 2) + Integraciones
Objetivo: Pasarelas de pago y envio
| Tarea | Capa | SP |
|---|---|---|
| PaymentGatewayService | Backend | 8 |
| Stripe/Conekta Provider | Backend | 5 |
| ShippingService | Backend | 5 |
| StorefrontController | Backend | 3 |
| EcommerceAdminController | Backend | 3 |
| Total Sprint 18 | 24 |
Sprint 19: Storefront (Parte 1)
Objetivo: UI de tienda online - Catalogo y Carrito
| Tarea | Capa | SP |
|---|---|---|
| Layout Storefront | Frontend | 2 |
| Home y navegacion | Frontend | 3 |
| Catalogo de Productos | Frontend | 5 |
| Detalle de Producto | Frontend | 4 |
| Busqueda de Productos | Frontend | 3 |
| Carrito (drawer) | Frontend | 3 |
| Total Sprint 19 | 20 |
Sprint 20: Storefront (Parte 2)
Objetivo: UI de tienda - Checkout y Area Cliente
| Tarea | Capa | SP |
|---|---|---|
| Checkout Flow completo | Frontend | 8 |
| Integracion Stripe/Conekta | Frontend | 5 |
| Area de Cliente | Frontend | 4 |
| Mis Pedidos | Frontend | 3 |
| Gestion Pedidos (backoffice) | Frontend | 4 |
| Total Sprint 20 | 24 |
4. RESUMEN DE SPRINTS
| Sprint | Fase | Enfoque | SP Total | SP Acumulados |
|---|---|---|---|---|
| 1 | 0 | Auth + Catalogs P1 | 12 | 12 |
| 2 | 0 | Catalogs P2 | 12 | 24 |
| 3 | 0 | Financial | 12 | 36 |
| 4 | 0 | Inventory + Sales | 13 | 49 |
| 5 | 1 | DB Retail + Fundamentos | 12 | 61 |
| 6 | 1 | Motor de Precios | 25 | 86 |
| 7 | 1 | Inventario Multi-sucursal | 20 | 106 |
| 8 | 2 | POS Backend | 26 | 132 |
| 9 | 2 | POS Frontend | 25 | 157 |
| 10 | 2 | Caja | 27 | 184 |
| 11 | 2 | PWA + Offline | 23 | 207 |
| 12 | 3 | CFDI Backend | 24 | 231 |
| 13 | 3 | CFDI Frontend | 18 | 249 |
| 14 | 3 | Clientes + Lealtad | 28 | 277 |
| 15 | 4 | Compras | 32 | 309 |
| 16 | 4 | Reportes + Dashboard | 32 | 341 |
| 17 | 5 | E-commerce Backend P1 | 23 | 364 |
| 18 | 5 | E-commerce Backend P2 | 24 | 388 |
| 19 | 5 | Storefront P1 | 20 | 408 |
| 20 | 5 | Storefront P2 | 24 | 432 |
Total Story Points: 432 SP (incluye 49 SP de prerrequisitos core + 383 SP retail)
5. HITOS (MILESTONES)
M1: Core Ready
Sprint: 4 Criterio: Modulos core completados para soportar retail
- Auth funcional con JWT
- Catalogos cargados
- Financial con TypeORM
- Inventory y Sales base
M2: Retail Foundation
Sprint: 7 Criterio: Base de retail lista
- Schema retail creado
- Sucursales configurables
- Motor de precios funcionando
- Inventario multi-sucursal
M3: POS MVP
Sprint: 11 Criterio: POS operativo con offline
- Ventas en POS
- Multiples formas de pago
- Caja con arqueos/cortes
- Modo offline funcional
- Impresion de tickets
M4: Facturacion Completa
Sprint: 13 Criterio: CFDI 4.0 operativo
- Emision de facturas
- Cancelacion
- Autofactura publica
- Generacion PDF
M5: Retail Completo
Sprint: 16 Criterio: Retail 100% funcional (sin e-commerce)
- Programa de lealtad
- Gestion de compras
- Dashboard y reportes
M6: E-commerce Live
Sprint: 20 Criterio: Tienda online operativa
- Catalogo publico
- Carrito y checkout
- Pagos online
- Area de cliente
6. DEPENDENCIAS CRITICAS
Grafico de Dependencias
┌─────────────┐
│ MGN-001 │
│ Auth │
└──────┬──────┘
│
┌─────────────────┼─────────────────┐
│ │ │
v v v
┌────────────────┐ ┌──────────────┐ ┌──────────────┐
│ MGN-005 │ │ MGN-010 │ │ MGN-011 │
│ Catalogs │ │ Financial │ │ Inventory │
└───────┬────────┘ └──────┬───────┘ └──────┬───────┘
│ │ │
└────────┬────────┴────────┬───────┘
│ │
v v
┌──────────────┐ ┌──────────────┐
│ RT-001 │ │ MGN-013 │
│ Fundamentos │ │ Sales │
└──────┬───────┘ └──────┬───────┘
│ │
┌───────────┼───────────┬────┘
│ │ │
v v v
┌────────┐ ┌────────┐ ┌────────┐
│ RT-006 │ │ RT-003 │ │ RT-005 │
│ Precios│ │ Invent.│ │ Client │
└───┬────┘ └───┬────┘ └───┬────┘
│ │ │
└──────────┼──────────┘
│
v
┌──────────────┐
│ RT-002 │
│ POS │
└──────┬───────┘
│
┌──────────┼──────────┐
│ │ │
v v v
┌────────┐ ┌────────┐ ┌────────┐
│ RT-007 │ │ RT-010 │ │ RT-008 │
│ Caja │ │ CFDI │ │ Report │
└────────┘ └────────┘ └────────┘
│
v
┌──────────────┐
│ RT-009 │
│ E-commerce │
└──────────────┘
│
v
┌──────────────┐
│ RT-004 │
│ Compras │
└──────────────┘
Camino Critico
- Auth -> Fundamentos -> POS -> Caja
- Financial -> CFDI
- Inventory -> Stock Multi-sucursal -> POS
- Sales/Precios -> POS -> E-commerce
7. RIESGOS Y MITIGACIONES
| Riesgo | Probabilidad | Impacto | Mitigacion |
|---|---|---|---|
| Core no completo a tiempo | Alta | Critico | Priorizar gaps bloqueantes |
| Integracion PAC compleja | Media | Alto | Iniciar con sandbox temprano |
| PWA offline bugs | Media | Alto | Tests exhaustivos de sync |
| Pasarelas de pago | Media | Alto | Usar SDK oficiales |
| Performance reportes | Media | Medio | Vistas materializadas desde inicio |
8. EQUIPO SUGERIDO
| Rol | Cantidad | Responsabilidades |
|---|---|---|
| Tech Lead | 1 | Arquitectura, code review |
| Backend Sr | 2 | Servicios core, integraciones |
| Backend Jr | 1 | Servicios auxiliares, tests |
| Frontend Sr | 2 | POS, Backoffice, E-commerce |
| Frontend Jr | 1 | Componentes, estilos |
| QA | 1 | Testing E2E, integracion |
| DevOps | 0.5 | CI/CD, infraestructura |
Velocidad estimada: 25-30 SP/semana con equipo completo
Estado: ROADMAP COMPLETO Sprints totales: 20 Duracion estimada: 20 semanas (5 meses)