Integrar SAP Business One con Shopify es uno de los proyectos donde más fallan los equipos sin experiencia. Los problemas no suelen estar en los endpoints, sino en el diseño: idempotencia, consistencia eventual, manejo de errores y observabilidad. Esta es la arquitectura que aplicamos en TryCatch Technologies.
Modelo de capas
- Capa de origen: SAP B1 (Service Layer + DI-API) y Shopify (Admin API + webhooks).
- Capa de middleware: servicio Node.js o Python con colas (RabbitMQ/SQS) y reintentos.
- Capa de persistencia: base de datos relacional para el mapeo bidireccional y dedupe.
- Capa de observabilidad: logs estructurados, métricas y alertas (Datadog o Grafana).
Flujos clave
Productos y stock (SAP → Shopify)
SAP es la fuente de verdad. Pull periódico cada 5-15 min para deltas + push reactivo desde SAP cuando hay cambios masivos. En Shopify usamos GraphQL bulk operations para sincronizar catálogos grandes sin agotar el rate limit.
Pedidos (Shopify → SAP)
Webhook orders/create de Shopify → cola → idempotente vs Service Layer. Si el pedido falla, el reintento debe ser seguro (no duplicar). Una buena clave: shopify_order_id como external reference en SAP.
Facturación
SAP genera la factura y la envía a Shopify como nota o atributo del pedido. Para compliance (VeriFactu, e-factura UE) la factura nace siempre en SAP.
Principios de diseño
- Idempotencia: cada operación debe poder ejecutarse N veces sin efectos colaterales.
- Backpressure: respeta los rate limits de ambas plataformas con colas y throttling.
- Observabilidad: cada mensaje debe tener un correlation_id rastreable extremo a extremo.
- Dead-letter queue: ningún mensaje se pierde; los errores fatales esperan revisión humana.
- Reconciliación: job diario que compara catálogos y detecta divergencias.
Antipatrones que evitamos
- Llamar directamente a Service Layer desde Shopify Functions: viola la separación de capas.
- Sincronización en tiempo real bidireccional sin colas: causa race conditions.
- Mapear precio directamente entre sistemas sin un servicio de pricing dedicado.
- No registrar el payload original: imposibilita el debugging post-mortem.
Tiempo y coste típicos
Una integración SAP B1 + Shopify estándar (catálogo, stock, precios, clientes, pedidos, facturas) toma 8-12 semanas y entre 25k-60k€ según volumetría y reglas custom. Casos B2B con listas de precio segmentadas y catálogos por cliente pueden extenderse a 16-20 semanas.



