Caso 07 · Automatización · Operaciones · Productos
Conectar un ERP local con la web sin exponerlo, y sin escribir en él hasta tener autorización.
Camsmark vende material eléctrico e industrial con una tienda para Panamá y otra para Venezuela. Cada sede usa SAINT en un equipo Windows local con SQL Server. Construimos un agente que lee el inventario de cada sede y lo publica en la web por una conexión saliente, con reintentos, cola local y protecciones contra duplicados.
- Proyecto
- Agentes de integración con SAINT
- Contexto
- Camsmark · e-commerce con tiendas en Panamá y Venezuela
- Por Antonio Duque
- Revisado contra el código y la documentación el
01
Contexto y necesidad
Sin integración, el precio y el stock de la web dependían de cargas manuales. Las dos sedes tienen ediciones distintas de SAINT, listas de precio ordenadas de forma diferente y monedas distintas.
En Venezuela la conexión es satelital y está detrás de una red compartida: no se puede abrir un puerto ni depender de una IP pública. La web no debía entrar a la red del cliente.
02
Mi responsabilidad
- Diseñé el agente y su contrato con la plataforma, corregí el esquema de lectura verificándolo en sitio, construí las defensas contra el doble descargo, el diagnóstico y el paquete de instalación, y participé en la instalación de Panamá.
- En el lado web construí, en coautoría, el importador, los endpoints, el latido y las alertas de salud.
Trabajo en equipo
Proyecto en equipo con Noe Rivas, co-desarrollador y revisor, que lideró el piloto en Venezuela, endureció el servicio de Windows y revisó los cambios. El dueño del negocio decide el catálogo y los técnicos del cliente ejecutan en cada sede. La interfaz de la tienda es trabajo compartido.
03
Estrategia y decisiones
- Agente saliente: todas las conexiones salen del equipo del cliente por HTTPS; no hay puertos abiertos ni acceso entrante.
- Go como lenguaje: un binario único, compilado para Windows sin dependencias de C, que corre como servicio nativo.
- Cola local en SQLite para sobrevivir a cortes de enlace sin perder datos ni duplicar operaciones.
- Lector intercambiable: SQL Server directo (en uso en ambas sedes), servicio REST de SAINT (descartado porque no existía en sitio) o archivo CSV como plan de respaldo.
- Leer primero; escribir en el ERP solo con configuración completa y autorización escrita.
04
Qué construí
- Agente con modos de diagnóstico, piloto e inventario de una sola vez, y tres ciclos: inventario cada 15 minutos (no reenvía si nada cambió), ventas cada 5 minutos y latido cada 5 minutos.
- Lectura de solo dos tablas del ERP (productos y existencias por depósito), con la columna de precio elegida de una lista cerrada para evitar inyección SQL. En Panamá, con un usuario de base de datos dedicado y solo de lectura.
- Envío por lotes con token independiente por sede; el servidor rechaza precios que no correspondan a la sede del token.
- Reintentos con espera exponencial, tiempos máximos, arranque retrasado, reinicio ante fallos y bitácora rotativa en español.
- Protecciones del lado web: el agente nunca envía imágenes ni precios de oferta, no manda lotes vacíos y detiene el proceso si el servidor responde con una carga parcial.
- Panel de agentes y sincronizaciones con aviso de “sin señal” y un comando de alineación con respaldo y reversión.
Capturas reales
Pantallas del sistema real. Las de ZoDesk vienen de su modo demo, con un concesionario inventado; las marcadas «En producción» son páginas públicas capturadas el 14 de noviembre de 2026.
05
Cómo funciona
SAINT en la sede
SQL Server local con productos y existencias por depósito.
Agente Go
Servicio de Windows que lee, calcula un resumen del lote y lo guarda en su cola local.
Salida HTTPS
Envío por lotes con token de la sede, reintentos y espera exponencial.
Importador
Aplica cada fila en una transacción y guarda la referencia del lote.
Precio y stock por tienda
Panamá en dólares y Venezuela en bolívares, cada una con su lista y su depósito.
Latido y alertas
El panel muestra el estado de cada agente y avisa si deja de reportar.
Demostración
El mapa de la integración
Cuatro flujos, cuatro estados distintos
Diagrama
Sede del cliente (Windows)
SAINT + SQL Server · agente Go como servicio · cola SQLite
token por sede · reintentos
Plataforma web
Laravel · importador · panel de agentes · alertas
- Lectura del ERPSAINT · SQL Server → Agente Go (solo SELECT)En producción
- Publicación del catálogoAgente Go → Precio y stock por tiendaEn producción
- Recepción de pedidosTienda web → Cola de pedidos del agenteConstruido y probado
- Escritura de descargosAgente Go → SAINT (requiere autorización)Pendiente
Panamá: dólares, con su propia lista de precio y depósito. Venezuela: bolívares, con su lista y su depósito. La web nunca entra a la red del cliente.
06
Herramientas y su función
- Go
- Agente multiplataforma con lectura del ERP, cola, reintentos y servicio de Windows.
- SQL Server
- Base de datos de SAINT en cada sede, leída con permisos mínimos.
- SQLite
- Cola local y registro para no perder ni duplicar operaciones.
- Laravel 10 y Filament 3
- Importador, endpoints, panel de agentes y alertas.
- PowerShell
- Instalación, piloto y diagnóstico en el equipo del cliente.
Evidencias disponibles
- 157 pruebas automatizadas del agente en Go, ejecutadas en verde el 14 de noviembre de 2026, incluido un corte de luz simulado durante un descargo.
- Pruebas de integración del lado web para el importador, los pedidos, el latido y el contrato con el agente.
- Documentos de cierre técnico y operativo, e informe de incidentes con su tratamiento.
07
Estado actual
- En producción
1. Lectura del ERP
Operativa en ambas sedes: Venezuela como servicio desde agosto de 2026 y Panamá instalado el 10 de agosto de 2026.
- En producción
2. Publicación del catálogo
Precio y stock por tienda se actualizan desde el agente. La reconciliación de productos ausentes existe, pero está apagada hasta validarla.
- Construido y probado
3. Recepción de pedidos
Endpoints construidos y probados. No operativo: el pago en línea está deshabilitado y la venta se cierra por WhatsApp.
- Pendiente
4. Escritura de descargos en SAINT
Construida y probada con tres defensas contra el doble descargo. Pendiente de configuración y de autorización escrita del cliente; nunca se ha escrito en SAINT.
- En desarrollo
Monitoreo continuo
La auditoría del 5 de noviembre de 2026 registró intermitencias de latido y un agente desconectado; su tratamiento está en curso.
“En producción” solo se usa cuando la documentación del proyecto lo confirma. “Construido y probado” significa que hay pruebas automatizadas, no que esté en uso. “Propuesta” es una idea documentada, no algo construido.
Próximos pasos
- Restablecer la conexión del agente de Panamá y fijar la versión del binario desplegado.
- Separar los datos globales del producto (nombre y enlace) para que los agentes de dos sedes no se pisen.
- Confirmar con el cliente la moneda de una de las listas de precio de Venezuela.
- Validar y activar la reconciliación; obtener la configuración y la autorización antes de habilitar descargos.
08
Aprendizajes
Verificar el esquema en sitio: tres supuestos sobre el ERP resultaron falsos al conectarse.
Las listas de precio pueden estar ordenadas al revés entre sedes: copiar una configuración habría vendido más barato sin un solo error visible.
En un ERP aparecen conceptos administrativos como si fueran productos; hay que filtrarlos.
No se escribe en las tablas de un ERP sin autorización explícita, aunque el código esté listo.
Servicios relacionados
E-commerce conectado al ERP
Integración de e-commerce con ERP
Un agente lee el ERP en el equipo del cliente y publica precio y stock en la web por conexiones solo salientes, con cola local y reintentos.
Venta online
E-commerce
E-commerce en Shopify o a medida, con catálogo, inventario, proceso de pago y panel para operar sin depender de hojas de cálculo.
Sistemas a medida
Desarrollo de software
Diseñamos sistemas internos, SaaS y plataformas operativas para reemplazar procesos manuales y herramientas sueltas.
Casos conectados
Reportes y alertas automáticas por correo
Reportes que llegan solos, calculados en vivo, escritos para quien los lee y con el siguiente paso claro.
ZoDesk, ecosistema full funnel
Del primer contacto al contrato, el cobro y la operación: el sistema que conecta las piezas de los otros casos.
Paneles de monitoreo y acción
Paneles que no se quedan en el número: cada indicador fuera de rango propone una acción concreta.