Cómo sincronizar stock y pedidos entre tu tienda Shopify y el ERP (2026)
Automatización
8 min read
Miguel Ángel Rodríguez (Miguelo DEV)Especialista en automatización de procesos con n8nHay un momento concreto en el que una tienda online deja de poder llevarse a mano. Es cuando alguien compra las últimas 2 unidades de algo que en el almacén se vendió ayer por teléfono, y la respuesta de la empresa es pedir disculpas y devolver el dinero.
Conectar la tienda con el ERP arregla eso, y de paso trae su propio catálogo de problemas nuevos. Pedidos duplicados, bucles que rebotan, stock que se escribe encima de sí mismo. Casi todos se evitan con 3 o 4 decisiones tomadas el primer día, y casi ninguno se arregla bien si se toman tarde.
Lo esencial
- Cada dato tiene un dueño y viaja en una sola dirección. El stock manda desde el ERP, los pedidos desde la tienda.
- Sincronizar por diferencia y no por valor absoluto es lo que evita pisar una venta ocurrida hace treinta segundos.
- Shopify espera 5 segundos a que contestes al webhook. Dentro de él no se hace trabajo, se encola.
- Si no contestas a tiempo, reintenta hasta ocho veces. Sin clave de idempotencia, eso son ocho pedidos.
- El tiempo real siempre se pierde cosas, así que una comparación completa de madrugada no es opcional.
¿Qué hay que decidir antes de conectar la tienda con el ERP?
Antes de abrir n8n hay una conversación que dura veinte minutos y decide el ochenta por ciento del proyecto. Consiste en escribir, dato por dato, quién manda.
| Dato | Dueño habitual | Por qué y qué pasa si lo inviertes |
|---|---|---|
| Stock disponible | ERP | Es donde se descuenta lo que sale del almacén, incluidas las ventas que no pasan por la web. |
| Pedido | Tienda | Nace ahí y viaja al ERP. Volver a escribirlo desde el ERP es lo que crea duplicados. |
| Estado del pedido y envío | ERP | El número de seguimiento vuelve a la tienda para que el cliente lo vea y deje de escribir preguntando. |
| Precio | Depende, pero uno solo | Es el campo que más veces acaba editándose en los dos sitios y provocando precios que bailan. |
| Ficha de producto | Quien la mantenga de verdad | Normalmente la tienda, porque el ERP no guarda textos ni fotos pensados para vender. |
| Cliente | ERP | Con deduplicación por correo o documento. Sin ella acabas con 3 fichas de la misma persona. |
La bidireccionalidad suena bien en una reunión y es la fuente número uno de bucles infinitos. Si el ERP escribe en la tienda, la tienda avisa del cambio, el flujo lo lleva al ERP y el ERP vuelve a escribir, tienes una máquina de generar tráfico y de agotar tus límites de peticiones en una tarde.
Cuando no queda más remedio que escribir en los dos sentidos, la regla es marcar el origen del cambio y no reaccionar a los cambios que ha provocado uno mismo. Sin esa marca, no hay forma de distinguir un eco de un cambio real.
¿Por qué sigue habiendo sobreventa aunque la sincronización funcione?
La sincronización no elimina la ventana de riesgo, solo la acorta. Entre que alguien compra y el stock llega actualizado al otro lado pasa un rato, y en ese rato puede comprar otra persona.
Lo que sí cambia las cosas es cómo se escribe el número. Sincronizar por valor absoluto significa decirle a la tienda que quedan 4 unidades, con el número que el ERP tenía cuando se preparó el mensaje. Si entremedias se ha vendido una, acabas de devolver el stock a 4 y has borrado una venta.
Sincronizar por diferencia es decir que descuente una unidad. El resultado es correcto aunque el mensaje llegue tarde, y esa es la diferencia entre una integración que aguanta el Black Friday y otra que no.
Tres cosas más que ayudan y que casi nadie monta hasta que se quema.
- Un colchón en los productos de más rotación, de forma que la tienda muestre un par de unidades menos de las que hay.
- Separar el stock por ubicación si vendéis desde varios almacenes, porque un número global es mentira en cuanto hay dos sitios y un pedido que recoger.
- Y revisar qué pasa con las reservas, porque un carrito abandonado que bloquea unidades durante una hora es stock que no vende nadie.
¿Cómo recibir los pedidos de la tienda sin duplicarlos en el ERP?
Aquí está el error técnico más caro de toda la integración y tiene que ver con cómo funcionan los webhooks, no con el ERP.
Shopify espera 5 segundos a que tu sistema conteste, y cualquier cosa que no sea una respuesta correcta a tiempo, incluido un tiempo de espera agotado, cuenta como fallo. Si dentro de ese webhook llamas al ERP, creas el pedido, actualizas stock y mandas un correo, te sales del presupuesto el primer día que el ERP va lento.
Y cuando te sales, Shopify reintenta hasta ocho veces con espera creciente. El pedido se creó, tu respuesta llegó tarde y el mensaje vuelve. Sin protección, eso son varios pedidos iguales en el ERP, varios albaranes y una conversación incómoda con el almacén.
El montaje correcto tiene 3 pasos y es casi siempre el mismo.
- El flujo que recibe valida la firma, guarda el mensaje y responde correcto, sin tocar el ERP.
- Otro flujo lee lo guardado y hace el trabajo de verdad, con todo el tiempo que necesite.
- Antes de crear nada, se comprueba si la referencia de ese pedido ya existe en el ERP. Esa comprobación es lo que convierte ocho entregas repetidas en un solo pedido.
¿Tienes sobreventa o pedidos duplicados ahora mismo?
Cuéntame qué tienda y qué ERP usáis y cómo están conectados hoy. Te digo dónde está el agujero, si se arregla con un cambio o hace falta rehacer la integración y qué cuesta. Sin coste y sin compromiso.
Que Miguelo mire mi integración (se abre en una pestaña nueva)¿Cómo encajar los límites de peticiones y los catálogos grandes?
Un catálogo de diez mil referencias no se sincroniza entero cada quince minutos, por mucho que la primera versión del flujo lo intente. Se acaban los límites de peticiones, la tienda empieza a devolver errores y la integración se para sola justo el día de más ventas.
Lo que funciona es combinar dos ritmos. Los cambios viajan al momento, uno a uno, en cuanto ocurren. Y el catálogo entero se revisa una vez al día, de madrugada, cuando nadie compra.
Para que eso sea posible hace falta trabajar siempre con diferencias. Qué referencias han cambiado desde la última vez, con una marca de tiempo o una huella por producto, de manera que una ejecución normal mueva decenas de artículos y no diez mil que están exactamente igual que ayer.
Y conviene trocear los lotes grandes en lugar de mandarlos de golpe. n8n procesa todos los elementos en memoria y una sincronización completa sin trocear se queda sin memoria antes de dar ningún error. Ese fallo concreto y los demás silenciosos los desgloso en qué hacer cuando un workflow de n8n falla.
¿Por qué necesitas una resincronización nocturna aunque todo vaya en tiempo real?
El tiempo real se pierde cosas. No por un fallo tuyo, sino porque el mundo no avisa siempre. Una caída del ERP de veinte minutos, un webhook que no llegó, un ajuste hecho a mano en el almacén el sábado.
La red de seguridad es una comparación completa de madrugada. Se lee el stock del ERP, se lee el de la tienda y se compara referencia a referencia. Lo que no cuadra se corrige o, si prefieres ser prudente, se deja en un informe que alguien mira a primera hora.
Ese informe tiene un valor extra que nadie espera. Al cabo de unas semanas, las diferencias repetidas te señalan el problema de verdad, que suele ser un proceso humano concreto y no la integración.
¿Cuándo no conectar la tienda Shopify con el ERP todavía?
Te lo digo aunque me quite proyectos, porque esta integración es cara de rehacer y barata de posponer.
Si vuestro stock en el ERP no es fiable, conectarlo lo único que hace es publicar vuestro desorden. Primero se cuadra el almacén, aunque duela, y luego se sincroniza.
Si vendéis pocas referencias y pocas unidades, una exportación diaria resuelve lo mismo por una fracción del precio. La sincronización al momento se paga cuando el minuto importa, no antes.
Si estáis a punto de cambiar de ERP o de plataforma, parad. Toda la integración se rehace contra el sistema nuevo, así que estaríais pagando dos veces por el mismo trabajo.
Y si nadie va a mirar el informe de diferencias, tampoco hace falta montarlo entero. Más vale una integración pequeña que alguien vigila que una grande de la que nadie se fía, y lo que cuesta esa vigilancia cada mes lo desgloso en mantenimiento de automatizaciones con n8n.
Cómo monto yo la sincronización entre una tienda y un ERP
Empiezo escribiendo quién manda sobre cada dato, en una tabla de media página que firma el cliente. Esa tabla evita más incidencias que cualquier decisión técnica posterior, porque casi todos los conflictos acaban siendo un desacuerdo sobre quién gana.
Monto primero el sentido que menos duele. Pedidos de la tienda al ERP, que es acumulativo y no borra nada. El stock del ERP a la tienda va después, cuando ya hay confianza, porque ese sí puede tapar una venta.
Dejo todo lo que entra por webhook encolado desde el minuto 1. Validar, guardar, responder correcto y procesar aparte. Es más trabajo al principio y es lo único que aguanta un día malo del ERP.
Pongo la idempotencia antes que la lógica de negocio. La referencia del pedido guardada en el ERP y comprobada antes de crear nada. Si esta pieza no está, todo lo demás da igual, y lo que pasa cuando falta lo cuento en qué hacer cuando un workflow de n8n falla.
Y monto la comparación nocturna el mismo día que la sincronización, no al final del proyecto. Es lo que me deja dormir y lo que convierte una discusión sobre si funciona en un número concreto cada mañana.
Traducido a vuestro dinero, esto se mide en dos cifras que se pueden mirar cada día. Cuántas devoluciones por falta de stock y cuántos pedidos ha tenido que tocar alguien a mano. Cómo planteo una integración completa lo cuento en integrar tu ERP con el resto de sistemas y cómo trabajo en automatizaciones con n8n. Cuando la integración deja de caber en un flujo y pide servicio propio, pasa a desarrollo backend y APIs.
Si te quedas con una sola idea, que sea esta. La sincronización no se diseña para cuando todo va bien, se diseña para el día que el ERP tarda diez segundos en contestar. Ese día decide si tu tienda sobrevende o no.
¿Te conecto la tienda con el ERP sin sobreventa?
Escribimos quién manda sobre cada dato, monto los pedidos hacia el ERP, el stock hacia la tienda con descuento por diferencia y la comparación nocturna que avisa de lo que no cuadra. Cuéntame qué usáis.
Contarle mi caso a Miguelo (se abre en una pestaña nueva)Preguntas frecuentes
¿Hay que sincronizar el stock en los dos sentidos entre la tienda y el ERP?
¿Por qué se producen sobreventas aunque la sincronización funcione?
¿Cómo se evita que un pedido se duplique en el ERP?
¿Por qué no hay que procesar un webhook de Shopify dentro del propio webhook?
¿Hace falta una resincronización completa si ya tengo la sincronización en tiempo real?
Artículos relacionados
AutomatizaciónTu workflow de n8n falla, qué hacer en la próxima hora (2026)
Guía de triaje para cuando una automatización de n8n deja de funcionar. Qué mirar primero, qué error se arregla reintentando y cuál no, por qué un flujo sale en verde sin hacer nada y cuándo deja de salirte a cuenta seguir probando tú.