Integrar Shopify con el ERP: caso real de inventario, pedidos y fletes
Cómo conectamos tiendas Shopify con el ERP: precios e inventario, pedidos, guías, fletes y factura electrónica. Arquitectura, decisiones, errores y lista de verificación.
Carlos Betancur · CEO y fundador de btodigital
14 min de lectura
Respuesta rápida: integrar Shopify con el ERP significa que el ERP sea la única fuente de verdad de precios e inventario, que cada pedido pagado viaje solo al ERP y que la guía de envío vuelva sola a la tienda. Lo que hace que funcione no es la conexión en sí, sino las reglas: qué manda quién, qué pasa cuando un sistema no responde y cómo se evita procesar dos veces el mismo pedido o la misma factura.
Este artículo sale de tres proyectos reales que hicimos con el equipo de btodigital: la sincronización entre el ERP Ofima y la tienda de Vilá Decoración, una integración de pedidos y guías con el ERP corporativo de una empresa que no podemos nombrar y un conector de facturación electrónica entre Shopify y Siigo. Aquí contamos cómo se arma, qué decidimos y en qué nos equivocamos; no prometemos resultados de ventas.
¿Qué problema resuelve integrar Shopify con el ERP?
Cuando la tienda en línea y el ERP viven separados, alguien tiene que mantenerlos de acuerdo a mano, y aparecen tres problemas conocidos:
- Sobreventa: la web muestra disponible un producto que ya no está en bodega. El cliente paga, alguien tiene que llamarlo a explicar y devolver el dinero.
- Precios distintos entre la tienda y el punto de venta: el precio se cambia en el ERP y nadie lo actualiza en la web, o al revés. El cliente ve un valor en línea y otro en el almacén.
- Doble digitación: cada pedido de la web se vuelve a escribir en el ERP para facturarlo y despacharlo, y luego alguien copia la guía de la transportadora de vuelta en Shopify para avisarle al cliente.
No es teoría. Antes de encender la integración de Vilá comparamos la tienda contra el ERP, producto por producto, y aparecieron diferencias de precio y de disponibilidad, como pasa en casi cualquier empresa que actualiza la web y el ERP por separado. Buena parte se explicaba por una regla que todavía no estaba escrita en ningún lado: qué bodegas cuentan para la venta en línea.
¿Cómo se ve la arquitectura, explicada sin tecnicismos?
Piensa en la integración como un conjunto de tuberías, cada una con una sola dirección y una regla clara sobre quién manda. Esta tabla resume los flujos que construimos en los tres proyectos:
| Flujo | Dirección | Qué lo dispara | Quién manda |
|---|---|---|---|
| Precios | ERP hacia Shopify | Revisión programada cada 10 minutos (Vilá) | El ERP, salvo productos en promoción |
| Disponibilidad | ERP hacia Shopify | La misma revisión cada 10 minutos (Vilá) | El ERP, contando solo las bodegas que despachan a la web |
| Pedidos pagados | Shopify hacia ERP | Aviso inmediato de Shopify cuando el pedido queda pagado | Shopify (es donde ocurre la venta) |
| Guía de envío | ERP hacia Shopify | El ERP avisa cuando logística asigna la guía | El ERP; Shopify le escribe al cliente |
| Costo del flete | Shopify consulta a la transportadora | Cada vez que el cliente llega al pago | La tarifa de la transportadora, con una tarifa de respaldo |
| Factura electrónica | Shopify hacia el sistema contable | El pedido (al crearse, al pagarse o al despacharse, según la configuración) | El sistema contable, con candado contra duplicados |
En medio hay una pieza pequeña que llamamos el intermediario: un servicio en la nube (aquí, Google Cloud) que recibe los avisos, traduce los datos de un sistema al otro, guarda un registro y avisa por correo cuando algo falla. El ERP no se reemplaza: sigue siendo el centro de la operación.
Caso 1: Vilá Decoración, el ERP manda y la tienda obedece
Vilá vende muebles y decoración en Shopify y lleva su operación en Ofima. La regla de fondo, acordada con su equipo, fue sencilla: Ofima es la fuente de verdad y la integración solo lo lee. Nunca escribe en el ERP. La llave que une los dos sistemas es el código del producto: el código de Ofima es el mismo SKU de Shopify.
Cada cuánto se sincroniza y por qué no es «tiempo real»
Ofima no avisa cuando algo cambia, así que la integración pregunta. La diseñamos como un proceso programado cada 10 minutos que lee precios y existencias del ERP, los compara con la tienda y escribe en Shopify solo las diferencias. Una corrida típica tomó 21 segundos.
Las dos reglas con las que la reactivamos
La primera versión sincronizaba cantidades exactas. El equipo de Vilá nos pidió pausarla porque estaban por hacer el conteo físico de inventario de noviembre y no querían que la web reflejara cifras que iban a corregir. La pausamos el mismo día y revertimos los cambios de cantidades. El 20 de octubre de 2026 la reactivamos con solo dos reglas, y ninguna toca cantidades:
- Precio: el precio del ERP (lista de venta más IVA) sobrescribe el de la tienda, excepto en productos en promoción u outlet. Si la tienda tiene un precio tachado, ese producto no se toca.
- Ocultar por cero: si las dos bodegas que despachan a la web suman cero unidades, el inventario web pasa a cero y la aplicación de la tienda que esconde agotados lo retira sola.
Dos detalles que salieron del trabajo con el equipo de Vilá. Primero, no todas las bodegas cuentan: hay bodegas de préstamo, tránsito, restauración o remisiones que tienen unidades que no se pueden vender en línea. Nuestra primera versión las sumaba todas, y ese fue el error que mostraba como «disponibles» productos que no se podían despachar. Segundo, los productos personalizados o bajo pedido no existen en esas bodegas, así que la regla los deja visibles: si un SKU no tiene registro en las bodegas de despacho, no se oculta.
Frenos de seguridad
Una integración que escribe sola puede hacer mucho daño con datos incompletos. Por eso le pusimos frenos:
- Si la lectura del ERP trae menos filas de las esperadas, no escribe.
- Si una corrida intenta ocultar o cambiar de precio demasiados productos de golpe, no escribe y queda registrado.
- Nunca pone un precio en cero ni uno absurdamente alto.
- Si una corrida termina con errores, se envía una alerta por correo.
Los fletes, calculados en el momento del pago
Para la logística conectamos el pago de Shopify con la tarifa en línea de TCC. Cuando el cliente llega al pago, la tienda le pregunta al intermediario cuánto cuesta el envío; este traduce la ciudad a su código DANE, calcula el peso facturable (el mayor entre el peso real y el peso volumétrico, que en muebles casi siempre domina) y consulta la tarifa. En 99 simulaciones en el ambiente de pruebas, antes de salir a producción, la respuesta promedió 312 milisegundos. Si la transportadora no responde o la ciudad no se reconoce, la diseñamos para mostrar una tarifa estimada fija en lugar de un error: preferimos cobrar un estimado a perder la venta en el último paso.
Caso 2: pedidos y guías sin digitar con un ERP corporativo
En otro proyecto, con una empresa que opera con un ERP corporativo, el reto era el camino contrario: que cada pedido pagado en Shopify llegara solo al ERP y que la guía de envío volviera sola a la tienda. Así quedó diseñado el recorrido:
- Cuando un pedido queda pagado, Shopify envía un aviso al intermediario. Shopify da cinco segundos para responder; si no, considera fallida la entrega y reintenta. Por eso el intermediario responde «recibido» de inmediato y procesa después.
- Antes de llamar al ERP, guarda el pedido en su propia base de datos con estado «pendiente». Si el ERP falla, el pedido no se pierde: queda registrado con estado «error» y el mensaje exacto.
- Envía al ERP los datos acordados: cliente, documento de identidad, direcciones, productos por SKU, cantidades, precios, flete y total.
- Cuando logística asigna la guía, el ERP llama al intermediario con una clave secreta. El intermediario crea el despacho en Shopify y Shopify le envía al cliente el correo con el número de seguimiento.
El detalle que nadie anticipa: la cédula o el NIT
Para facturar en Colombia el ERP necesita el documento del comprador, y Shopify no tiene un campo nativo para eso. La solución fue reetiquetar en el pago un campo existente de la dirección como «Cédula/NIT» y hacerlo obligatorio. Aun así, los pedidos creados a mano desde el administrador (pedidos borrador) no pasan por esa validación, así que la integración deja una advertencia cuando un pedido llega sin documento, indica si vino de un pedido borrador y lo envía al ERP marcado como «sin documento», para que alguien lo complete antes de facturar.
Idempotencia, la palabra que evita despachos dobles
«Idempotente» significa que hacer la misma operación dos veces deja el mismo resultado que hacerla una vez. Importa porque los avisos pueden llegar repetidos: la propia documentación de Shopify recomienda ignorar entregas duplicadas usando el identificador de cada aviso. En este proyecto, si el ERP enviaba dos veces la misma guía, el intermediario revisaba si el pedido ya tenía despacho y, si lo tenía, no creaba otro ni le escribía dos veces al cliente.
Caso 3: la factura electrónica, donde un duplicado sí cuesta
En un conector de facturación electrónica entre Shopify y Siigo que desarrollamos, el riesgo más serio no era que una factura fallara, sino que saliera dos veces hacia la DIAN. Dos decisiones lo resolvieron:
- Candado por pedido: antes de facturar, el conector «reclama» el pedido de forma atómica. Si dos procesos intentan facturar la misma orden al mismo tiempo, solo uno gana; el otro se retira.
- Fallo incierto, revisión humana: si el sistema contable no responde (tiempo agotado o red caída), no sabemos si la factura se creó o no. En ese caso el pedido queda marcado «por revisar»: el reintento automático no lo vuelve a facturar, y solo una persona, después de verificar en Siigo, puede reintentarlo. Para facilitar esa revisión, cada factura lleva en observaciones la referencia «Orden Shopify» con su número.
La regla: un error claro se reintenta; un error dudoso se revisa antes. En inventario un reintento de más es inofensivo; en facturación no.
¿Qué decisiones técnicas tomamos y por qué?
- Un solo dueño por dato. El precio y la existencia los manda el ERP; la venta la manda Shopify. Cuando dos sistemas pueden editar el mismo dato, tarde o temprano se pisan.
- Solo lectura sobre el ERP cuando se puede. En Vilá la integración no escribe en Ofima. Eso reduce a casi cero el riesgo de dañar la contabilidad o el inventario oficial.
- Escribir solo diferencias. Comparar primero y tocar solo lo que cambió reduce llamadas, tiempo y riesgo.
- Revisión periódica además de los avisos. Shopify advierte en su documentación que una aplicación no debe depender solo de los avisos, y recomienda procesos periódicos de conciliación. Los avisos dan rapidez; la conciliación da certeza.
- Frenos y alertas desde el primer día. Una integración silenciosa que falla es peor que no tener integración, porque todos asumen que los datos están bien.
¿Cuáles son los errores más frecuentes al integrar Shopify con un ERP?
Los vivimos en estos proyectos o en otras sincronizaciones que operamos:
- Contar las bodegas equivocadas. Sumar todo el inventario de la empresa, incluidas bodegas de préstamo o de tránsito, muestra disponible lo que no se puede despachar.
- Pisar los precios de promoción. Si la integración compara contra el precio rebajado, «corrige» las promociones y las borra. Hay que comparar contra el precio de lista y respetar el precio tachado.
- Escribir en la ubicación de inventario equivocada. Shopify maneja inventario por ubicación. En otra integración que operamos, la vitrina leía una ubicación distinta a la que actualizábamos y la tienda se veía «toda agotada» aunque el administrador mostrara existencias.
- Suponer que los avisos de Shopify llegan siempre. Shopify reintenta las entregas fallidas hasta ocho veces en cuatro horas y, si las fallas persisten, elimina la suscripción. Nos pasó: el aviso de inventario, el más frecuente, se cayó en silencio. La solución fue un monitor que, cada pocas horas, verifica que las suscripciones existan y las recrea si faltan.
- Creer que más servidores resuelven un pico. En una tienda estándar, la API REST de Shopify permite en promedio dos solicitudes por segundo por aplicación y por tienda. Subir servidores no aumentó el ritmo: solo movió el cuello de botella hacia Shopify. Volvimos a un solo servidor y dejamos que la conciliación recoja lo pendiente.
- Leer mal las fechas del ERP. En una base de datos configurada en español, la fecha «2026-11-01» se leyó como 11 de enero. Hay que probar las consultas con fechas reales.
- Sincronizar cantidades antes de conciliar la bodega. La integración copia lo que dice el ERP, para bien y para mal. Si hay un conteo físico cerca, vale la pena esperarlo antes de sincronizar cantidades exactas, como acordamos con el equipo de Vilá.
¿Qué datos sincronizar y con qué frecuencia?
No todo necesita la misma velocidad. Esta es la frecuencia que usamos en los proyectos de este artículo; es un punto de partida, no una norma:
| Dato | Frecuencia que usamos | Por qué |
|---|---|---|
| Disponibilidad (agotados) | Cada 10 minutos | Es lo que evita la sobreventa |
| Precio de lista | Cada 10 minutos, con candado para promociones | Los cambios de precio son menos frecuentes, pero un precio viejo genera reclamos |
| Pedidos pagados | Inmediato, por aviso de Shopify | Cada minuto de espera retrasa el despacho |
| Guía y seguimiento | Inmediato, cuando el ERP la asigna | El cliente quiere saber cuándo llega |
| Costo del flete | En cada pago, en vivo | Depende del destino, el peso y el volumen de ese carrito |
| Factura electrónica | Por pedido, con candado contra duplicados | Un duplicado tiene consecuencias contables |
| Conciliación general | Periódica (diaria en una de nuestras sincronizaciones) | Recupera lo que los avisos no entregaron |
Lo que normalmente no conviene sincronizar desde el ERP: títulos, descripciones y fotos. Los nombres del ERP son operativos y la ficha de la tienda está escrita para vender.
¿Cuánto cuesta y cuánto tarda?
Solo podemos dar lo que está documentado en estos proyectos. El servicio de fletes de Vilá lo configuramos para no tener servidores encendidos cuando nadie lo usa, de modo que en reposo no genera cobro de cómputo. Para la plataforma de bodega que propusimos a Vilá sobre la misma nube, estimamos el costo de infraestructura entre 5 y 15 dólares al mes, a cargo del cliente; es un estimado, no una medición. El costo del desarrollo depende de los flujos, del ERP y de las reglas a acordar, así que no damos una cifra general.
En tiempos, lo que más demora rara vez es programar: es conseguir acceso al ERP, entender sus datos y acordar las reglas con quien conoce la operación.
Lista de verificación antes de empezar
- ¿Cada producto tiene el mismo código en el ERP y en Shopify? Sin una llave común, no hay integración confiable.
- ¿Quién manda cada dato? Escríbelo: precio, existencias, pedidos, guías, facturas.
- ¿Qué bodegas cuentan para la venta en línea y cuáles no?
- ¿Cómo se manejan las promociones? ¿Las define el ERP o la tienda?
- ¿El ERP permite leer sus datos (base de datos o API) y avisar cambios, o hay que preguntarle periódicamente?
- ¿Hay una cuenta de solo lectura para la integración, con una clave que no caduque sin aviso?
- ¿El inventario del ERP está al día? Si no, ordénalo primero.
- ¿Dónde se captura la cédula o el NIT del comprador para facturar?
- ¿Qué pasa si el ERP, la transportadora o el sistema contable no responde? Define la respuesta de respaldo para cada uno.
- ¿Cómo se apaga la integración en un minuto si algo sale mal? En Vilá la diseñamos para que baste con pausar la tarea programada.
Si estás evaluando conectar tu tienda con tu ERP, en btodigital acompañamos el proceso de punta a punta, desde el levantamiento de reglas con tu equipo hasta la operación con alertas. Puedes conocer nuestro trabajo en desarrollo y operación de tiendas Shopify y en comercio electrónico.
Preguntas frecuentes
¿Se puede conectar Shopify con cualquier ERP?
En la práctica sí, siempre que el ERP permita leer sus datos (por API o por su base de datos) y que los productos tengan un código común en ambos sistemas. Aquí conectamos Ofima por consulta a su base de datos y un ERP corporativo por un servicio que su equipo expuso para recibir pedidos.
¿La sincronización de inventario es en tiempo real?
Depende del ERP. Si el ERP no avisa cuando algo cambia, la integración tiene que preguntar cada cierto tiempo. En Vilá la programamos cada 10 minutos. Los pedidos pagados, en cambio, sí viajan de inmediato porque Shopify avisa en el momento de la venta.
¿Qué pasa si el ERP se cae?
Una buena integración no pierde datos. En la integración de pedidos de este artículo, cada pedido se guardaba antes de enviarlo al ERP y, si el envío fallaba, quedaba registrado como error. En Vilá, si la lectura del ERP llega incompleta, la integración se detiene sin escribir nada.
¿La integración puede borrar las promociones de la tienda?
Puede hacerlo si no se diseña con cuidado. Por eso en Vilá la regla de precio excluye los productos con precio tachado o marcados como outlet: el precio del ERP solo sobrescribe los productos que no están en promoción.
¿Cómo se evita facturar dos veces el mismo pedido?
Con un candado por pedido, que impide que dos procesos facturen la misma orden al mismo tiempo, y con una regla para los fallos dudosos: si el sistema contable no respondió, el pedido queda por revisar y no se vuelve a facturar automáticamente hasta que una persona confirme si la factura ya existe.
¿Qué se necesita del equipo de la empresa para empezar?
Acceso al ERP (idealmente una cuenta de solo lectura), una persona que conozca el inventario y las bodegas, alguien de logística para el flujo de guías y alguien de contabilidad para la facturación. Las reglas de negocio las define la empresa; nosotros las convertimos en código y en alertas.
Temas shopifyerpintegracionesinventariofacturación electrónicalogística
Carlos Betancur
CEO y fundador de btodigital
Especialista en marketing digital con más de 20 años de experiencia ayudando a empresas en Colombia y España a crecer con estrategias basadas en datos, SEO, pauta digital e inteligencia artificial.
¿Y ahora qué?
Pasa de leer a hacer, con ayuda de btodigital