EN
Volver a proyectos

Integración de Dropshipping a Coste Cero

Integración automatizada entre Shopify, proveedor y ERP con sincronización en tiempo real, verificación de stock y procesamiento automático de pedidos por menos de 10 euros al mes.

Integración de Dropshipping a Coste Cero

Cuando BarefootYou, una tienda online de zapatos barefoot, vino a mí con su desafío de e-commerce, los requisitos eran claros: sincronizar su tienda Shopify con el sistema de inventario de su proveedor y una plataforma ERP. En tiempo real. Manteniendo los costes casi a cero.

Simple, ¿verdad? Excepto que llevaban meses gestionando manualmente los productos, y no podíamos simplemente borrar todo y empezar de cero.

El Problema

Tres sistemas independientes que necesitaban comunicarse entre sí:

  • Shopify: Tienda de cara al cliente
  • API del Proveedor: Inventario y fulfillment
  • ERP: Gestión de almacén

El proveedor actualiza el stock cada 5 minutos. Ese inventario se comparte entre múltiples retailers. Y el cliente ya tenía cientos de productos con historial de ventas, reseñas y posicionamiento SEO que no se podían perder.

Ah, y mantenerlo funcionando gratis (o casi).

Arquitectura: Mantenerlo Simple

La solución se redujo a tres componentes principales:

1. Verificación de stock en tiempo real — App Proxy que valida el inventario cuando los clientes ven su carrito

2. Sincronizaciones nocturnas — Cronjob que mantiene actualizado el catálogo completo

3. Webhooks de pedidos — Envío automático de pedidos al proveedor

¿El ingrediente mágico? Códigos EAN. Cada variante de producto en los tres sistemas comparte este identificador de 13 dígitos. Sin coincidencias aproximadas, sin conversiones de formato de SKU. Solo sincronización limpia y determinista.

Lo Difícil: Migrar con Historial

Empezar de cero es fácil. ¿Migrar productos existentes sin perder nada? Ese es el desafío.

El cliente tenía productos que:

  • Existían en Shopify pero no estaban conectados al sistema del proveedor
  • Tenían diferentes convenciones de nombres
  • Incluían variantes (tallas, colores) creadas manualmente
  • Llevaban meses de historial de ventas y reseñas

Construimos un sistema de coincidencia usando códigos EAN. Para cada producto del proveedor:

  1. Verificar si existe una variante en Shopify con el mismo EAN
  2. Si sí, vincularlas (preservar todo el historial)
  3. Si no, crear un nuevo producto oculto para revisión

Las primeras 100 coincidencias se validaron manualmente. Solo después de confirmar que la lógica funcionaba automatizamos el resto.

Stock en Tiempo Real: La Verificación del Carrito

Los clientes no pueden comprar lo que no hay en stock. Pero con inventario compartido que se actualiza cada 5 minutos, no podemos confiar en datos cacheados.

Solución: Shopify App Proxy.

Cuando un cliente ve su carrito, JavaScript llama a nuestro endpoint del backend. Nosotros:

  1. Verificamos la caché de Redis (TTL de 30 segundos)
  2. Si no hay caché, consultamos la API del proveedor
  3. Devolvemos los niveles de stock al frontend
  4. Actualizamos el inventario de Shopify en segundo plano
  5. Sincronizamos con el ERP

La UI muestra feedback inmediato:

  • Avisos visuales para artículos sin stock
  • Botón de checkout deshabilitado si algo no está disponible
  • Alternativas sugeridas cuando es posible

La caché de 30 segundos es crucial. Las verificaciones de carrito ocurren constantemente. Sin caché, alcanzaríamos los límites de la API en minutos.

Sincronización Nocturna: Mantener los Catálogos Frescos

Las verificaciones en tiempo real cubren las necesidades inmediatas. Pero necesitamos una sincronización completa para detectar:

  • Nuevos productos del proveedor
  • Artículos descatalogados
  • Cambios de precio
  • Correcciones de inventario

Cada noche a las 2 AM:

  1. Obtener el catálogo completo del proveedor
  2. Comparar con los productos actuales de Shopify
  3. Crear nuevos productos (como borradores para revisión manual)
  4. Actualizar inventario y precios existentes
  5. Archivar artículos descatalogados
  6. Enviar resumen por email al cliente
Informe de Sincronización Diaria

Actualizados: 1.247 productos
Creados: 3 nuevos productos (ocultos)
Archivados: 1 producto descatalogado
Errores: 0

Simple. Automatizado. El cliente se despierta sabiendo exactamente qué cambió.

Pedidos Automatizados

Cuando un cliente hace checkout:

  1. Se dispara el webhook de Shopify
  2. Transformamos el pedido al formato del proveedor
  3. Lo enviamos a la API del proveedor
  4. Guardamos el mapeo del pedido en la base de datos
  5. Sincronización en segundo plano con el ERP

Un job diario de seguimiento verifica el estado del envío y actualiza Shopify con los números de tracking.

El cliente nunca toca un pedido a menos que algo falle.

Infraestructura: Cuando las Herramientas Modernas se Encuentran con la Realidad B2B

Empecé con Vercel. Gran experiencia de desarrollo, edge functions, deploys rápidos. Todo funcionaba perfectamente.

Entonces el proveedor escribió: “Necesitamos sus direcciones IP para el whitelist.”

IPs estáticas. Estándar para integraciones B2B.

La respuesta de Vercel: 100 euros/mes. En un proyecto pensado para costar casi nada.

Entra Railway

Migré todo a Railway:

  • IPs estáticas incluidas en el plan base
  • Mejor logging (Vercel tenía retención de 30 minutos)
  • La misma simplicidad de deployment
  • 10-15 euros/mes en total

¿La lección? Las plataformas serverless modernas optimizan para tráfico B2C. Las integraciones B2B tradicionales necesitan:

  • IPs estáticas para whitelist
  • Conexiones persistentes
  • Timeouts más largos
  • Logging completo

Railway nos dio todo esto a 1/10 del coste.

Optimización de Costes

Costes mensuales finales:

  • Hosting (Railway): 10 euros
  • Base de datos (Supabase): 0 euros (tier gratuito)
  • Caché (Redis): 0 euros (tier gratuito)
  • Email (Resend): 0 euros (tier gratuito)

Total: 10 euros/mes

¿Cómo?

Caché estratégica: Caché de 30 segundos para stock, 1 hora para productos, reduce las llamadas API en un 80%

Basado en webhooks: Sin polling. Los eventos disparan acciones. Sin recursos desperdiciados.

Operaciones por lotes: Actualizar 50 items por llamada API en vez de 1 a la vez

Tiers gratuitos: Servicios cuidadosamente elegidos que ofrecen planes gratuitos generosos

Resultados

Después de tres meses:

  • 1.200+ productos sincronizados diariamente
  • 300+ pedidos/mes procesados automáticamente
  • 99,4% de tasa de éxito en pedidos
  • < 300ms tiempo de respuesta en verificación de stock
  • 0,01 euros coste por pedido

Lo más importante: el cliente se enfoca en marketing mientras el sistema maneja las operaciones.

Lecciones Aprendidas

1. Los datos preexistentes son un lío Empezar de cero es fácil. La migración requiere planificación cuidadosa, validación y tiempo.

2. Verifica primero los requisitos B2B IPs estáticas, conexiones persistentes, logging. No son casos extremos—son estándar para integraciones con proveedores.

3. Cachea agresivamente Los límites de API son reales. Diseña alrededor de ellos desde el día uno.

4. La arquitectura determina los costes Las decisiones inteligentes (webhooks, caché, batching) importan más que las especificaciones del servidor.

5. Los identificadores universales son oro Los códigos EAN hicieron todo determinista. Sin ellos, estaríamos haciendo coincidencias aproximadas y revisiones manuales para siempre.

6. Testea flujos reales Los tests de integración que simulan flujos de usuario reales detectan más bugs que los tests unitarios exhaustivos.

¿Qué Sigue?

El sistema funciona. Pero hay espacio para crecer:

  • Soporte multi-proveedor: Arquitectura lista para proveedores adicionales
  • Alertas predictivas: Avisar cuando el inventario se agotará según la velocidad de ventas
  • Precios dinámicos: Ajustar precios según la competencia
  • Analytics avanzados: Rendimiento de SKU, velocidad de stock, patrones de pedidos

Para escalar más allá de 1.200 productos:

  • Migrar a cola de trabajos en segundo plano (BullMQ)
  • Añadir réplicas de lectura de base de datos
  • Implementar CDN para imágenes
  • Considerar GraphQL para consultas más eficientes a Shopify

Reflexiones Finales

Construir esta integración me enseñó que los desafíos técnicos suelen ser más fáciles que los de negocio. Las partes difíciles no fueron el código—fueron entender las restricciones:

  • Datos existentes que no se pueden perder
  • Inventario compartido que cambia constantemente
  • Límites de API que dan forma a la arquitectura
  • Requisitos B2B que las herramientas modernas pasan por alto
  • Optimización de costes que viene de decisiones inteligentes

El sistema funciona 24/7, sincroniza miles de SKUs, procesa cientos de pedidos, y cuesta menos que unos pocos cafés al mes.

Lo más importante: simplemente funciona. El cliente no piensa en sincronización de inventario o enrutamiento de pedidos. Se enfoca en hacer crecer su negocio.

Ese es el objetivo.


¿Interesado en construir integraciones similares? La clave es entender tus restricciones primero—luego construir la arquitectura alrededor de ellas. Las herramientas modernas son potentes, pero no siempre están diseñadas para flujos B2B tradicionales.