El Desafío
Construir un backend de e-commerce desde cero es complejo. Solo las promociones requieren manejar porcentajes, montos fijos, buy-one-get-one, bundles, precios escalonados y más—cada uno con sus propias condiciones y reglas de apilamiento. Storfront necesitaba capacidades enterprise sin complejidad enterprise.
Nuestro Enfoque
Construimos Storfront como una plataforma headless API-first:
- Estructura Monorepo — Turborepo con configs compartidas, reglas ESLint y definiciones TypeScript
- Stack Type-Safe — Express 5 + TypeScript + Drizzle ORM para type safety de punta a punta
- Patrón Service Layer — Routes manejan HTTP, services contienen lógica de negocio con validación Zod
- Multi-Tenant por Diseño — Todas las queries con scope a
storeIdpreviniendo fuga de datos
Motor de Promociones
El sistema de promociones basado en reglas soporta:
| Tipo | Descripción |
|---|---|
| Porcentaje | 10% de descuento en toda la orden |
| Monto Fijo | $5 de descuento en órdenes mayores a $50 |
| Buy X Get Y | Compra 2, lleva 1 gratis |
| Bundle | Descuento al comprar items específicos juntos |
| Escalonado | Descuentos crecientes en umbrales de cantidad |
| Envío Gratis | Sin cargo de envío en órdenes calificadas |
| BOGO | Compra uno, lleva otro al 50% |
Cada promoción tiene condiciones componibles (valor mínimo del carrito, productos específicos, segmentos de clientes) y reglas de apilamiento.
Aspectos Técnicos Destacados
- Drizzle ORM — SQL type-safe con migraciones automáticas
- Sistema de Carrito — Soporta clientes autenticados y sesiones de invitados
- Auth JWT — Tokens de acceso de corta duración (15m) con rotación de refresh tokens (7d)
- Docker Compose — PostgreSQL, Redis y Adminer para desarrollo local
- Vitest — Testing unitario rápido, nativo de ESM
Estructura de la API
/api/v1/auth # Login, registro, refresh
/api/v1/stores/:storeId/products # Catálogo de productos
/api/v1/stores/:storeId/cart # Operaciones de carrito
/api/v1/stores/:storeId/orders # Gestión de pedidos
/api/v1/stores/:storeId/promotions # CRUD de promociones
Los Resultados
Storfront provee una base sólida para cualquier frontend de e-commerce:
- 7+ tipos de promoción con condiciones componibles
- 100% type-safe desde base de datos hasta respuesta API
- Multi-tenant ready con aislamiento de datos apropiado
- Developer-friendly — Patrones claros, tests comprehensivos