237 lines
8.0 KiB
Markdown
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
|