erp-retail/docs/08-epicas/EPIC-RT-005-clientes.md

237 lines
8.0 KiB
Markdown

# EPICA: EPIC-RT-005 - Clientes y Programa de Lealtad
## Metadata
| Campo | Valor |
|-------|-------|
| **ID** | EPIC-RT-005 |
| **Nombre** | Clientes y Programa de Lealtad |
| **Modulo** | clientes |
| **Fase** | Fase 1 - MVP |
| **Prioridad** | P1 (Alto) |
| **Estado** | Backlog |
| **Story Points** | 34 |
| **Sprint(s)** | Sprint 4-5 |
---
## Descripcion
Gestión de clientes y programa de fidelización. Registro de clientes, acumulación y canje de puntos, niveles de membresía, historial de compras y comunicación personalizada. Integración con POS para experiencia fluida en punto de venta.
---
## Objetivo de Negocio
- Aumentar frecuencia de compra
- Incrementar ticket promedio
- Reducir rotación de clientes
- Conocer mejor al cliente
- Marketing personalizado
---
## Historias de Usuario
| ID | Historia | Prioridad | SP | Estado |
|----|----------|-----------|-----|--------|
| US-RT005-001 | Como cajero, quiero registrar cliente rápidamente con datos mínimos | P0 | 3 | Backlog |
| US-RT005-002 | Como cajero, quiero buscar cliente por teléfono o email para asociar venta | P0 | 3 | Backlog |
| US-RT005-003 | Como cliente, quiero acumular puntos automáticamente por mis compras | P0 | 5 | Backlog |
| US-RT005-004 | Como cajero, quiero consultar puntos del cliente en el POS | P0 | 2 | Backlog |
| US-RT005-005 | Como cajero, quiero aplicar canje de puntos como descuento en venta | P0 | 5 | Backlog |
| US-RT005-006 | Como cliente, quiero ver mi historial de compras y puntos en app/web | P1 | 5 | Backlog |
| US-RT005-007 | Como marketing, quiero segmentar clientes por nivel de compra | P1 | 3 | Backlog |
| US-RT005-008 | Como marketing, quiero enviar promociones por email a segmentos | P1 | 3 | Backlog |
| US-RT005-009 | Como admin, quiero configurar reglas de acumulación de puntos | P0 | 3 | Backlog |
| US-RT005-010 | Como admin, quiero configurar niveles de membresía con beneficios | P2 | 2 | Backlog |
**Total Story Points:** 34 SP
---
## Programa de Puntos
```
┌─────────────────────────────────────────────────────────┐
│ PROGRAMA DE LEALTAD │
├─────────────────────────────────────────────────────────┤
│ │
│ ACUMULACIÓN │
│ ├── 1 punto por cada $10 de compra (configurable) │
│ ├── Puntos extra en productos promocionales │
│ ├── Bonificación por cumpleaños │
│ └── Multiplicadores por nivel │
│ │
│ CANJE │
│ ├── 100 puntos = $10 de descuento (configurable) │
│ ├── Mínimo de puntos para canjear │
│ ├── Máximo de descuento por transacción │
│ └── Productos excluidos de canje │
│ │
│ NIVELES DE MEMBRESÍA │
│ ├── BRONCE: 0-999 puntos/año → 1x puntos │
│ ├── PLATA: 1000-4999 puntos/año → 1.5x puntos │
│ ├── ORO: 5000+ puntos/año → 2x puntos │
│ └── Beneficios adicionales por nivel │
│ │
└─────────────────────────────────────────────────────────┘
```
---
## Flujo de Puntos en Venta
```
┌─────────────┐
│ BUSCAR CLI │ ← Por teléfono o email
└──────┬──────┘
┌─────────────┐
│ VER PUNTOS │ ← Saldo disponible
└──────┬──────┘
┌─────────────┐
│ VENTA │ ← Agregar productos
└──────┬──────┘
┌─────────────┐
│ ¿CANJEAR? │ ─── Si ──► Aplicar descuento
└──────┬──────┘
│ No
┌─────────────┐
│ PAGO │ ← Cerrar venta
└──────┬──────┘
┌─────────────┐
│ + PUNTOS │ ← Acumulación automática
└─────────────┘
```
---
## Criterios de Aceptacion de la Epica
**Funcionales:**
- [ ] Registro rápido de cliente
- [ ] Búsqueda por teléfono/email
- [ ] Acumulación automática de puntos
- [ ] Canje de puntos en POS
- [ ] Historial de cliente
- [ ] Niveles de membresía
- [ ] Segmentación de clientes
- [ ] Comunicación por email
**No Funcionales:**
- [ ] Búsqueda de cliente < 500ms
- [ ] Cálculo de puntos en tiempo real
- [ ] Historial de 3 años
**Tecnicos:**
- [ ] Integración con módulo POS
- [ ] Integración con e-commerce
- [ ] Servicio de email marketing
- [ ] API para app de cliente
---
## Dependencias
**Esta epica depende de:**
| Epica/Modulo | Estado | Bloqueante |
|--------------|--------|------------|
| EPIC-RT-001 Fundamentos | Backlog | Si |
**Esta epica bloquea:**
| Epica/Modulo | Razon |
|--------------|-------|
| EPIC-RT-002 POS | Integración de puntos |
| EPIC-RT-009 E-commerce | Cuenta de cliente |
---
## Desglose Tecnico
**Database:**
- [ ] Schema: `customers`
- [ ] Tablas: 7 (customers, points_transactions, membership_levels, segments, campaigns, communications, preferences)
- [ ] Funciones: 3 (calculate_points, apply_redemption, update_level)
- [ ] Indices: Por teléfono, email, nivel, puntos
**Backend:**
- [ ] Modulo: `customers`
- [ ] Entities: 6 (Customer, PointsTransaction, MembershipLevel, Segment, Campaign)
- [ ] Endpoints: 14
- [ ] Tests: 28
**Frontend:**
- [ ] Paginas: 5 (CustomerList, CustomerDetail, Segments, Campaigns, Config)
- [ ] Componentes: 12 (CustomerSearch, PointsDisplay, RedemptionModal, etc.)
- [ ] Stores: 1 (customersStore)
---
## Endpoints API
| Metodo | Endpoint | Descripcion |
|--------|----------|-------------|
| POST | /api/customers | Crear cliente |
| GET | /api/customers/search | Buscar por teléfono/email |
| GET | /api/customers/:id | Detalle de cliente |
| GET | /api/customers/:id/points | Saldo de puntos |
| GET | /api/customers/:id/history | Historial de compras |
| POST | /api/customers/:id/earn | Acumular puntos |
| POST | /api/customers/:id/redeem | Canjear puntos |
| GET | /api/customers/segments | Listar segmentos |
| POST | /api/customers/campaigns | Crear campaña |
| POST | /api/customers/campaigns/:id/send | Enviar comunicación |
---
## Riesgos
| Riesgo | Probabilidad | Impacto | Mitigacion |
|--------|--------------|---------|------------|
| Fraude de puntos | Media | Alto | Auditoría + límites de canje |
| Clientes duplicados | Alta | Medio | Validación de teléfono/email |
| Baja adopción | Media | Medio | Capacitación a cajeros |
---
## Definition of Ready (DoR)
- [x] Historias de usuario definidas
- [x] Criterios de aceptacion claros
- [x] Dependencias identificadas
- [x] Estimacion completada
- [ ] Reglas de puntos definidas
- [ ] Niveles de membresía aprobados
## Definition of Done (DoD)
- [ ] Programa de puntos funcionando
- [ ] Integración con POS operativa
- [ ] Niveles de membresía activos
- [ ] Segmentación de clientes
- [ ] Tests de integración pasando
- [ ] 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