Plataforma eCommerce moderna y escalable, construida con NestJS, PostgreSQL, Redis, Meilisearch y Transbank Webpay para pagos en línea. Incluye módulos completos de productos, categorías, pedidos, pagos y administración básica.
- 🛒 Catálogo de productos con categorías
- 🧺 Carrito + checkout completo
- 💳 Pagos en línea con Webpay Plus
- 📦 Gestión de pedidos (pendiente, pagado, cancelado)
- 🧾 Integración profesional Webpay TEST (ACK + retorno + validaciones)
- 🔎 Buscador avanzado con Meilisearch
- 🗄️ Storage interno MinIO (local)
- 🚀 Preparado para Docker y despliegue en VM
Asegúrate de tener instalados:
| Componente | Versión recomendada |
|---|---|
| Node.js | 18+ |
| Docker + Docker Compose | Última versión |
| PostgreSQL | (si no usas Docker) |
| Redis | (si no usas Docker) |
| Meilisearch | (si no usas Docker) |
👉 Recomendación: Siempre ejecutar con Docker Compose (mucho más simple).
El proyecto está preparado para levantarse completo con:
docker compose up -d
Esto levanta automáticamente:
- 📦 Backend NestJS
- 🐘 PostgreSQL
- ⚡ Redis
- 🔎 Meilisearch
- 📁 MinIO
- 🌐 PgAdmin (opcional)
git clone https://github.com/turepo/cleanstore-retail.git
cd cleanstore-retail
Copia el ejemplo:
cp .env.example .env
Configura:
- Credenciales PostgreSQL
- Host del backend
- Llaves Webpay TEST (
COMMERCE_CODE,API_KEY_SECRET) - Config Redis
- Config Meilisearch
docker compose build
docker compose up -d
| Servicio | URL |
|---|---|
| API Backend | http://localhost:4000 |
| PgAdmin | http://localhost:5050 |
| Meilisearch | http://localhost:7700 |
| MinIO Console | http://localhost:9001 |
npm install
npm run start:dev
Debes tener PostgreSQL, Redis y Meilisearch corriendo localmente.
| Comando | Descripción |
|---|---|
npm run start:dev |
Modo desarrollo |
npm run build |
Construcción para producción |
npm run start:prod |
Ejecutar build en modo producción |
npm run test |
Correr pruebas unitarias |
npm run lint |
Analizar código |
- Iniciar transacción →
/pagos/iniciar - Formulario Webpay
- Retorno del usuario →
/pagos/retorno?token_ws=... - Confirmación Webpay (ACK) →
/pagos/ack - Consulta de detalle →
/pagos/detalle/:token
Incluye:
- Validación de montos
- Manejador de duplicados
- Manejo de errores Webpay (422, rechazado, cancelado)
- Idempotencia completa
src/
├── modules/
│ ├── productos/
│ ├── categorias/
│ ├── pedidos/
│ ├── pagos/
│ └── auth/ (futuro)
├── common/
├── database/
└── main.ts