Caso práctico
DragZone – integración personalizada con Shopify
DragZone es uno de los principales minoristas búlgaros de bicicletas, bicicletas eléctricas y accesorios de ciclismo.
La empresa opera una red de tiendas físicas en Bulgaria y Rumanía, respaldada por un almacén central y varios puntos de recogida. Su catálogo abarca decenas de marcas (Drag, Shimano, Bell, FSA, Suntour y más) con decenas de miles de SKU en las categorías de montaña, carretera, urbana, bicicletas eléctricas, componentes y equipamiento. El negocio atiende tanto a clientes minoristas (B2C) como a clientes empresariales (B2B), con niveles de precios específicos por país.
El proyecto
DragZone necesitaba unificar su tienda en Shopify (dragzone.bg) con su ERP Microsoft Dynamics NAV existente, de modo que la tienda en línea refleje siempre el stock, los precios y los datos de producto reales - sin que los operadores tengan que duplicar el trabajo entre sistemas.
Construimos una aplicación privada de Shopify que se encarga de la integración de extremo a extremo:
- Sincronización completa del catálogo de productos - unos 50.000 artículos de NAV enviados a Shopify dos veces al día (02:00 y 14:00, hora de Bulgaria). Se sincronizan productos, variantes, imágenes, categorías, colecciones, metacampos y fechas de entrega previstas. Las colecciones manuales de Shopify añadidas por el equipo de merchandising se conservan entre ejecuciones.
- Sincronización incremental del inventario - cada 5 minutos, solo los SKU que NAV indica como modificados se comparan con el stock actual de Shopify y se envían si difieren. Cero llamadas innecesarias a la API.
- Precios B2B por niveles - 4 listas de precios independientes (Retail BG, B2B BG, B2B EN, B2B RO, Retail RO) sincronizadas en un solo proceso, por lotes de 250 precios por mutación de Shopify.
- Procesamiento de pedidos - los pedidos de Shopify (minoristas y B2B) se validan, se asocian a clientes de NAV y se registran en NAV como pedidos de venta. Los datos de facturación (número de IVA, razón social, MOL) llegan desde los atributos de la compra; el código de IVA se deriva del país. Los pedidos fallidos se reintentan automáticamente en un intervalo configurable, con periodo de espera y protección de número máximo de reintentos.
- Enriquecimiento de contenido - una pasada semanal de enlazado interno de Netpeak devuelve datos de recomendación a los metacampos de producto para que la tienda pueda mostrar secciones de «también te puede interesar» impulsadas por señales SEO reales.
- Observabilidad - cada acción de la integración se registra con su nivel de gravedad, y se puede buscar y filtrar en un panel de administración integrado en Shopify. Las tareas programadas se pueden iniciar, detener y ejecutar a demanda.
- Diseño orientado a la seguridad - unas protecciones de detección de huérfanos impiden el archivado masivo cuando NAV no está accesible temporalmente; la paginación de NAV se valida contra los totales notificados con reintento automático; las operaciones masivas se dividen en bloques y recurren a una búsqueda binaria como alternativa en caso de fallos parciales.
Todo el sistema funciona sin supervisión, procesa decenas de miles de registros por ciclo y respeta en cada paso los límites de coste y de frecuencia de GraphQL de Shopify.
Tecnologías
.NET 8
C#
ASP.NET Core
React Router (Remix)
Shopify GraphQL Admin API
Shopify Bulk Operations- Microsoft Dynamics NAV (SOAP)
PostgreSQL