Producto ecommerce - ronalc90/koptup GitHub Wiki
Comercio (
commerce) · Demo:/demo/ecommerce· Modo de acceso recomendado:publico(versión con productos y marca del prospecto porsolicitud) · Prioridad: P2 · Esfuerzo total: XL (≈ 5 semanas de 1 dev senior para dejar demo y landing vendibles; el producto real se estima aparte)

Captura actual de /demo/ecommerce (vista Tienda). Ver también Sistema de demos, Catálogo de productos y Roadmap. Productos relacionados: Facturación electrónica, POS retail, Programa de fidelización y WMS / logística.
Contexto de posicionamiento: con el reposicionamiento de Koptup en sistemas RAG (ver Visión de producto), este producto queda dentro de "Otras soluciones a medida". Su trabajo no debe frenar el funnel RAG; se ejecuta en la Fase 2 junto con las demás demos secundarias.
Problema: muchas marcas y distribuidoras colombianas venden por WhatsApp, Instagram o una tienda de plantilla que no habla con su inventario ni con su facturación. Los pedidos se digitan a mano en el ERP, el stock en línea no coincide con el de bodega, la factura electrónica se emite aparte y los pagos de PSE, Nequi o contraentrega se concilian en Excel.
Para quién (cliente ideal en Colombia/LATAM):
- Marcas de moda, calzado y cosmética con 2–20 tiendas físicas que quieren un solo inventario para la tienda física y la tienda en línea.
- Distribuidoras y mayoristas que necesitan un portal B2B con lista de precios por cliente, pedido mínimo y cupo de crédito.
- Droguerías, tiendas de café, mascotas o ferretería con catálogos de más de 1.000 referencias.
- Empresas que ya superaron Shopify, WooCommerce o Tiendanube y pagan apps y desarrollos sueltos para integrarse con su ERP.
Para quién no: un emprendimiento con menos de 100 pedidos al mes. Le conviene una plataforma de plantilla, y decirlo en la landing genera confianza.
Propuesta de valor: "Tu tienda en línea conectada con tu inventario, tu facturación electrónica y los medios de pago que usan tus clientes (PSE, Nequi, Daviplata, tarjetas y contraentrega). El código es tuyo y no pagas comisión por venta a la plataforma."
| Aspecto | Estado | Evidencia |
|---|---|---|
| Demo | Existe. Maqueta 100 % en el navegador. No hay fetch, axios ni llamadas a /api
|
apps/web/src/app/demo/ecommerce/page.tsx ('use client') y components/
|
| Pantallas | Selector de 5 vistas: Tienda (hero, búsqueda con sugerencias, filtros por categoría, recomendados, vista rápida, vistos recientemente), Checkout (4 pasos: carrito, dirección, pago, confirmación), Vendedor (KPIs, pedidos en vivo, top productos, stock bajo, reglas de precio, modal "Crear producto"), Operaciones (bodegas, picking por olas, transportadoras, seguimiento de envíos, devoluciones) y Admin (KPIs, gráfico de 30 días, dona de categorías, "AI Insights", campañas, fraude, cumplimiento) |
StorefrontView.tsx, CheckoutView.tsx, VendorView.tsx, OperationsView.tsx, AdminView.tsx
|
| Ruta heredada |
/demo/ecommerce/admin: panel antiguo con pestañas Dashboard, Products, Orders y Customers. No está enlazado desde la demo |
admin/page.tsx (1.012 líneas) |
| Estado compartido |
CartProvider comparte carrito y vista activa entre Tienda y Checkout. Vendedor, Operaciones y Admin no leen ese estado |
components/shared.tsx |
| Datos | 24 productos fijos en USD, con marcas de terceros y fotos de Unsplash reutilizadas en ciclo. Pedidos, envíos y devoluciones con fechas fijas de mayo de 2026 |
components/products.ts, constantes MOCK_ORDERS, SHIPMENTS, RETURNS
|
| Backend | No existe módulo de e-commerce. Relacionados, en memoria y no montados: apps/backend/src/modules/e-invoicing/ (retirado del repositorio en octubre de 2026: está en el historial de git) y modules/pos/
|
apps/backend/src/index.ts |
| i18n ES/EN |
apps/web/messages/demos/ecommerce.{es,en}.json (256 líneas c/u). El namespace demoEcommerce2 está en uso; demoEcommercePro (~4 KB) no lo usa ningún componente. La ruta heredada usa demoEcommerce y adminPanel y escribe sus datos en inglés directamente en el código |
grep demoEcommercePro solo aparece en los JSON |
| Tests |
No tiene carpeta __tests__ (loyalty y delivery sí tienen smoke test) |
|
| Tamaño | 2.789 líneas: 1.777 de la demo actual (page 94, layout 22 y 7 componentes) y 1.012 de la ruta heredada | wc -l |
| SEO | Metadata demo-ecommerce en apps/web/src/lib/seo-config.ts ("Plataforma E-commerce Completa… Demo funcional") y breadcrumb JSON-LD en layout.tsx
|
|
| CTA | Solo el DemoCTA genérico del layout de /demo: título sin producto, "Solicitar Cotización" → /contact sin producto preseleccionado y "Ver Planes y Precios" → /pricing, que solo redirige |
apps/web/src/app/demo/layout.tsx, apps/web/src/components/demo/DemoCTA.tsx
|
| Catálogo | Mapeo correcto: offering ecommerce → demo ecommerce
|
services-catalog.ts |
Lo que hace bien: es la demo de catálogo más completa visualmente. El carrito funciona de verdad (agregar, cantidades, quitar), hay cupones (KOP10/KOP20), stepper de checkout, métodos de pago latinoamericanos listados (PSE, Nequi, Daviplata, Wompi, Addi), número de pedido y CUFE simulado, pedidos que avanzan de estado en Vendedor, reglas de precio con interruptores, bodegas en Bogotá, Medellín y Cali y transportadoras nacionales. Es responsive y el botón flotante "Ir al checkout" con contador está bien resuelto.
-
Moneda e impuestos de EE. UU.:
formatPrice(components/shared.tsx) formatea conen-US/USD;calcTotalscobra "Impuestos (8%)" y $12 de envío por debajo de $100. Para un cliente colombiano: COP, IVA incluido en el precio al consumidor (19 % general) y envío gratis desde un monto en pesos. -
Marcas de terceros: el hero (
HERO_PHOTO_ID) muestra una zapatilla con el logo visible de una marca deportiva, y hay productos llamados "MacBook Pro 15"", "iPhone 15 Pro", "iPad Air" y "Zapatillas Runner Adidas" (productNamesen el JSON). Es un riesgo de marca y distrae al prospecto. -
Fotos que no corresponden al producto:
pid(i)recicla 15 fotos. "Mat de Yoga" muestra las zapatillas rojas, "Lámpara LED" y "Set Skincare" muestran un reloj, "Perfume" muestra gafas de sol y "Set de Cocina" una botella de vino. La galería del modal (ProductModal, arreglothumbs) muestra siempre audífonos, reloj y gafas, sin importar el producto. -
Afirmaciones que Koptup no puede sostener:
AdminViewmuestra "✓ PCI DSS, GDPR, DIAN, Habeas Data CO, ISO 27001" con el texto "Cumplimos con los estándares locales e internacionales", y "IA monitoreando en tiempo real" en fraude. El hero dice "Mejor precio garantizado". "Sugerencias generadas con IA" son solo los productos con insigniabestseller. -
Checkout que no se deja usar: los campos de tarjeta tienen
value=""yonChange={() => {}}, así que no se puede escribir en ellos. "Continuar" avanza sin validar la dirección, el bloque de mapa dice literalmente "Mapa de entrega (mock)" y "Confirmar pago" muestra "¡Pago confirmado!" sin simular la pasarela. Si el visitante no escribe correo, la confirmación muestra uno de ejemplo con nombre propio. -
Vistas desconectadas: el pedido confirmado no aparece en "Pedidos en vivo" del Vendedor, "Guardar producto" cierra el modal sin crear nada, las reglas de precio no afectan el carrito y Operaciones y Admin son estáticos. Botones sin acción: "Comparar" en la tarjeta de producto (
onClick={() => {}}) y "Abrir portal RMA". -
Números inconsistentes: "Ventas hoy" suma pedidos de dos días distintos. Las tendencias (+12.4 %, +3.1 %, +0.4 pts), la conversión de 3.7 % y el "open rate" (
32 + idx * 4) están escritos a mano. Los KPIs de Admin (revenue 384.720 USD, 12.480 clientes) no tienen relación con los de Vendedor. - Spanglish y voseo: "Checkout", "AOV", "Revenue", "GMV", "LTV", "CAC", "AI Insights", "Open rate", "Win-back", "Wave 1 (express)", "RMA" e insignias "NEW/TOP/ECO". Voseo en "Recomendado para vos", "Gestioná", "Arrastrá", "Volvé", "Elegí", "Pagá" y "Recuperá".
-
Transportadoras internacionales con tarifa en USD (FedEx $18.50, DHL $22.00) mezcladas con Servientrega, Coordinadora, Interrapidísimo y TCC (
CARRIERSenOperationsView.tsx). -
Ruta heredada confusa:
/demo/ecommerce/adminduplica la vista Admin con datos en inglés ("John Doe", "Laptop Pro 15"") y USD, y muestra un banner para "configurar un código de administrador" que no tiene sentido en una maqueta sin datos reales. -
Textos del catálogo (
apps/web/messages/offerings/ecommerce.es.json): voseo ("Vendé", "Comprala", "usá"). El plan Básico ofrece "Pasarela Stripe o Wompi", pero Stripe no abre cuentas a empresas constituidas en Colombia (exige una entidad en un país soportado).costoNotecita "~2,9 % + $0,30 por transacción", que es la tarifa de Stripe en EE. UU. y no la de Wompi o PayU. Además, el Básico se dirige a "Emprendimientos y pymes que recién arrancan online" con un setup de $56 M (ver Planes y precios).
- Moneda y reglas locales: COP, IVA incluido, envío en pesos, departamentos y ciudades colombianas (DIVIPOLA) y documento CC/NIT en el checkout.
- Catálogo limpio por sector: sin marcas de terceros, con fotos que correspondan y datasets por sector.
- Un pedido que viaje por todas las vistas: Tienda → Pago → Panel de la tienda → Logística → Gerencia. Hoy es lo que más falta para contar la historia.
- Quitar lo que no se puede probar: certificaciones, "IA en tiempo real" y "mejor precio garantizado".
- Mostrar lo que diferencia a Koptup en Colombia: PSE, Nequi, Daviplata y contraentrega; factura electrónica DIAN (con Facturación electrónica); integración con Siigo/Alegra o el ERP del cliente; transportadoras nacionales; derecho de retracto y reversión del pago (Ley 1480 de 2011).
- Posicionamiento honesto frente a plataformas de plantilla (Shopify, WooCommerce, Tiendanube, VTEX): cuándo conviene una tienda a medida y cuándo no.
- Recorrido guiado de 5 pasos y etiqueta "Incluido desde plan X" en cada vista.
- CTA contextual "Solicitar demo de Tienda en línea" con el producto preseleccionado.
- Capturas y video de 60–90 s.
- Precio coherente con el cliente ideal (ver Planes y precios).
Sigue la estructura común de Landing de producto:
-
Hero: "Tu tienda en línea conectada con tu inventario y tu facturación electrónica". Subtítulo: "Pagos con PSE, Nequi, Daviplata y tarjetas, envíos con transportadoras nacionales y factura DIAN automática. El código es tuyo y no pagas comisión por venta." CTA principal "Solicitar demo", secundario "Agendar llamada" y enlace "Probar la demo interactiva" (
/demo/ecommerce). - ¿Es para ti? Dos columnas. Sí, si… tienes más de 300 referencias, varias bodegas o tiendas, precios B2B, un ERP que debe recibir los pedidos o más de 300 pedidos al mes. Todavía no, si… estás empezando: te recomendamos una plataforma de plantilla y te ayudamos a migrar cuando crezcas.
- Problemas que resuelve (3 tarjetas): stock en línea que no coincide con la bodega; pedidos y facturas digitados a mano; pagos que no se concilian.
- Cómo funciona (4 pasos): el catálogo y el inventario salen de tu ERP → el cliente paga con su medio preferido → se generan la factura electrónica y la guía de envío → ves ventas, recompras y carritos recuperados en un tablero.
- Capturas (Tienda, Pago, Panel de la tienda, Logística, Gerencia) y video de 60–90 s con locución en español y subtítulos.
- Módulos y plan en el que se incluyen (tabla Básico / Profesional / Avanzado / Enterprise).
- Integraciones: Wompi, PayU, Mercado Pago o ePayco (tarjetas, PSE, Nequi, Daviplata); Addi (compra ahora, paga después); contraentrega; Siigo, Alegra o el ERP propio; proveedor tecnológico de factura electrónica DIAN; Servientrega, Coordinadora, Interrapidísimo, TCC o un agregador de envíos; WhatsApp Business; Google Merchant Center y catálogo de Meta; Mercado Libre (plan Profesional).
-
Planes y precios: "Compra / a medida" en COP (y USD de referencia con
TRM_REFERENCIA = 3.300, como el resto de "Otras soluciones a medida"); SaaS como "Lista de espera" (DECISIÓN 7). Incluir el costo total a 12 meses. - Preguntas frecuentes: ¿Por qué no Shopify? · ¿El código es mío? · ¿Cobran comisión por venta? (No; solo la pasarela cobra la suya) · ¿Cómo se emite la factura electrónica? · ¿Cumple el derecho de retracto, la reversión del pago (Ley 1480) y la Ley 1581? · ¿Puedo migrar mi catálogo desde Excel, Shopify o WooCommerce? · ¿Cuánto tarda? (2–5 semanas en Básico) · ¿Quién paga el hosting?
-
CTA final con el formulario "Solicitar demo" con
ecommercepreseleccionado.
| Pantalla / componente | Agregar | Quitar / corregir | Datos de ejemplo |
|---|---|---|---|
Selector de vistas (page.tsx, VIEWS) |
Barra superior con el nombre de la tienda del prospecto, aviso "Datos de ejemplo" y botón "Iniciar recorrido". Leer ?view= en la URL para enlazar cada vista desde la landing |
Renombrar: Tienda → "Tienda (tu cliente)", Checkout → "Pago", Vendedor → "Panel de la tienda", Operaciones → "Logística", Admin → "Gerencia" | — |
Estado global (components/shared.tsx) |
Ampliar CartProvider a un StoreProvider con productos, pedidos y reglas de precio, para que el pedido confirmado y el producto creado aparezcan en las demás vistas |
formatPrice en USD → formateador COP (es-CO); calcTotals con IVA incluido y envío gratis desde $150.000; prefijo de pedido configurable (hoy KOP-) |
Envío $9.900 (gratis desde $150.000) |
Tienda (StorefrontView.tsx) |
Fotos propias o libres de marca, una por producto y galería propia en ProductModal; stock por ciudad ("Disponible en Bogotá"); botón "Comparar" funcional o retirarlo |
Hero con logo de terceros; productos con marcas registradas; "Mejor precio garantizado"; "Recomendado para vos" → "Recomendado para ti"; "Sugerencias generadas con IA" → "Basado en lo que viste" (usando recentlyViewed); insignias NEW/TOP/ECO → Nuevo / Más vendido / Eco |
Preset "Mercado y gourmet": café de origen Huila 500 g $38.900, chocolate de mesa 70 % $14.900, panela orgánica 1 kg $8.900, prensa francesa $89.900 |
Pago (CheckoutView.tsx) |
Campos de tarjeta editables (estado local); validación de nombre, celular y dirección; selector de departamento y ciudad; "Tipo de documento" CC/NIT y casilla "Requiero factura a nombre de empresa"; métodos Contraentrega y Bancolombia; pantalla intermedia "Redirigiendo a la pasarela (simulado)"; confirmación con "Factura electrónica (simulada)", enlace a la representación gráfica de ejemplo y vista previa del WhatsApp de confirmación | "Mapa de entrega (mock)"; correo de ejemplo con nombre propio; emojis como logos de pago (usar logos según la guía de cada marca o solo texto); "Impuestos (8%)"; código postal como obligatorio | Cupón BIENVENIDA10; dirección "Calle 85 # 15-32, Bogotá" |
Panel de la tienda (VendorView.tsx) |
El pedido recién pagado entra arriba con indicador "Nuevo"; "Guardar producto" lo agrega a la Tienda; las reglas de precio activas se aplican en el carrito (p. ej. 10 % sobre $300.000); KPIs calculados del día | Deltas, conversión y "En vivo" escritos a mano; "AOV" → "Ticket promedio"; fechas de mayo de 2026 → relativas ("hace 12 min") | 8 pedidos de clientes ficticios en Bogotá, Medellín, Cali, Barranquilla y Bucaramanga |
Logística (OperationsView.tsx) |
Acción "Generar guía" (simulada) para el pedido del recorrido, con número de guía y seguimiento; devoluciones etiquetadas "Retracto (Ley 1480)", "Garantía" o "Cambio de talla"; "Abrir portal RMA" → modal de solicitud de devolución | FedEx y DHL; tarifas en USD; "Wave" → "Ola"; "RMA" → "Devoluciones" | Coordinadora $11.500, Servientrega $12.900, Interrapidísimo $9.800 (tarifas ilustrativas) |
Gerencia (AdminView.tsx) |
Ventas por canal (web, WhatsApp, tienda física) y por ciudad; embudo visita → carrito → pago; carritos abandonados recuperados; recomendaciones basadas en los datos del dataset | Insignias de certificación con "✓"; "IA monitoreando en tiempo real"; Revenue/GMV/LTV/CAC → Ventas, Valor bruto, Valor de vida del cliente, Costo de adquisición; tasas de apertura calculadas con fórmula fija | Ventas del mes $186 M COP; 2.140 pedidos; ticket promedio $86.900; 18 % de carritos recuperados |
Ruta heredada (admin/page.tsx) |
Redirigir /demo/ecommerce/admin a /demo/ecommerce?view=admin
|
Eliminar el archivo y los namespaces demoEcommerce y demoEcommercePro si no tienen otro uso |
— |
| Global | Banner "Solicita tu demo guiada" (modo publico); badge "Incluido desde: Básico / Profesional / Avanzado" en cada vista; CTA final contextual con ecommerce
|
DemoCTA genérico |
— |
Recorrido guiado (5 pasos, menos de 3 minutos):
flowchart LR
A["1. Tienda: buscar y agregar al carrito"] --> B["2. Pago con Nequi o PSE"]
B --> C["3. Panel: el pedido entra en vivo"]
C --> D["4. Logística: generar guía de envío"]
D --> E["5. Gerencia: ventas del mes en COP"]
E --> F["CTA: Solicitar demo guiada o propuesta"]
-
Tienda: buscar "café", abrir la vista rápida y agregar "Café de origen Huila 500 g" y una prensa francesa. Aplicar el cupón
BIENVENIDA10. -
Pago: ver el IVA incluido y el envío gratis por pasar de $150.000, pagar con Nequi (simulado) y recibir el pedido
#TDA-1042, la factura electrónica simulada y el WhatsApp de confirmación. - Panel de la tienda: el pedido aparece arriba como "Nuevo"; pasarlo a "Preparando". Crear un producto y verlo publicado en la Tienda.
- Logística: generar la guía con una transportadora nacional y ver el seguimiento "En tránsito hacia Bogotá".
- Gerencia: ver $186 M COP de ventas del mes, 18 % de carritos recuperados y la recomendación "Reponer café: quedan 9 días de inventario". Cierre con CTA "Solicitar demo guiada" / "Solicitar propuesta".
-
Modo recomendado:
publico. "Tienda online Colombia" y "plataforma ecommerce" son búsquedas de alto volumen (ya están enseo-config.ts), la demo corre completa en el navegador sin costo de IA ni datos reales y es la más vistosa del catálogo: funciona como imán de leads. Muestra el banner "Solicita tu demo guiada" (DECISIÓN 1). - Qué ve el visitante sin solicitar: la landing con capturas y video de 60–90 s, y la demo interactiva completa con el preset por defecto y el recorrido guiado.
-
Qué obtiene al solicitar (flujo de Sistema de demos): una sesión guiada de 30 min y una versión con su marca y hasta 30 de sus productos (carga de CSV desde el admin), mediante un
DemoGrantde 14 días, extensible 7 días más. - Prospecto aprobado (Portal › Mis demos, ver Portal del cliente): tarjeta "Tienda en línea — personalizada para ", días restantes y botones "Abrir demo", "Agendar llamada" y "Solicitar propuesta".
-
Eventos
DemoEvent: abrió la demo, cambio de vista, pasos del tour completados, pedido simulado completado, producto creado, tiempo en la demo y clic en cada CTA.
Sin código, desde Admin › Solicitudes de demo › Aprobar (o Admin › Demos › Personalizar). Se guarda en el DemoGrant (campo personalizacion). Ver Panel de administración.
| Campo | Efecto en la demo |
|---|---|
| Logo (subida) y color primario | Encabezado de la tienda, botones, hero y correo/WhatsApp de confirmación |
| Nombre de la tienda y prefijo de pedido | "Tienda ", pedidos #<PREFIJO>-1042
|
| Sector (preset) | Carga el dataset: Moda y calzado, Droguería y cuidado personal, Mercado y gourmet, Tecnología y hogar, Ferretería y B2B (con precios por volumen) |
| Productos propios (CSV de hasta 30 filas: nombre, precio, categoría, URL de imagen) | Reemplazan los productos del preset en Tienda, Panel y Gerencia |
| Ciudades de bodega | Bodegas y stock por ciudad en Tienda y Logística |
| Medios de pago y transportadoras visibles | Opciones del paso Pago y de Logística |
| Moneda (COP/USD) e idioma (es/en) | Formato de precios y textos |
Implementación: mover PRODUCTS de components/products.ts a fixtures/<sector>.ts. La página lee la configuración de la respuesta de GET /api/demo-access/ecommerce (DECISIÓN 3) y en modo público usa el preset por defecto. Las imágenes subidas van a almacenamiento de objetos (no al disco del servidor). El CSV se valida y sanea en el servidor antes de guardarlo. Los nombres ficticios de tiendas y productos se verifican para no coincidir con marcas registradas.
Alcance MVP — modalidad compra (Básico/Profesional, 5–9 semanas):
- Catálogo con variantes (talla, color), inventario por bodega, importación desde Excel/CSV y desde el ERP.
- Checkout con pasarela colombiana (Wompi, PayU, Mercado Pago o ePayco: tarjetas, PSE, Nequi, Daviplata), contraentrega y Addi. Los datos de tarjeta se capturan en los campos o el checkout alojado de la pasarela; la tienda no los almacena (esto reduce el alcance PCI DSS).
- IVA según el producto (19 % general, 5 % o excluido en algunos), cupones y reglas de precio, precios B2B por cliente (Profesional).
- Factura electrónica DIAN emitida por un proveedor tecnológico autorizado (Siigo, Alegra o el módulo de Facturación electrónica), con NIT o cédula del comprador.
- Envíos: tarifas por ciudad, generación de guías con transportadoras nacionales o un agregador, y seguimiento por correo y WhatsApp.
- Cuentas de cliente, historial de pedidos, devoluciones con derecho de retracto y reversión del pago (Ley 1480 de 2011), PQR y términos y condiciones.
- Correos automáticos: confirmación, envío, carrito abandonado (Profesional) y solicitud de reseña.
- Panel de la tienda: pedidos, productos, inventario, clientes, reportes de ventas.
- Feeds para Google Merchant Center y catálogo de Meta; Mercado Libre en Profesional.
- Autorización de tratamiento de datos (Ley 1581) en registro y checkout, autenticación y autorización en servidor, auditoría de cambios de precio.
-
Decisión de arquitectura recomendada: construir sobre un motor de comercio headless de código abierto con licencia permisiva (p. ej. Medusa o Saleor) en vez de desde cero, y usar la UI de esta demo (
StorefrontView,CheckoutView) como base del frente en Next.js. El código sigue siendo del cliente y el MVP baja varias semanas.
SaaS (DECISIÓN 7): no hay base multi-tenant ni cobro recurrente, así que se muestra "SaaS: lista de espera". Además, competir como SaaS genérico contra Shopify, Tiendanube o VTEX no es recomendable. Si en la Fase 5 hay al menos 3 clientes en modalidad compra, evaluar un SaaS vertical ("Portal B2B para distribuidoras integrado con Siigo/Alegra") sobre el core multi-tenant de la Fase 4: dominios propios con SSL por cliente, temas, cobro recurrente con Wompi/PayU (COP) y Stripe (USD), copias de seguridad por cliente y acuerdo de encargo de tratamiento de datos.
Paquete sugerido: "Suite retail" = Tienda en línea + POS retail + Programa de fidelización + Facturación electrónica, con inventario y clientes compartidos.
Precios actuales del catálogo (apps/web/src/lib/services-catalog.ts, entrada ecommerce; COP):
| Plan | Compra: setup | Compra: mantenimiento/mes | SaaS: setup | SaaS: mes | Volumen incluido | Usuarios admin / compradores | Almacenamiento | Implementación | Costos del cliente al proveedor (USD/mes) |
|---|---|---|---|---|---|---|---|---|---|
| Básico | $56.000.000 | $5.100.000 | $2.900.000 | $1.890.000 | 1.000 órdenes/mes | 3 / 5.000 | 10 GB | 2–5 semanas | 80–250 (hosting, DB, email, comisiones de pasarela) |
| Profesional | $144.000.000 | $12.800.000 | $6.900.000 | $4.590.000 | 10.000 órdenes/mes | 15 / 50.000 | 80 GB | 5–9 semanas | 400–1.200 (+ DB administrada, email Pro, Algolia) |
| Avanzado | $336.000.000 | $28.800.000 | $12.900.000 | $8.790.000 | 75.000 órdenes/mes (5 cuentas) | 40 / 250.000 | 400 GB | 9–14 semanas | 1.500–5.000 (+ multirregión, optimización de imágenes, antifraude) |
| Enterprise | $720.000.000 | $56.000.000 | $0 (se muestra "Personalizado") | $15.790.000 | 250.000+ órdenes/mes | Ilimitado | Ilimitado | 12–20 semanas | 5.000–18.000 (+ clúster de DB, PCI DSS) |
Horas de evolutivos incluidas por mes: 5 / 12 / 25 / 50. Soporte: correo 24 h hábiles / correo + WhatsApp 4 h / + Slack Connect 2 h / tickets con SLA 1 h. USD de referencia (TRM 3.300): setup Básico ≈ USD 16.970.
Recomendaciones de claridad:
-
Cliente ideal del Básico: un setup de $56 M para "emprendimientos que recién arrancan" está fuera de mercado. Cambiar
idealParaa "Marcas y distribuidoras con más de 300 pedidos al mes que necesitan conectar la tienda con su inventario y su facturación". Decisión opcional del dueño: ofrecer aparte un paquete "Implementación sobre Shopify o WooCommerce" para quien todavía no necesita una tienda a medida. -
Pasarelas: reemplazar "Pasarela Stripe o Wompi" por "Wompi, PayU, Mercado Pago o ePayco: tarjetas, PSE, Nequi y Daviplata" y dejar Stripe solo para ventas en USD con entidad en el exterior. Corregir
costoNote: "Las comisiones de la pasarela (según su tarifa vigente en COP), el hosting y el correo transaccional los paga el cliente directamente al proveedor". - Mantenimiento de compra incoherente: 12 × $5,1 M = $61,2 M al año (109 % del setup Básico), y es 2,7 veces la cuota SaaS ($1,89 M), que además incluye hosting. Mismo problema en todos los planes y en todo el catálogo; decisión común en Catálogo de productos (porcentaje anual del setup o bolsa de horas, y qué incluye).
- SaaS → "Lista de espera" hasta la Fase 4 (y ver la nota anterior sobre SaaS vertical).
-
Enterprise SaaS setup: mostrar "Incluido" o "A convenir" en vez de "Personalizado" (hoy sale de
formatCOP(0)). - Volumen en lenguaje de cliente: "5.000 usuarios finales" → "hasta 5.000 cuentas de compradores registradas"; "1 cuenta" → "1 tienda (1 dominio)".
- Bullets por plan sin jerga: Básico "Hasta 1.000 pedidos al mes · Catálogo con tallas y colores · PSE, Nequi, Daviplata y tarjetas · Factura electrónica conectada · Guías con transportadoras nacionales". Profesional "+ Varias pasarelas y contraentrega · Seguimiento automático de envíos · Correos de carrito abandonado · Integración con Siigo o Mercado Libre · Tablero de ventas". Avanzado "+ Buscador avanzado con filtros · Antifraude · Varias bodegas · Ventas B2B y B2C en la misma tienda · Segmentos de clientes". Enterprise "+ Varios países y monedas · Catálogos B2B privados · Intercambio electrónico con proveedores (EDI) · Gerente de proyecto dedicado".
-
Tuteo en vez de voseo en
ecommerce.es.json("Vende en línea…", "Cómprala…", "usa la suscripción…"). - Mostrar en la landing el costo total a 12 meses de Básico y Profesional (setup + mantenimiento + costos estimados del proveedor).
Detalle de la política comercial común en Catálogo de productos y Comercial, marketing y legal.
| # | Tarea | Fase | Prioridad | Esfuerzo | Criterio de aceptación |
|---|---|---|---|---|---|
| 1 | Quitar de la demo las afirmaciones no verificables (certificaciones con "✓", "IA monitoreando en tiempo real", "Mejor precio garantizado", "Sugerencias generadas con IA") y el hero y los productos con marcas registradas | Fase 1 — Funnel y solicitud de demos | P1 | S | Ninguna marca de terceros ni certificación visible en /demo/ecommerce; revisión hecha sobre las 5 vistas |
| 2 | Reescribir ecommerce.{es,en}.json del catálogo: tuteo, idealPara del Básico, pasarelas colombianas, costoNote corregido |
Fase 1 — Funnel y solicitud de demos | P1 | S | Sin voseo; ningún bullet ofrece Stripe como pasarela por defecto; costoNote sin tarifas de EE. UU. |
| 3 | Eliminar la ruta heredada admin/page.tsx (redirección a ?view=admin) y los namespaces demoEcommerce/demoEcommercePro sin uso |
Fase 1 — Funnel y solicitud de demos | P2 | S |
/demo/ecommerce/admin redirige; el bundle de i18n del demo baja ≥ 4 KB; el build pasa |
| 4 | Landing /productos/ecommerce con las 10 secciones de este plan |
Fase 1 — Funnel y solicitud de demos | P2 | M | Página publicada; CTA "Solicitar demo" abre el formulario con ecommerce preseleccionado; SEO Lighthouse ≥ 90 |
| 5 | Registrar DemoCatalogItem ecommerce (publico, 14 días, video, capturas), banner, CTA contextual y eventos DemoEvent
|
Fase 1 — Funnel y solicitud de demos | P2 | S | El admin cambia el modo sin desplegar; cada clic en CTA y cada pedido simulado registran un evento con demoSlug=ecommerce
|
| 6 | Formateador COP, IVA incluido, envío en pesos y datasets por sector en fixtures/ con fotos que correspondan a cada producto |
Fase 2 — Demos vendibles | P1 | M | 5 presets; ningún precio en USD en modo COP; cada producto con su propia foto y galería |
| 7 | Checkout local: campos editables y validados, departamento/ciudad, CC/NIT, contraentrega, pantalla de pasarela simulada y confirmación con factura y WhatsApp simulados | Fase 2 — Demos vendibles | P1 | M | Se puede escribir en todos los campos; no avanza con dirección vacía; la confirmación muestra el método elegido y el total con IVA |
| 8 |
StoreProvider compartido: el pedido pagado aparece en Panel, Logística y Gerencia; el producto creado aparece en la Tienda; las reglas de precio afectan el carrito |
Fase 2 — Demos vendibles | P1 | M | Recorrer las 5 vistas muestra el mismo pedido #TDA-… con el mismo total |
| 9 | Eliminar botones sin acción ("Comparar", "Abrir portal RMA") y números escritos a mano (tendencias, conversión, open rate); fechas relativas | Fase 2 — Demos vendibles | P2 | S | Checklist por vista con 0 botones sin acción; KPIs calculados desde el dataset |
| 10 | Traducir la jerga (Checkout, AOV, GMV, LTV, CAC, Wave, RMA, NEW/TOP/ECO) y quitar el voseo del demo | Fase 2 — Demos vendibles | P2 | S |
ecommerce.es.json del demo sin voseo ni siglas en inglés visibles |
| 11 | Recorrido guiado de 5 pasos y badges "Incluido desde plan X" | Fase 2 — Demos vendibles | P1 | M | Tour completable en < 3 min; el plan mínimo de cada vista coincide con offering_ecommerce.tiers
|
| 12 | Personalización desde el DemoGrant: logo, color, nombre, prefijo de pedido, sector y CSV de hasta 30 productos con imágenes en almacenamiento de objetos |
Fase 2 — Demos vendibles | P2 | M | Con grant personalizado el prospecto ve su marca y sus productos; un CSV inválido muestra errores por fila y no se guarda |
| 13 | 5 capturas y video de 60–90 s con locución en español y subtítulos | Fase 2 — Demos vendibles | P2 | S | Archivos en docs/wiki/images/ y en la landing; video ≤ 90 s |
| 14 | Smoke test del demo en CI y división de StorefrontView.tsx (413 líneas) en componentes |
Fase 0 — Endurecimiento | P2 | S |
__tests__/page.test.tsx pasa en CI; ningún componente del demo supera 250 líneas |
| 15 | Plantilla de propuesta de Tienda en línea en el Quote ampliado (alcance MVP, integraciones, cronograma, plan, modalidad) |
Fase 3 — Propuestas y conversión | P3 | S | El comercial genera la propuesta PDF en < 15 min desde el admin |
Son metas iniciales a validar con datos reales; no son resultados actuales.
- Conversión landing → solicitud de demo ≥ 2 % (búsquedas de alto volumen y menor intención que otros productos).
- ≥ 50 % de los visitantes de la demo pública completan un pedido simulado (medido con
DemoEvent). - ≥ 40 % de las solicitudes aprobadas cargan productos propios (CSV) en su demo personalizada.
- Aprobación de solicitudes en < 24 h hábiles.
- ≥ 20 % de las demos guiadas terminan en propuesta enviada en ≤ 14 días.
- 0 marcas de terceros, 0 certificaciones no verificadas y 0 botones sin acción en la demo publicada.