|
Description & Fonctionnalités
Conecte sus tiendas Shopify a Dolibarr, sincronice su actividad de comercio electrónico de forma automática y migre su historial sin perder el control. NextShop Bridge es un módulo profesional para Dolibarr publicado por NEXT GESTION. Reúne en una sola herramienta un conector Shopify, un motor de sincronización bidireccional, un centro de importación de archivos, un asistente de migración, un centro de conciliación y conflictos y un panel de control.
No es un simple exportador de productos, sino una plataforma de comercio para empresas, integradores y agencias que quieren convertir Dolibarr en el ERP/CRM central de su tienda en línea. El módulo se basa exclusivamente en la GraphQL Admin API de Shopify (versión de referencia 2026-07), en los webhooks firmados y en los mecanismos de extensión oficiales de Dolibarr: triggers, hooks, campos adicionales, tareas programadas, API REST y permisos. No se modifica ningún archivo nativo de Dolibarr.
¿Por qué NextShop Bridge?
- Varias tiendas en una sola instancia de Dolibarr, cada una con su dominio, moneda, versión de API, correspondencia de almacenes, cola y registros.
- Dirección por objeto: Shopify → Dolibarr, Dolibarr → Shopify, bidireccional o desactivada, con fuente de verdad configurable incluso campo a campo.
- Un único pedido de Dolibarr por cada pedido de Shopify: idempotencia garantizada por la clave ID de Shopify + conexión, aunque el webhook llegue varias veces o el archivo se reimporte.
- Integridad financiera: los importes se comparan, no se redondean; toda diferencia superior a la tolerancia configurada se notifica. Interfaz en 5 idiomas: francés, inglés, alemán, italiano y español.
Conexión y autenticación
- Tres métodos: token de acceso de una aplicación instalada, OAuth authorization code con verificación del state y del HMAC, y client credentials para tiendas de la misma organización de Shopify; los tokens que caducan se renuevan automáticamente.
- Prueba de conexión: tienda, estado, versión de API realmente servida, moneda, zona horaria, plan, ubicaciones, número de productos, clientes y pedidos, webhooks activos y scopes concedidos.
- Pantalla «Permisos de la API de Shopify»: para cada ámbito – clientes, productos, pedidos, existencias, envíos, devoluciones, descuentos – indica si el acceso está concedido y qué función quedaría limitada si falta el scope.
- Versiones de API y secretos: 2026-07 por defecto, 2026-04 disponible y 2026-10 desde su publicación, con comprobación de la cabecera de versión en cada respuesta. Los tokens y secretos se cifran con AES-256-GCM, se muestran enmascarados y nunca se escriben en los registros.
Sincronización bidireccional por objeto
El administrador define para cada objeto la dirección y la fuente de verdad: Shopify principal, Dolibarr principal, última modificación o resolución manual.
| Objeto |
Dirección predeterminada |
Observación |
| Clientes |
Bidireccional |
Fuente de verdad configurable |
| Productos |
Bidireccional |
Título y descripción: Shopify; referencia, precio y existencias: Dolibarr |
| Precios |
Dolibarr → Shopify |
Precio y precio de comparación a nivel de variante |
| Existencias |
Dolibarr → Shopify |
Control de cantidad y clave de idempotencia |
| Pedidos |
Shopify → Dolibarr |
Un pedido de Shopify = un único pedido de Dolibarr |
| Facturas |
Dolibarr principal |
Shopify no tiene un objeto factura equivalente |
| Pagos, reembolsos, devoluciones |
Shopify → Dolibarr |
Vinculados a pedidos y facturas |
| Envíos y seguimiento |
Dolibarr → Shopify |
Crea el fulfillment y actualiza el seguimiento |
| Pedidos borrador, metaobjects |
Desactivados |
Activables según necesidad |
Los bucles de sincronización se evitan mediante identificadores de correlación, el origen de cada escritura y un hash de la última sincronización. Tras la migración inicial, la sincronización delta solo procesa los cambios reales. Por defecto no se propaga ninguna eliminación: cada borrado debe confirmarse individualmente en el centro de conflictos.
Clientes, productos y existencias
- Clientes B2C: a elegir entre un tercero por cliente o un tercero genérico con un contacto por cliente; se recuperan ID de Shopify, nombre, correo, teléfono, empresa, idioma, estado, etiquetas, notas y direcciones. Los pedidos de invitados siguen las mismas reglas; el consentimiento de marketing solo se guarda si la opción está activada y los duplicados se detectan por ID, correo y teléfono.
- Clientes B2B (Companies): se importan como terceros con contactos y direcciones cuando la tienda dispone de esta funcionalidad de Shopify (según la suscripción) y del scope correspondiente.
- Productos, colecciones e imágenes: ID, handle, título, descripción, proveedor, tipo, estado, etiquetas, colecciones, imágenes, SEO y metafields. Las colecciones pasan a categorías de Dolibarr y las etiquetas a un campo adicional. Las imágenes llegan como documentos del producto, con detección de duplicados por ID, URL y hash SHA-256 y descarga limitada a los servidores de Shopify.
- Variantes y opciones: con el módulo Variantes activo se crean el producto padre y sus combinaciones de atributos; en caso contrario, cada variante es un producto vendible cuya referencia es el SKU. SKU, código de barras, opciones, precio, precio de comparación, peso y existencias se gestionan a nivel de variante.
- Existencias y almacenes: cada ubicación de Shopify se asocia a un almacén de Dolibarr (una ubicación = un almacén, varias sumadas o regla por ubicación). Las cantidades disponibles se importan con movimientos de corrección; en la exportación se comprueban la cantidad anterior y la clave de idempotencia y toda discrepancia se notifica como conflicto de existencias en lugar de sobrescribirse.
Pedidos, facturas, pagos y reembolsos
- Pedidos: nombre y número, fecha, cliente o invitado, direcciones, moneda, líneas de productos y variantes, descuentos con su origen, impuestos, gastos de envío, cargos, notas, etiquetas y estados financiero, de preparación y del pedido.
- Facturas: el flujo es pedido de Shopify → pedido de Dolibarr → factura de Dolibarr, con el momento configurable (al crear, al pagar, al enviar o manualmente). El módulo no inventa ninguna «factura de Shopify».
- Pagos: importación de las transacciones de Shopify con ID, pasarela, importe, moneda, estado y tipo. Solo las ventas y capturas correctas generan un pago en Dolibarr; las autorizaciones y anulaciones se registran sin asiento contable. Una correspondencia abierta de pasarelas (Shopify Payments, PayPal, Stripe, tarjeta, transferencia, contra reembolso…) asigna formas de pago y cuentas bancarias.
- Reembolsos: líneas, cantidades, importes, impuestos, envío reembolsado y transacciones. Se crea un abono en Dolibarr cuando la regla lo prevé y la correspondencia es fiable; de lo contrario se abre un conflicto para decisión manual.
- Control de integridad financiera: se comparan subtotal, descuentos, envío, impuestos, total, pagado y reembolsado; toda diferencia por encima de la tolerancia genera un conflicto financiero visible con su causa probable.
Devoluciones, envíos, impuestos y monedas
- Devoluciones: se siguen la devolución, sus líneas, cantidades, estado, reembolso asociado y reposición. El módulo distingue estrictamente devolución, reembolso y cancelación: sin reembolso no se genera abono.
- Envíos y seguimiento: los fulfillments se importan como expediciones de Dolibarr con el módulo Expediciones activo; al validar una expedición se crea el fulfillment en Shopify (cantidades, transportista, número y URL de seguimiento) y después se actualiza el seguimiento. Las formas de envío de Dolibarr se asocian a las empresas de seguimiento de Shopify.
- Impuestos y descuentos: las líneas de impuestos de Shopify se asocian a los tipos de IVA de Dolibarr por denominación, tipo y país, con control de desviación; los descuentos conservan su origen y los códigos de descuento quedan archivados y consultables.
- Multimoneda y metafields: la moneda y el importe originales se conservan siempre y el tipo de cambio se guarda cuando está disponible o con el módulo Multidivisa activo. Los metafields se asignan de forma tipada a los campos adicionales, en ambos sentidos.
Webhooks y fiabilidad operativa
- Webhooks firmados: verificación HMAC-SHA256 sobre el cuerpo en bruto, rechazo de los eventos no auténticos, protección contra la reproducción y deduplicación. Se suscriben pedidos, pagos, reembolsos, devoluciones, envíos, clientes, productos, existencias, ubicaciones, operaciones bulk, desinstalación, cambios de scopes y solicitudes RGPD.
- Cola con prioridades (los pagos primero), reintentos automáticos a 1 min, 5 min, 15 min y 1 h y, después, cola de mensajes fallidos (DLQ) con reenvío manual.
- Limitación de frecuencia basada en el coste de las consultas GraphQL y disyuntor (circuit breaker) cuando Shopify no está disponible: la cola se conserva y el procesamiento se reanuda progresivamente, sin pérdida de datos. Las operaciones bulk tratan los grandes volúmenes en JSONL leído en flujo, con seguimiento y reanudación.
Centro de importación para CSV, Excel y ZIP
- Carga arrastrando y soltando archivos CSV, TXT, XLS, XLSX y ZIP, exportados desde Shopify o editados en una hoja de cálculo.
- Inspector de archivos: extensión, tipo MIME, codificación (UTF-8, UTF-16, Windows-1252, ISO-8859-1/15), separador, número de filas y columnas, cabeceras, formatos de fecha y decimales, monedas, valores vacíos, duplicados y errores.
- Detección automática del tipo con puntuación de confianza: clientes, productos, variantes, existencias, pedidos y transacciones. Un producto repartido en varias filas sigue siendo un único producto y las filas de un mismo pedido se agrupan.
- Mapeo visual «columna → campo de Dolibarr» con asignación automática, manual, columna ignorada, valor constante y concatenación; plantillas reutilizables y transformaciones: trim, sustitución, expresiones regulares, división, conversión de fechas y decimales, valor por defecto, diccionario y limpieza de HTML.
- Dry run antes de cada importación real: filas a crear, a modificar, ya existentes, conflictos y errores, sin una sola escritura. La idempotencia se apoya en la referencia de lote, el UUID y el hash del archivo y de cada fila; el lector XLSX integrado trabaja en flujo sin ejecutar jamás fórmulas y la protección cubre los archivos comprimidos maliciosos y la inyección de fórmulas CSV.
Asistente de migración en 16 pasos
El asistente acompaña desde la revisión de requisitos hasta el informe final: requisitos, tienda, scopes, fuente (API o archivos), periodo, copia de seguridad, correspondencias, catálogo, clientes, existencias, pedidos, pagos, reembolsos, envíos, conciliación e informe.
- Recuperación del historial: todos los datos accesibles, últimos 12 o 24 meses o periodo personalizado; los pedidos se cargan con una operación bulk filtrada por fecha de creación. Más allá de 60 días, Shopify exige el scope read_all_orders, que debe solicitarse: si falta, el módulo lo indica y sigue siendo posible importar la exportación CSV de pedidos.
- Página «¿Listo para dejar Shopify?»: grado de completitud por ámbito y anomalías pendientes. Mide la completitud técnica y nunca afirma que la tienda pueda cerrarse automáticamente.
- Lista de verificación del cambio e informe de migración en PDF: tienda, periodo, volúmenes, errores, avisos, conflictos, diferencias y estado final.
Conciliación, conflictos y pilotaje
- Centro de conciliación para clientes, productos, variantes, existencias, pedidos, importes, pagos, reembolsos y envíos, por ejemplo: «Pedido #12580 — Shopify 1.250,00 € / Dolibarr 1.249,98 € — diferencia y causa probable». La conciliación programada detecta objetos ausentes, correspondencias rotas, pagos huérfanos y envíos incoherentes.
- Centro de conflictos: objeto, campo, valores de ambos sistemas, fechas y origen; acciones «mantener Shopify», «mantener Dolibarr», «última modificación», «ignorar» y «crear regla». Una tabla de datos no equivalentes documenta el origen, la limitación y la alternativa.
- Shopify Commerce Sync Center, con los colores de NEXT GESTION: tiendas, clientes, productos, pedidos, facturación sincronizada, pagos, reembolsos, envíos, diferencias de existencias, cola, errores, conflictos y tasa de éxito, con gráficos integrados sin servicios externos.
- Informes sobre actividad, ventas, pedidos, clientes, productos, existencias, pagos, reembolsos, envíos y migración, exportables a CSV, Excel (XLSX) y PDF, junto con los registros (fecha, tienda, objeto, ID de Dolibarr y de Shopify, dirección, acción, estado, duración; de DEBUG a CRITICAL), el centro de diagnóstico y los datos de demostración.
Seguridad, RGPD y rendimiento
- Protección CSRF, escape sistemático de las salidas frente al XSS, consultas SQL protegidas, validación de entradas y protección SSRF: solo se contactan los dominios *.myshopify.com y los servidores autorizados de Shopify. Las subidas se controlan por tipo, tamaño, archivos comprimidos y rutas y se almacenan fuera de la raíz web; los secretos están cifrados y excluidos de los registros.
- RGPD: tratamiento de las solicitudes de Shopify customers/data_request, customers/redact y shop/redact con exportación, anonimización, eliminación controlada e historial de solicitudes. 17 permisos de Dolibarr distintos, desde la configuración hasta la administración.
- Rendimiento: GraphQL, operaciones bulk, paginación por cursor, procesamiento por lotes, lectura en flujo, índices SQL y sincronización delta. Mediciones con archivos de prueba: lectura de 100.000 filas (20.000 productos) en unos 1,6 s con 4 MB de memoria máxima; inspección y preparación del mismo volumen en menos de 4 s con menos de 32 MB en Dolibarr 24.0.1 y 18.0.10. El rendimiento real depende del servidor y de los límites de la API de Shopify.
Verdad técnica: pruebas y límites
Las pruebas se han realizado con datos simulados: fixtures, respuestas GraphQL simuladas y un servidor HTTP de Shopify simulado. A la fecha de esta descripción no se ha realizado ninguna prueba con una tienda Shopify real; todos los resultados se califican como «TESTED WITH FIXTURES».
- Entornos probados: Dolibarr 24.0.1, 22.0.5 y 18.0.10 con MySQL 8.4 y PHP 8.1 u 8.3 – pruebas unitarias y de integración, revisión HTTP de todas las páginas y ciclo de desactivación y reactivación sin pérdida de datos.
- Dolibarr de la 17 a la 23 (salvo las versiones probadas): probablemente compatibles, no probadas directamente. Las versiones anteriores a la 17 se rechazan. PostgreSQL y MariaDB no están probados: algunas consultas son específicas de MySQL.
- Historial de más de 60 días: requiere el scope read_all_orders, que debe solicitarse a Shopify. El B2B depende de la suscripción de Shopify y de los scopes correspondientes.
- No soportados: envío de las imágenes de Dolibarr hacia Shopify, creación de facturas, pagos o reembolsos en el lado de Shopify, Shopify Markets, tarjetas regalo, suscripciones, carritos abandonados, REST Admin API y webhooks mediante EventBridge o Pub/Sub.
- Parcialmente soportados: devoluciones (seguimiento y trazabilidad, sin abono ni movimiento de almacén generado por la propia devolución), códigos de descuento (archivado consultable), impuestos con varias jurisdicciones (línea al tipo más próximo con control de la desviación), colecciones automáticas (pertenencia calculada por Shopify e importada en modo lectura) y metaobjects (archivado JSON).
- Otros límites: las modificaciones de pedidos no se envían a Shopify, donde solo pueden crearse pedidos borrador; los productos con más de tres opciones o 2.048 variantes no se envían; los archivos JSON y JSONL no son importables y el formato XLS se limita a BIFF8.
El módulo nunca afirma ser compatible con todas las versiones de Dolibarr ni promete el cierre automático de su tienda Shopify. El detalle figura en el archivo COMPATIBILITY.md entregado con el módulo.
Compatibilidad
| Componente |
Estado |
| Dolibarr 24.0.1 (PHP 8.3, MySQL 8.4) |
Probado (pruebas automatizadas con fixtures) |
| Dolibarr 22.0.5 (PHP 8.3, MySQL 8.4) |
Probado (pruebas automatizadas con fixtures) |
| Dolibarr 18.0.10 (PHP 8.1, MySQL 8.4) |
Probado (pruebas automatizadas con fixtures) |
| Dolibarr 17, 19, 20, 21, 23 |
Probablemente compatibles (no probados) |
| PHP |
Mínimo declarado 7.4; probado con 8.1 y 8.3 |
| MariaDB, PostgreSQL |
No probados |
| Shopify GraphQL Admin API 2026-07 |
Probada con fixtures (respuestas simuladas) |
| API de Shopify 2026-04 / 2026-10 |
Soportadas (2026-10 desde su publicación) |
| Tienda Shopify real |
No probada |
Instalación y puesta en marcha
- Requisitos: Dolibarr con los módulos Terceros, Productos y Pedidos activados, las extensiones PHP cURL, OpenSSL y ZipArchive y HTTPS para recibir los webhooks.
- Configuración → Módulos → Desplegar un módulo externo, cargar el ZIP y activar «NextShop Bridge»: tablas, campos adicionales, plantillas, permisos, menús y tareas programadas se crean automáticamente.
- Asignar los permisos, activar el módulo Tareas programadas (cron), crear la aplicación de Shopify con los scopes necesarios, registrar la tienda, probar la conexión y suscribir los webhooks.
- Configurar las correspondencias – direcciones, impuestos, pasarelas, estados, transportistas, ubicaciones y almacenes – y la regla de creación de facturas, y empezar por un dry run.
Las actualizaciones del módulo aplican migraciones SQL versionadas y solo aditivas: nunca se destruyen datos.
Entrega y soporte
Se entregan el módulo instalable (ZIP) con interfaz en cinco idiomas, el README, la guía de migración, las matrices de compatibilidad y sincronización, la documentación técnica y el manual de formación. NEXT GESTION ofrece soporte, instalación, configuración, formación y desarrollos a medida: www.nextgestion.com.
NextShop Bridge — Copyright © NEXT GESTION — www.nextgestion.com — Todos los derechos reservados.
Shopify es una marca de Shopify Inc. Dolibarr es una marca de la asociación Dolibarr. Estos nombres se citan únicamente para indicar la compatibilidad; NextShop Bridge no está publicado ni avalado por Shopify Inc. ni por la asociación Dolibarr.
Demo del módulo NextShop Bridge
Usuario : demo
Contraseña : demo
If you order our module you benefit from:
- free installation and configuration assistance
- free help in case of bug or module malfunction
- the addition of new functionalities or options specifically adapted to your needs.
|