262 lines
8.3 KiB
Markdown
262 lines
8.3 KiB
Markdown
# EPICA: EPIC-RT-009 - E-commerce
|
|
|
|
## Metadata
|
|
|
|
| Campo | Valor |
|
|
|-------|-------|
|
|
| **ID** | EPIC-RT-009 |
|
|
| **Nombre** | E-commerce |
|
|
| **Modulo** | ecommerce |
|
|
| **Fase** | Fase 2 - Extensión |
|
|
| **Prioridad** | P1 (Alto) |
|
|
| **Estado** | Backlog |
|
|
| **Story Points** | 55 |
|
|
| **Sprint(s)** | Sprint 9-12 |
|
|
|
|
---
|
|
|
|
## Descripcion
|
|
|
|
Tienda online integrada con el sistema de retail. Catálogo de productos sincronizado, stock en tiempo real, carrito de compras, checkout con múltiples formas de pago, integración con programa de lealtad y opciones de entrega (envío o pickup en tienda).
|
|
|
|
---
|
|
|
|
## Objetivo de Negocio
|
|
|
|
- Canal de ventas adicional 24/7
|
|
- Experiencia omnicanal consistente
|
|
- Incrementar alcance geográfico
|
|
- Aprovechar inventario existente
|
|
- Programa de lealtad unificado
|
|
|
|
---
|
|
|
|
## Historias de Usuario
|
|
|
|
| ID | Historia | Prioridad | SP | Estado |
|
|
|----|----------|-----------|-----|--------|
|
|
| US-RT009-001 | Como cliente, quiero navegar catálogo de productos con filtros | P0 | 5 | Backlog |
|
|
| US-RT009-002 | Como cliente, quiero ver disponibilidad de stock en tiempo real | P0 | 5 | Backlog |
|
|
| US-RT009-003 | Como cliente, quiero agregar productos al carrito | P0 | 3 | Backlog |
|
|
| US-RT009-004 | Como cliente, quiero ingresar o crear cuenta para comprar | P0 | 5 | Backlog |
|
|
| US-RT009-005 | Como cliente, quiero pagar con tarjeta de crédito/débito | P0 | 8 | Backlog |
|
|
| US-RT009-006 | Como cliente, quiero elegir entre envío a domicilio o pickup en tienda | P0 | 5 | Backlog |
|
|
| US-RT009-007 | Como cliente, quiero usar mis puntos de lealtad como descuento | P1 | 5 | Backlog |
|
|
| US-RT009-008 | Como cliente, quiero ver historial de mis pedidos | P1 | 3 | Backlog |
|
|
| US-RT009-009 | Como admin, quiero gestionar pedidos online desde el backoffice | P0 | 5 | Backlog |
|
|
| US-RT009-010 | Como admin, quiero configurar zonas de envío y costos | P0 | 3 | Backlog |
|
|
| US-RT009-011 | Como marketing, quiero crear banners y promociones para la tienda | P1 | 3 | Backlog |
|
|
| US-RT009-012 | Como cliente, quiero recibir notificaciones del estado de mi pedido | P1 | 5 | Backlog |
|
|
|
|
**Total Story Points:** 55 SP
|
|
|
|
---
|
|
|
|
## Flujo de Compra
|
|
|
|
```
|
|
┌─────────────┐
|
|
│ CATÁLOGO │ ← Cliente navega productos
|
|
└──────┬──────┘
|
|
│
|
|
▼
|
|
┌─────────────┐
|
|
│ CARRITO │ ← Agrega productos
|
|
└──────┬──────┘
|
|
│
|
|
▼
|
|
┌─────────────┐
|
|
│ CUENTA │ ← Login o registro
|
|
└──────┬──────┘
|
|
│
|
|
▼
|
|
┌─────────────┐
|
|
│ ENVÍO │ ← Domicilio o pickup
|
|
└──────┬──────┘
|
|
│
|
|
▼
|
|
┌─────────────┐
|
|
│ PAGO │ ← Tarjeta + puntos
|
|
└──────┬──────┘
|
|
│
|
|
▼
|
|
┌─────────────┐
|
|
│ CONFIRMADO │ ← Email de confirmación
|
|
└─────────────┘
|
|
```
|
|
|
|
---
|
|
|
|
## Estados de Pedido
|
|
|
|
```
|
|
┌─────────────┐
|
|
│ PENDIENTE │ ← Pedido creado, pago pendiente
|
|
└──────┬──────┘
|
|
│
|
|
▼
|
|
┌─────────────┐
|
|
│ PAGADO │ ← Pago confirmado
|
|
└──────┬──────┘
|
|
│
|
|
├── Si envío ──────────────────┐
|
|
│ │
|
|
▼ ▼
|
|
┌─────────────┐ ┌─────────────┐
|
|
│ PREPARANDO │ │ EN_ENVÍO │
|
|
│ (pickup) │ │ │
|
|
└──────┬──────┘ └──────┬──────┘
|
|
│ │
|
|
▼ ▼
|
|
┌─────────────┐ ┌─────────────┐
|
|
│LISTO_PICKUP │ │ ENTREGADO │
|
|
└──────┬──────┘ └─────────────┘
|
|
│
|
|
▼
|
|
┌─────────────┐
|
|
│ RECOGIDO │
|
|
└─────────────┘
|
|
```
|
|
|
|
---
|
|
|
|
## Criterios de Aceptacion de la Epica
|
|
|
|
**Funcionales:**
|
|
- [ ] Catálogo de productos con búsqueda y filtros
|
|
- [ ] Stock en tiempo real desde inventario
|
|
- [ ] Carrito persistente
|
|
- [ ] Registro/login de clientes
|
|
- [ ] Checkout con tarjeta de crédito
|
|
- [ ] Envío a domicilio y pickup
|
|
- [ ] Integración con puntos de lealtad
|
|
- [ ] Gestión de pedidos en backoffice
|
|
- [ ] Notificaciones de estado
|
|
|
|
**No Funcionales:**
|
|
- [ ] Tiempo de carga < 3 segundos
|
|
- [ ] SEO optimizado
|
|
- [ ] Responsive (mobile-first)
|
|
- [ ] Pasarela de pago segura (PCI-DSS)
|
|
|
|
**Tecnicos:**
|
|
- [ ] Integración con inventario multi-sucursal
|
|
- [ ] Integración con programa de lealtad
|
|
- [ ] Pasarela de pago (Stripe/Conekta)
|
|
- [ ] Servicio de envíos (ej: Fedex, DHL API)
|
|
|
|
---
|
|
|
|
## Dependencias
|
|
|
|
**Esta epica depende de:**
|
|
| Epica/Modulo | Estado | Bloqueante |
|
|
|--------------|--------|------------|
|
|
| EPIC-RT-001 Fundamentos | Backlog | Si |
|
|
| EPIC-RT-003 Inventario | Backlog | Si |
|
|
| EPIC-RT-005 Clientes | Backlog | Si |
|
|
| EPIC-RT-006 Precios | Backlog | Si |
|
|
|
|
**Esta epica bloquea:**
|
|
| Epica/Modulo | Razon |
|
|
|--------------|-------|
|
|
| EPIC-RT-010 Facturacion | Requiere pedidos para facturar |
|
|
|
|
---
|
|
|
|
## Desglose Tecnico
|
|
|
|
**Database:**
|
|
- [ ] Schema: `ecommerce`
|
|
- [ ] Tablas: 10 (orders, order_items, carts, cart_items, shipping_zones, addresses, payments, banners, categories_web, product_images)
|
|
- [ ] Funciones: 3 (calculate_shipping, validate_stock, process_payment)
|
|
- [ ] Indices: Por cliente, estado, fecha
|
|
|
|
**Backend:**
|
|
- [ ] Modulo: `ecommerce`
|
|
- [ ] Entities: 8 (Order, OrderItem, Cart, CartItem, ShippingZone, Address, Payment, Banner)
|
|
- [ ] Endpoints: 25
|
|
- [ ] Tests: 45
|
|
|
|
**Frontend (Web):**
|
|
- [ ] Paginas: 10 (Home, Category, Product, Cart, Checkout, Account, Orders, etc.)
|
|
- [ ] Componentes: 25 (ProductCard, CartDrawer, CheckoutForm, OrderTracker, etc.)
|
|
- [ ] SEO: Meta tags, sitemap, schema.org
|
|
- [ ] Framework: Next.js recomendado
|
|
|
|
---
|
|
|
|
## Endpoints API
|
|
|
|
| Metodo | Endpoint | Descripcion |
|
|
|--------|----------|-------------|
|
|
| GET | /api/shop/products | Listar productos |
|
|
| GET | /api/shop/products/:id | Detalle de producto |
|
|
| GET | /api/shop/categories | Categorías |
|
|
| POST | /api/shop/cart | Crear/obtener carrito |
|
|
| POST | /api/shop/cart/items | Agregar al carrito |
|
|
| DELETE | /api/shop/cart/items/:id | Quitar del carrito |
|
|
| POST | /api/shop/checkout | Iniciar checkout |
|
|
| POST | /api/shop/orders | Crear pedido |
|
|
| GET | /api/shop/orders/:id | Detalle de pedido |
|
|
| POST | /api/shop/payments | Procesar pago |
|
|
| GET | /api/shop/shipping/zones | Zonas de envío |
|
|
| POST | /api/shop/shipping/calculate | Calcular envío |
|
|
|
|
---
|
|
|
|
## Integraciones Externas
|
|
|
|
| Servicio | Propósito | Notas |
|
|
|----------|-----------|-------|
|
|
| Stripe / Conekta | Pagos con tarjeta | PCI-DSS compliant |
|
|
| Fedex / DHL / Estafeta | Cálculo de envío | APIs de cotización |
|
|
| SendGrid / Mailgun | Emails transaccionales | Confirmación, tracking |
|
|
| Google Analytics | Tracking de conversión | E-commerce enhanced |
|
|
|
|
---
|
|
|
|
## Riesgos
|
|
|
|
| Riesgo | Probabilidad | Impacto | Mitigacion |
|
|
|--------|--------------|---------|------------|
|
|
| Stock desincronizado | Media | Alto | Eventos en tiempo real |
|
|
| Fraude con tarjetas | Media | Alto | 3DS + validaciones |
|
|
| Problemas de envío | Media | Medio | Múltiples proveedores |
|
|
|
|
---
|
|
|
|
## Definition of Ready (DoR)
|
|
|
|
- [x] Historias de usuario definidas
|
|
- [x] Criterios de aceptacion claros
|
|
- [x] Dependencias identificadas
|
|
- [x] Estimacion completada
|
|
- [ ] Diseño de UI aprobado
|
|
- [ ] Pasarela de pago seleccionada
|
|
- [ ] Proveedores de envío definidos
|
|
|
|
## Definition of Done (DoD)
|
|
|
|
- [ ] Tienda online funcional
|
|
- [ ] Checkout completo con pago
|
|
- [ ] Integración con inventario
|
|
- [ ] Programa de lealtad integrado
|
|
- [ ] Tests E2E pasando
|
|
- [ ] SEO implementado
|
|
- [ ] 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
|