Vittori Consulting
vittori:~$ open vcommerce.md

VCommerce

Ecommerce B2B/B2C + agente de atención y venta

Plataforma white label para fabricantes, distribuidores y mayoristas que venden por bulto y por pallet. Tienda y backoffice en producción, un agente de IA que atiende sin inventar precios, y el ERP de la empresa como sistema de registro. Tres niveles, una sola base de código.

3niveles: ecommerce · + agente · + ERP
sept 2026caso de referencia en producción, con pedidos reales
6–8 sempara el nivel 1, desde la definición hasta producción
3sitios en producción construidos con la misma base
01 ·

El problema que resuelve

El precio vive en el ERP; la web dice otro

Catálogo, listas y clientes están en el sistema de la empresa. La tienda, cuando existe, se carga a mano y queda desfasada. Dos pantallas, dos precios.

La venta mayorista pasa por WhatsApp y Excel

Cotizaciones a mano, escalones por volumen que cada vendedor aplica distinto, pedidos que se tipean dos veces. Sin trazabilidad de quién prometió qué.

Atender lo repetido consume a ventas

«¿Cuánto trae el bolsón?», «¿llegan a mi zona?», «¿cómo compro?». Las mismas preguntas, todos los días, en horario comercial y fuera de él.

VCommerce no es un demo. Sale de un ecommerce industrial B2B/B2C que está en producción desde septiembre de 2026, con pedidos reales que viajan al ERP de la empresa. Lo que acá se presenta como producto es lo que ahí ya funciona, desacoplado de la marca.
02 ·

Tres niveles, una sola base

Cada nivel incluye al anterior. Se activa por configuración y por adaptadores, no se reescribe: pasar de N1 a N2 o a N3 es sumar módulos sobre lo que ya está en producción. Elegí un nivel para ver qué incluye.

Tienda · dominio público · compra sin registro

  • Catálogo por secciones con ficha por producto, atributos técnicos, imágenes y buscador.
  • Precios por escalón —lista, pallet y precio por cantidad— resueltos siempre en el servidor y publicados sin ambigüedad.
  • Proforma / carrito cotizada por línea; mínimos y umbrales configurables desde el backoffice.
  • Checkout con dirección geocodificada, zona de entrega por polígono y fecha prometida en días hábiles.
  • Cliente reconocido por CUIT o número de cliente: no vuelve a cargar sus datos.
  • SEO y landings mayoristas; datos estructurados sin precios.

Backoffice · login corporativo · roles · auditoría

  • Catálogo y publicación por canal (consumidor / empresa), alta y baja lógica, orden de vidriera.
  • Precios versionados: cada publicación es atómica y el pedido congela la versión con la que se cerró.
  • Pedidos con máquina de estados, bandeja, ficha y reintento de avisos.
  • Usuarios y matriz de permisos en tres capas —menú, página, endpoint— con auditoría en cada cambio.
  • Avisos de pedido nuevo por mail (con PDF) y WhatsApp; resumen diario a las 7.
  • Panel con rankings de 30 días por vendedor, producto y cliente.
Para quiénEmpresas que hoy venden por WhatsApp, Excel o una web que no vende.
Plazo6–8 semanas desde la definición hasta producción.
IncluyeTienda, backoffice, infraestructura desplegada, design system con la marca del cliente, avisos.
RequiereCatálogo, lista de precios y reglas comerciales definidas; el brandbook del cliente.
Dos superficies, dos puertas. Tienda y backoffice no comparten host, certificado ni identidad: un bug de autorización en la tienda no alcanza al backoffice.
CapacidadN1 EcommerceN2 + AgenteN3 + ERP
Tienda pública: catálogo, ficha, proforma, checkout■■■
Backoffice: catálogo, precios versionados, pedidos, usuarios, permisos, auditoría■■■
Zonas de entrega por polígono y fecha prometida■■■
Avisos por mail y WhatsApp · resumen diario■■■
SEO, landings y analytics■■■
Agente de IA en la tienda (consultas, guía de compra, derivación)—■■
Agente en el backoffice (modos Ventas / Dirección, entrenamiento aprobado)—■■
Leads y conversaciones en el backoffice—■■
Réplica de artículos, precios y clientes desde el ERP——■
«Enviar al ERP» · cliente del ERP en el checkout——■
Salud de la integración · precios tienda contra ERP——■
Canales WhatsApp y voz para el agentehoja de rutahoja de rutahoja de ruta
03 ·

El agente: guardarraíles por diseño, no por prompt

Un servicio aparte, en Python con LangGraph, que sólo afirma lo que una herramienta respalda: consulta la API pública de la tienda y una memoria curada de la empresa. No importa el dominio ni la base de datos; habla por HTTP, y eso es parte de la seguridad.

Nunca dice un importe.El precio lo resuelve el servidor; la salida del agente lo controla. Un modelo nunca redacta un precio.
Sólo afirma lo que una herramienta respalda.Una respuesta de negocio sin tool detrás se descarta antes de llegar al cliente.
Fuera de tema, sin modelo.«Cómo comprar» y lo ajeno al rubro se contestan con texto fijo; tope de 500 caracteres por mensaje.
Aislado del dominio.Una inyección de prompt exitosa no llega más lejos que lo que ya es público.
Aprende con aprobación.Ventas propone la respuesta correcta; dirección la aprueba; recién ahí cambia la memoria.
Se mide y se prueba.Conversaciones y costo por día; «preguntas de oro» en cada despliegue que informan, no bloquean.
Canales Web→Backoffice→WhatsApp→Voz ■ en producción · □ hoja de ruta: el grafo no cambia, cambia la piel
04 ·

Conexión con el ERP o sistemas propios

ERP / SISTEMA PRIMARIO artículos · precios · clientes · pedidos ADAPTADOR API REST · archivos · SQL uno por ERP VCOMMERCE backoffice + tienda + agente réplica cada 2 h (o a mano desde el backoffice) «Enviar al ERP»: el pedido vuelve con el precio aprobado

Qué resuelve

  • El ERP es el sistema de registro. La tienda es una réplica con fecha: muestra el precio del ERP y nunca uno propio.
  • El ERP gana en las diferencias; lo que el negocio corrige en el backoffice se bloquea campo por campo y el sync no lo pisa.
  • Artículos nuevos nacen sin publicar hasta cargar lo que el ERP no trae: sección, alícuota, medidas, fotos.
  • El pedido vuelve al ERP con el precio que el cliente aprobó; si el comprador no existe en el ERP, queda pendiente y ventas recibe un WhatsApp.

Control operativo

  • Salud de la integración: cada llamada al ERP registrada con resultado y duración; el panel dice si está operativa, intermitente o caída, y desde cuándo. La caída avisa.
  • Precios tienda contra ERP comparados al abrir el panel; un producto publicado sin vínculo al ERP es error del sync.
  • Variaciones grandes se destacan sin frenar la corrida; corridas duplicadas se deduplican por evento.
  • Un adaptador por ERP. El dominio no cambia: cambia cómo se lee y se escribe.
05 ·

Arquitectura

CDN + WAF (tienda) CDN + WAF (backoffice) Identidad: clientes por celular/OTP · staff con Google Workspace TIENDANext.js 15 · /api/v1 · webhooks BACKOFFICENext.js 15 · /api/v1/admin AGENTEPython 3.12 · FastAPI · LangGraphRAG + tools sobre /api/v1 N2 SYNC ERPadaptador por sistemacada 2 h · salud«Enviar al ERP» N3 DOMINIO COMPARTIDO (TypeScript puro, sin React ni Next) catalog · pricing · orders · customers · coverage · notifications · leads users · permisos · agents · sync · audit · reports INTEGRACIONESemail · WhatsApp · Maps · PDF · ERP ERP / SISTEMAPRIMARIO PostgreSQL 16 + PostGIS (Aurora Serverless v2)una base, dos apps, borrado lógico, auditoría S3imágenes, PDFs, archivos del ERP Observabilidadlogs JSON sin PII · alarmas Regla de dependencias: apps → dominio → base. Ninguna app toca la base directo. El agente no importa el dominio: habla por HTTP.

Stack

Turborepo · Next.js 15 (App Router) · TypeScript strict · Zod · Prisma 6 · PostgreSQL 16 / PostGIS · Auth.js v5 · TanStack Query · Tailwind · Vitest + Playwright · Python 3.12 + LangGraph · Terraform · AWS · Twilio WhatsApp.

Principios que vienen de serie

  • El precio lo resuelve el servidor. Un pedido con precio en el body se rechaza. Dos pantallas no pueden decir dos precios de la misma cosa.
  • Los precios del pedido son snapshot. Se congela la versión con la que el cliente aprobó.
  • El estado sólo lo escribe la máquina de estados. Transiciones válidas en un único lugar, testeadas.
  • Permisos en tres capas + auditoría. Un test falla si una pantalla nueva no declara su permiso.

 

  • Webhooks idempotentes y firmados. Pagos, WhatsApp y mail validan firma y registran por referencia del proveedor.
  • Sin PII en los logs. Email, CUIT, teléfono, dirección y pagos nunca llegan a un log.
  • Migraciones compatibles hacia atrás. Durante un despliegue conviven dos versiones del código.
  • Cobertura > 80 % en el dominio. Pricing y pedidos no son negociables; E2E en los flujos críticos.
06 ·

Caso de referencia: fábrica de papel tissue, Argentina

51SKU publicados en dos canales (consumidor / empresa)
sept 2026en producción desde el 11/09; pedidos reales desde ese día
12/díacorridas de sincronización con el ERP (cada 2 h)
7:00resumen diario por WhatsApp: pedidos, plata y conversaciones

Lo que había

Una fábrica industrial que vendía por bolsón y pallet a comercios y distribuidores, con catálogo y precios en su ERP, cotizaciones por WhatsApp y una presencia web que no vendía. Ventas atendía lo mismo todos los días.

Lo que hay

Tienda y backoffice en producción, el ERP como sistema de registro (artículos, precios y clientes replicados; el pedido vuelve al ERP con un clic), un agente que atiende en la tienda y en el backoffice sin decir nunca un precio, y un panel que compara lo que cobra la tienda contra el ERP cada vez que se abre.

De la definición de arquitectura al corte a producción: unas siete semanas. Las devoluciones de los vendedores se convirtieron en cambios desplegados en días, con bitácora de cada decisión. Ver el sitio: newpel.com.ar
08 ·

White label: qué se adapta y qué no se toca

Se adapta a cada cliente

  • Marca: tokens de color, tipografía y logo del brandbook del cliente en el design system; dominio y subdominio propios.
  • Catálogo: secciones, atributos técnicos, unidades de venta (unidad, paquete, bulto, pallet) y cómo se nombran en pantalla.
  • Reglas de negocio por configuración: mínimos de pedido, escalones, radio de envío gratis, plazo prometido, feriados, umbrales de aprobación.
  • El asistente: nombre, identidad visual, tono, base de conocimiento y guion de derivación.
  • Canales y avisos: destinatarios, plantillas de WhatsApp y mail, horario del resumen diario.
  • Integraciones: adaptador del ERP, pasarela de pagos, facturación electrónica, logística.

No se toca: las garantías del producto

  • Resolución de precios en el servidor y snapshot en el pedido.
  • Máquina de estados del pedido y aprobaciones por umbral.
  • Aislamiento por cliente: toda lectura filtra por la sesión; los endpoints que ven todo viven en el backoffice.
  • Guardarraíles del agente: sin importes, sin afirmaciones sin herramienta, servicio aislado.
  • Auditoría, permisos, idempotencia de webhooks y logs sin datos personales.
  • Separación tienda / backoffice en infraestructura e identidad.
09 ·

Plazos estimados y costos operativos

Plazo de implementación (semanas, desde la definición hasta producción)

024681012141618
N1 Ecommerce
6–8 semanas
N2 + Agente
+2–3 semanas
N3 + ERP
+3–5 sem.

■ mínimo estimado · □ rango. Estimaciones sobre el caso de referencia. Los niveles se pueden contratar por separado o en secuencia; N2 y N3 suman sobre N1. El N3 depende de la API del ERP.

Infraestructurase dimensiona por cliente

Cloud propia o del cliente. Escala con el tráfico; sin piezas caras hasta que hagan falta.

Modelo de IA (N2)según conversaciones

Costo visible por día en el resumen; tope por mensaje y presupuesto mensual configurable.

WhatsApp (Twilio)según volumen

Avisos internos y plantillas aprobadas; sin opt-in no hay mensaje.

Implementacióna cotizar

Por nivel y alcance, tras una reunión de diagnóstico. Incluye la adaptación white label.

10 ·

Cómo lo construimos: agentes de noche, criterio de día

PRDCada feature nace de un documento refinado: reglas numeradas, casos borde, criterios de aceptación.
CodeAgentes implementan sobre el dominio tipado; nada sin PRD.
UICapa visual desde el design system del cliente.
QATests unitarios, de integración contra base real y E2E.
SecurityAuditoría de autorización, inyección y datos personales.
DevOpsTerraform, CI/CD con OIDC, despliegue al mergear.

Qué hacen las personas

  • Definen la intención: qué se vende, cómo se cobra, qué se promete. Eso no lo decide un modelo.
  • Auditan lo construido: cada paso del pipeline pide confirmación; las devoluciones de ventas entran como PRDs con bitácora.
  • Aprueban lo que el agente aprende: ventas propone, dirección aprueba.

Qué gana el cliente

  • Velocidad con trazabilidad: cambios en días, cada decisión documentada en el repositorio.
  • Un producto, no un proyecto: lo que mejora para un cliente mejora la base de todos, sin mezclar datos ni marca.
  • Código propio y legible: TypeScript estricto, convenciones explícitas, sin dependencia de una caja negra.
vittori:~$ contact --name "Pablo Vittori" --mail info@vittori.me --web vittori.me

Empezamos por un diagnóstico

Una reunión de trabajo: canales de venta, catálogo, ERP y cómo cotizan hoy. Salida: el nivel recomendado, los supuestos y una propuesta con alcance, plazos y costos.

¿Preferís el mail? Escribinos a info@vittori.me.