2.0.30 Historique des versions - Module Shopify Integration pour Dolibarr

Historial de Versiones

🚨 Versión 2.0.30 (2025-09-09) - CORRECCIONES CRÍTICAS SINCRONIZACIÓN PEDIDOS

🚨 Correcciones Críticas de Producción
  • Issue #86 - CRÍTICO: Corregido crash "Failed to fetch company" en entornos de producción
  • CAUSA RAÍZ: Método createOrUpdateCustomer() devolvía tipos mixtos (-1 o objeto Societe)
  • CORRECCIÓN: Añadida validación estricta de tipos antes de acceder a propiedades del cliente
  • Issue #87: Sistema de logs completo para depuración en producción
  • Issue #88: Verificación automática de permisos de usuario CRON
  • Issue #90: Manejo de errores mejorado en gestión de clientes
🔧 Mejoras del Código
  • Seguridad de Tipos: Validación estricta de objeto e ID para todas las operaciones de cliente
  • Contexto de Error: Mensajes de error mejorados con email, entidad y detalles de operación
  • Seguridad Transaccional: Manejo mejorado de transacciones de base de datos con rollback adecuado
  • Estándares de Logs: Niveles de log estandarizados (DEBUG, INFO, WARNING, ERR)
🎯 Impacto al Cliente
  • INMEDIATO: Resuelve crashes "Failed to fetch company" en producción
  • FIABILIDAD: Manejo de errores mejorado previene interrupciones de sincronización
  • SOPORTE: Logs detallados facilitan resolución rápida de problemas
  • MONITOREO: Verificación de permisos CRON previene fallos de autorización silenciosos

🐛 Versión 2.0.29 (2025-09-05) - CORRECCIONES CRÍTICAS MULTI-ENTIDAD

🚨 Correcciones Críticas
  • Issue #83 - CRÍTICO: Corregido error "Failed to fetch company" en entornos multi-entidad
  • Issue #84: Versión dinámica en exportación de diagnósticos JSON
✨ Mejoras
  • Multi-Entidad: Búsqueda de clientes ahora filtrada correctamente por entidad
  • Diagnósticos: Versión recuperada automáticamente del módulo

🐛 Versión 2.0.28 (2025-09-04) - CORRECCIONES CRÍTICAS SINCRONIZACIÓN

🚨 Correcciones críticas
  • BUG CRÍTICO #80: Pedidos que se vuelven "pagados" después de la creación no sincronizados
  • SOLUCIÓN: Uso de updated_at_min en lugar de created_at_min
  • VENTANA DE SEGURIDAD: Adición automática de ventana de 24h para capturar pedidos perdidos
  • BUG CRÍTICO #81: Error getDolGlobalBool() en Dolibarr v19-20
  • POLYFILL: Función de compatibilidad automática para versiones anteriores a v21
✨ Mejoras diagnósticas
  • EXPORTACIÓN JSON: Diagnóstico completo exportable para soporte técnico (47 verificaciones + 39 parámetros)
  • INTERFAZ MEJORADA: Clases CSS para estado conexión Shopify con colores visuales
  • CONFIGURACIÓN SEGURA: Exportación con enmascaramiento automático de claves sensibles (claves API, tokens)
  • CORRECCIÓN TIMING: Exportación JSON después de construcción completa del informe
📝 Documentación soporte
  • EMAILS TÉCNICOS: Plantillas para soporte cliente con explicaciones detalladas
  • SOLUCIONES: Documentación de bugs y soluciones para casos similares
🔄 Compatibilidad universal
  • DOLIBARR v19: Compatibilidad completa con polyfill
  • DOLIBARR v20: Compatibilidad completa con polyfill
  • DOLIBARR v21+: Función nativa utilizada

🎯 Versión crítica: Instalación fuertemente recomendada para todos los usuarios, particularmente si usa Dolibarr v19-20 o encuentra problemas de sincronización de pedidos.

🔧 Versión 2.0.27 (2024-12-26) - MIGRACIÓN CONFIGURACIÓN

🔧 Migración Configuración (Issue #73)
  • NUEVO: Migración automática de tabla personalizada a constantes Dolibarr estándar
  • NUEVO: Clase ConfigurationMigrator para 42 parámetros de configuración
  • NUEVO: Compatibilidad con entidades múltiples Dolibarr
  • MEJORADO: Sistema de respaldo automático si falla migración
🐛 Correcciones Críticas
  • CORREGIDO: Issue #72 - Errores API silenciosos en sincronización imágenes
  • CORREGIDO: Logs HTTP detallados para mejor diagnóstico problemas API
  • CORREGIDO: Issue #74 - Verificador permisos con 15 comprobaciones Dolibarr
⚙️ Técnico
  • NUEVO: Sistema diagnóstico permisos usuarios Dolibarr
  • NUEVO: Contador configuración migrada (X/42 parámetros)
  • MEJORADO: Script SQL migración 2.0.26 → 2.0.27

🐛 Correcciones Críticas (2025-08-29)

🐛 Correcciones Críticas (2025-08-29)
  • CORRECCIÓN CRÍTICA: ConfigurationMigrator mostraba falsamente "30/42 parámetros migrados"
  • CORRECCIÓN CRÍTICA: La migración ahora maneja correctamente los valores `0` (excluidos por la condición `!empty()` anterior)
  • CORRECCIÓN CRÍTICA: Agregadas traducciones faltantes para la interfaz UserRightsCheck (5 idiomas)
  • CORRECCIÓN: Las casillas de sincronización de productos ahora se muestran correctamente basadas en constantes migradas
  • CORRECCIÓN: Las estadísticas de migración ahora cuentan con precisión solo los 42 parámetros mapeados
  • CORRECCIÓN: Opciones de sincronización de productos (precios, descripciones, imágenes, stocks, atributos) correctamente migradas
🚀 Mejoras Interfaz (2025-08-29)
🔍 Diagnóstico de Permisos de Usuario (2025-08-29)
🚀 Mejoras de la Interfaz de Diagnóstico (2025-08-29)

🚨 Versión 2.0.25 (2025-08-04) - HOTFIX CRÍTICO

🔧 Correcciones críticas
  • BUG CRÍTICO: Corrección primera sincronización que no recupera pedidos recientes cuando no existe sync previa
  • CAUSA RAÍZ: Cuando MAX(tms) devuelve NULL (tabla vacía), no se aplicaba filtro de fecha a consulta GraphQL, haciendo que Shopify devuelva pedidos más antiguos en lugar de recientes
  • SOLUCIÓN: Implementación de fallback inteligente usando fecha de instalación del módulo cuando no existe sync previa
  • NUEVO MÉTODO: SqlUtils::getModuleInstallationDate() con lógica de fallback jerárquica:
    • Prioridad 1: Fecha de activación de módulo desde tabla llx_const
    • Prioridad 2: Fecha de creación de tabla desde information_schema
    • Prioridad 3: Fecha de primera configuración desde detalles de tienda
    • Prioridad 4: Fallback por defecto (6 meses atrás)
  • MEJORADO: ShopifyOrderManager::getLastSuccessfulSync() ahora garantiza fecha de referencia válida para todas las sincronizaciones
📈 Impacto
  • CORRIGE: Clientes en v2.0.23/2.0.24 experimentando "ningún pedido sincronizado" en instalaciones nuevas
  • ASEGURA: Primera sincronización recupera correctamente pedidos recientes desde instalación del módulo
  • MANTIENE: Compatibilidad completa hacia atrás con sincronizaciones existentes

🚀 Versión 2.0.24 (2025-01-08) - IMPORTACIÓN HISTÓRICA Y AUTO-ACTIVACIÓN

🆕 Nuevas funcionalidades
  • Issue #60: Funcionalidad de importación histórica de pedidos integrada en sistema CRON
  • Issue #60: Activación automática de CRON cuando las configuraciones de productos y pedidos están completas
  • NUEVO: Gestión inteligente de CRON con verificaciones de completitud de configuración
  • NUEVO: Importación histórica de pedidos vía ShopifyOrderSyncCron con creación automática de clientes
  • NUEVO: Auto-desactivación de CRONs cuando la configuración está incompleta para prevenir errores de API
🔧 Correcciones críticas
  • Issue #61: Corregida sincronización manual mostrando productos pero incapaz de sincronizarlos (caso S001)
  • Issue #62: Corregidos servicios siendo sincronizados como productos físicos en lugar de servicios
  • CRÍTICO: Corregida inconsistencia en manejo de parámetros entre interfaces search y sync
  • CRÍTICO: Corregida detección de tipo de servicio - servicios ahora establecen correctamente requiresShipping: false en Shopify
⚡ Mejoras
  • MEJORADO: Manejo unificado de parámetros usando GETPOST('search_ref', 'aZ09') para preservar ceros iniciales en SKUs
  • MEJORADO: Diferenciación adecuada servicio vs producto en sincronización Shopify (detección fk_product_type)
  • MEJORADO: Tareas CRON deshabilitadas por defecto en instalación para prevenir llamadas API prematuras
  • MEJORADO: Validación de configuración antes de ejecución CRON en ImportProductsCron y ShopifyOrderSyncCron
  • SIMPLIFICADO: Eliminada interfaz import_orders separada - funcionalidad integrada en sistema CRON
  • MULTILINGÜE: Agregadas traducciones para nuevas características en 5 idiomas (FR/EN/DE/ES/IT)
🏗️ Mejoras técnicas
  • ARQUITECTURA: Importación histórica de pedidos integrada en flujo CRON existente
  • CONFIABILIDAD: Agregadas verificaciones de completitud de configuración antes de ejecución CRON
  • USABILIDAD: Mensajes automáticos de retroalimentación de activación CRON para usuarios
  • MANTENIMIENTO: Eliminado archivo de interfaz import_orders.php redundante

🏗️ Versión 2.0.23 - Sesión 15 (2025-05-31) - UNIFICACIÓN GESTIÓN TABLA SINCRONIZACIÓN

🔧 Refactorización Crítica
  • CRÍTICO: Unificación de funciones de gestión de tabla para llx_dolibarr_shopify_products_save
  • CRÍTICO: Creación de función única manageProductMapping() reemplazando tres funciones separadas (releaseSyncLock, saveProductMapping, updateProductTimestamp)
  • CRÍTICO: Corrección de lógica TMS timestamp - ahora solo actualiza en estado 'success' como solicitado
  • CRÍTICO: Resolución de comportamiento inconsistente entre modos de sincronización manual y automático
✨ Mejoras
  • MEJORADO: Lógica única y consistente para todas las operaciones de tabla elimina diferencias comportamentales
  • MEJORADO: Inicialización TMS adecuada para nuevos registros - usa valor por defecto de tabla (CURRENT_TIMESTAMP) salvo si estado es 'success'
  • MEJORADO: Manejo de errores y logging mejorados en función unificada
  • MEJORADO: Mejor mantenibilidad del código con reducción de duplicación y enfoque unificado
🏗️ Arquitectura Técnica
  • ARQUITECTURA: manageProductMapping() maneja creación, actualizaciones, gestión de estados y lógica TMS
  • ARQUITECTURA: releaseSyncLock() ahora usa función unificada con parámetro releaseLock=true
  • ARQUITECTURA: saveProductMapping() ahora usa función unificada con estado 'pending'
  • ARQUITECTURA: updateProductTimestamp() ahora usa función unificada con estado 'success'
  • RENDIMIENTO: Operaciones de base de datos optimizadas con lógica UPDATE/INSERT inteligente
🐛 Correcciones
  • CRÍTICO: Corrección de problemas potenciales de TMS NULL durante creación de registros
  • CRÍTICO: Eliminación de gestión inconsistente de tabla causando diferencias de comportamiento de sync
  • CRÍTICO: Corrección de lógica de actualización TMS para activarse solo en sincronizaciones exitosas

🚨 Versión 2.0.23 - Sesión 14 (2025-05-31) - CORRECCIÓN ESTADO PRODUCTOS SIMPLES

🐛 Correcciones críticas
  • CRÍTICO: Corrección de productos simples que permanecían en estado 'pending' después de sincronización exitosa
  • CRÍTICO: Corrección de lógica de salida temprana en checkProductNeedsUpdate() para marcar estado como 'skipped' cuando productos no necesitan actualizaciones pero sync fue exitoso
  • CRÍTICO: Resolución del problema donde productos como "PullColMontantTorsade202004" permanecían en estado pending indefinidamente
🆕 Nuevas funcionalidades
  • NUEVO: Añadido estado 'skipped' al enum last_sync_status para productos que no necesitan actualizaciones
  • NUEVO: Distinción mejorada de estados: 'success' (actualizado), 'skipped' (no necesita actualización), 'failed' (error), 'pending' (en progreso)
✨ Mejoras
  • MEJORADO: Gestión mejorada de estados de sincronización - productos que no necesitan actualizaciones ahora se marcan correctamente como 'skipped' en lugar de preservar 'pending'
  • MEJORADO: Mejor distinción entre productos que fallaron sync vs productos que fueron procesados exitosamente pero no necesitaban cambios
  • MEJORADO: Esquema de base de datos actualizado para soportar estado 'skipped' en enum

🚨 Versión 2.0.23 - Sesión 13 (2025-05-31) - CORRECCIÓN CRÍTICA FK_PRODUCT_PARENT

🐛 Correcciones críticas
  • CRÍTICO: Corrección problema fk_product_parent NULL durante sincronización manual de variantes
  • CRÍTICO: Corrección llamadas saveProductMapping() para variantes para incluir ID producto padre
  • CRÍTICO: Resolución variantes creadas con fk_product_parent=NULL en lugar de ID padre correcto
  • CRÍTICO: Mejora método mapVariantsToShopify() para manejar correctamente relaciones padre-variante

🏗️ Versión 2.0.23 - Sesión 12 (2025-05-31) - ISSUE #56 ARQUITECTURA PADRE-VARIANTE

🚀 Nuevas funcionalidades
  • ISSUE #56: Añadida columna fk_product_parent para mejorar relaciones padre-variante
  • NUEVO: Esquema de base de datos mejorado con seguimiento de relaciones padre-variante
  • NUEVO: Restricciones de clave foránea para integridad de datos entre productos padre y variante
  • NUEVO: Migración automática de datos para poblar relaciones padre-variante existentes
✨ Mejoras
  • MEJORADO: Método saveProductMapping() ahora soporta parámetro fk_product_parent para variantes
  • MEJORADO: Método releaseSyncLock() actualizado para trabajar con nueva arquitectura padre-variante
  • MEJORADO: Consultas de base de datos optimizadas para distinguir entre productos padre y variantes
  • MEJORADO: Script de creación de tabla SQL actualizado con nueva columna y restricciones

🔄 Version 2.0.23 - Session 7 (2025-05-30) - CORRECCIONES DE RETRY Y ESTADÍSTICAS

🐛 Correcciones críticas
  • CRÍTICO: Corregidos IDs TEMP_LOCK tratados incorrectamente como actualizaciones de Shopify causando fallos de retry
  • CRÍTICO: Armonización de estados de sincronización entre 'failed' y 'error' para visualización consistente de estadísticas
  • Corregida interfaz de estadísticas que no contaba fallos de sincronización debido a inconsistencia de estados
  • Mejorada lógica de mapeo de productos para filtrar IDs de bloqueo temporales
✨ Mejoras
  • NUEVO: Filtrado inteligente de IDs de bloqueo temporales para evitar llamadas API de Shopify inválidas
  • NUEVO: Terminología armonizada de estados de sincronización en toda la base de código e interfaz
  • Mejorada precisión de reportes de error en el panel de administración
  • Mejor distinción entre productos nuevos y actualizaciones reales

🚨 Version 2.0.23 - Session 6 (2025-05-30) - CORRECCIONES DE SINCRONIZACIÓN

🐛 Correcciones críticas
  • CRÍTICO: Corrección del mecanismo de bloqueo de sincronización para evitar violaciones de restricción NOT NULL
  • CRÍTICO: Corrección de la protección contra sincronizaciones concurrentes con IDs de bloqueo temporales
  • CRÍTICO: Corrección de consultas UPDATE imprecisas que afectaban múltiples registros de variantes
  • Corrección del fallo de sincronización para productos nuevos debido a IDs de Shopify vacíos
  • Mejora de la precisión de updateProductTimestamp() agregando shopifyVariantId a la cláusula WHERE
⚡ Mejoras
  • NUEVO: Sistema de bloqueo temporal inteligente usando formato único TEMP_LOCK_[timestamp]_[productId]
  • NUEVO: Protección mejorada contra sincronizaciones concurrentes para sincronizaciones manuales y automáticas (cron)
  • NUEVO: Precisión mejorada del mapeo de variantes para evitar contaminación cruzada entre variantes
  • Mejor manejo de errores y registro para operaciones de bloqueo de sincronización
  • Análisis completo y corrección del manejo de relaciones producto-variante

🚨 Version 2.0.23 - Session 5 (2025-05-30) - CORRECCIONES CRÍTICAS

🐛 Correcciones críticas
  • CRÍTICO: Corregida sincronización manual que no funcionaba - parámetro isManualSync=true faltante
  • CRÍTICO: Corregido setSyncLock() que creaba IDs de cadena vacía en lugar de valores NULL en base de datos
  • Error: Corregido mensaje "No hay productos para sincronizar" que bloqueaba la sincronización manual
  • Error: Eliminada contaminación de base de datos con IDs de Shopify inválidos
⚡ Nuevas funcionalidades
  • NUEVO: Seguimiento de fallos de sincronización con campos last_sync_status y last_sync_error
  • NUEVO: Visualización de estadísticas de fallos en interfaz de administración con alertas visuales
  • NUEVO: Gestión mejorada de bloqueos de sincronización con seguimiento de estado ('success', 'error', 'skipped', 'pending')
  • Mejora: Esquema de base de datos con limpieza automática de registros inválidos
  • Mejora: Mensajes de error completos para sincronizaciones fallidas

🔧 Version 2.0.23 - Session 4 (2025-05-30) - OPTIMIZACIÓN DEL CÓDIGO

⚡ Mejoras principales
  • Factorización del código: Creación del método getProductVariants() para eliminar la duplicación de código entre importProducts() e importProductsManual()
  • Manejo de transacciones: Gestión transaccional completa añadida con begin...commit/rollback en importProductsManual()
  • Mantenibilidad: Unificación de la lógica de procesamiento de variantes entre sincronización automática y manual
  • Logs mejorados: Logs detallados añadidos para seguimiento de transacciones y monitoreo de errores
🔧 Correcciones críticas
  • Variable indefinida: Corregido bug crítico donde $product estaba indefinido en importProductsManual()
  • Contador de sincronización: Corregida lógica faltante para incrementar $numSynced
  • Manejo de errores: Mejorado el manejo de errores con rollback automático
Impacto técnico: Esta actualización mejora significativamente la robustez y mantenibilidad del código de sincronización, con una reducción de más de 30 líneas de código duplicado.

✅ Version 2.0.23 - Session 3 (2025-05-27) - FINALIZACIÓN

🔧 Correcciones finales
  • SKUs numéricos: Corregida búsqueda de SKUs puramente numéricos (ej. 00667) en interfaz manual (Issue #51)
  • Sincronización no deseada: Corregida sincronización de productos sin tags/categorías (Issue #52)
  • Corregido GETPOST('term', 'alphanohtml') corrompiendo SKUs numéricos en ajax/search_products.php
  • Añadida lógica de búsqueda especializada para SKUs numéricos con múltiples enfoques
  • Implementado filtrado obligatorio por categorías en la sincronización
🆕 Nueva funcionalidad principal
  • Interfaz de vista previa de categorías: Vista previa completa antes de sincronización manual (Issue #50)
  • Sistema completo de análisis de categorías y vista previa de sincronización
  • Interfaz mejorada con detalles de categorías, barras de progreso y estadísticas de resumen
  • Análisis en tiempo real vía endpoint AJAX ajax/preview_sync.php
  • Soporte completo para traducciones francesas de la funcionalidad de vista previa

Version 2.0.23 - Mayo 2025

🔧 Refactorización
  • Limpieza de código: Eliminados métodos de sincronización obsoletos después de la unificación
  • Eliminado método deprecado synchronizeProductsToShopify() (239 líneas)
  • Eliminados métodos no utilizados syncProductWithVariants() y syncProductAsVariant()
  • Eliminado método helper redundante getShopifyProductId()
  • Simplificación del código base eliminando lógica de sincronización duplicada
  • Unificación de toda la sincronización para usar el método probado importProductsManual()
🐛 Correcciones críticas
  • CRITIQUE: Correction de la duplication infinie des produits et variants lors de la synchronisation (Issue #42)
  • Correction du double nettoyage des IDs dans la méthode updateProductTimestamp() causant l'échec de recherche dans la table de mapping
  • Suppression des transactions imbriquées dans updateProductTimestamp() empêchant la mise à jour correcte des enregistrements
  • Correction de la cohérence du format des IDs entre les IDs Shopify et le stockage en base de données
  • Amélioration des logs de débogage pour les opérations de mapping et mise à jour des timestamps
  • Résolution de la régression introduite dans la v2.0.22 lors du merge des commits v2.0.21
💡 Améliorations techniques
  • Refactorisation de updateProductTimestamp() pour utiliser la transaction parent au lieu de transactions imbriquées
  • Standardisation de la gestion du format des IDs Shopify dans toutes les méthodes de synchronisation
  • Ajout de logs détaillés pour déboguer les échecs de recherche dans la table de mapping
  • Amélioration de la gestion d'erreur pour la création de mapping quand les enregistrements sont manquants

Version 2.0.22 - Mai 2025

✨ Nouvelles fonctionnalités
  • Interface de synchronisation manuelle des produits dans l'administration (Issue #40)
  • Recherche en temps réel de produits Dolibarr avec autocomplétion
  • Synchronisation individuelle ou par lot directement depuis l'interface
  • Feedback visuel immédiat du statut de synchronisation
  • Support multilingue complet (FR, EN, DE, ES, IT)
🐛 Corrections de bugs
  • CRITIQUE: Correction des erreurs d'arrondi des prix (.95€ devenant .96€) affectant 13 références produits (Issue #38)
  • Les prix privilégient maintenant les prix TTC stockés au lieu de recalculer HT + TVA
  • CRITIQUE: Correction de la duplication des produits lors des synchronisations (Issue #37)
  • Mécanisme de verrou temporel (5 minutes) pour empêcher les synchronisations concurrentes
  • Protection par session pour éviter les doublons dans une même requête
  • Libération automatique des verrous même en cas d'erreur
💡 Améliorations techniques
  • Standardisation des en-têtes PHP et déclarations de licence dans tout le projet
  • Amélioration de la détection des modes d'exécution (CLI/web) pour les crons
  • Nouvelle option de configuration pour la priorité des prix TTC en mode multi-prix
  • Amélioration des logs de calcul de prix pour un meilleur débogage
  • Optimisation de l'organisation des requêtes SQL
  • Guide de configuration: Amélioration de la hiérarchie visuelle des options du chapitre 6
  • Sections hiérarchiques avec icônes : Configuration Prix, Contenu, Stocks
  • Indentation visuelle pour les options dépendantes avec indicateurs conditionnels
  • Interface plus claire avec en-têtes colorés et mise en page structurée
  • Filtrage des catégories: Correction pour utiliser uniquement la catégorie configurée et ses enfants
  • Récupération corrigée de la configuration des catégories depuis la base de données
  • Calcul amélioré des statistiques produits pour les catégories configurées uniquement
  • Interface de synchronisation manuelle avec structure hiérarchique des catégories basée sur la configuration
  • Mode debug: Ajout mode debug complet (?debug=1) pour diagnostiquer les problèmes de filtrage
  • Correction SQL critique: Correction des références de colonnes dans l'interface de synchronisation manuelle
  • - Changement de `p.fk_product_parent` vers `p.fk_parent` pour le filtrage des produits parents
  • - Changement de `dsp.dolibarr_product_id` vers `dsp.fk_product` pour les jointures de la table de synchronisation
  • Amélioration variants: Ajout support des produits parents de variants dans l'interface de synchronisation
  • - Inclusion des produits sans variants (fk_parent IS NULL OR fk_parent = 0)
  • - Inclusion des produits parents de variants (sous-requête EXISTS p2.fk_parent = p.rowid)
  • Simplification des requêtes SQL pour de meilleures performances et fiabilité
  • Validation du schéma de base de données et logs détaillés des requêtes SQL pour le dépannage
  • Correction des statistiques retournant 0 produit par correction des requêtes complexes

Version 2.0.21 - Mai 2025

🐛 Corrections de bugs
  • Correction de la logique de synchronisation des images qui se lançait même quand désactivée
  • Correction de la logique empty() vs isset() pour le paramètre sync_product_images
  • Suppression des vérifications redondantes de configuration dans syncProductAllImages()
  • La synchronisation d'images respecte maintenant correctement le paramètre "sync_product_images" (0=désactivé, 1=activé)
💡 Améliorations techniques
  • Simplification de la logique de synchronisation d'images en supprimant les vérifications de configuration dupliquées
  • Amélioration de la validation des paramètres pour la configuration de synchronisation d'images
  • Amélioration de la maintenabilité du code en centralisant les vérifications de synchronisation

Version 2.0.20 - Mai 2025

🐛 Corrections de bugs
  • Correction du problème de stocks négatifs lors de la synchronisation avec Shopify
  • Amélioration de la gestion des caractères spéciaux dans les noms de fichiers d'images
  • Correction de la recherche de produits dans la fonction de purge pour les produits dans les catégories et sous-catégories
  • Ajout du dossier ajax dans la configuration de construction du module
  • Correction des erreurs PHP fatales dans le script de recherche AJAX
  • Correction de la vérification du token CSRF dans search_products.php
  • Implémentation correcte du système de logs dans les endpoints AJAX
  • Amélioration de la gestion et des logs des stocks dans importproducts.class.php
  • Correction du problème de synchronisation des stocks quand la propriété stock est vide
💡 Améliorations techniques
  • Ajout d'un mécanisme de fallback pour les erreurs 404 avec encodage alternatif
  • Amélioration des logs pour faciliter le débogage des problèmes d'images
  • Restructuration de la recherche AJAX de produits en classe OOP avec LoggerTrait
  • Amélioration de l'interface utilisateur pour la recherche avec indicateur de chargement et messages d'erreur
  • Meilleure gestion des erreurs dans la recherche de produits
  • Ajout d'un mécanisme de fallback pour la récupération des sous-catégories (get_all_ways/get_all_childs)
  • Standardisation des logs dans l'ensemble du module avec LoggerTrait
  • Ajout du chargement préventif du stock avant calcul dans la mise à jour des inventaires de variantes
  • Amélioration des logs de stock avec une différenciation claire entre les types de stock

Version 2.0.19 - Mai 2025

🐛 Corrections de bugs
  • Correction complète pour sauvegarder le champ "dolibarr_hosturl" dans les paramètres du module
  • Résolution des erreurs SQL dans la gestion de la correspondance des méthodes d'expédition
💡 Améliorations techniques
  • Mise en place d'un système LoggerTrait centralisé pour tous les messages de log du module
  • Amélioration du format des logs avec ajout automatique du nom de la classe et de la méthode
  • Amélioration du debugging de configuration avec masquage sécurisé des tokens

Version 2.0.18 - Mai 2025

🐛 Corrections de bugs
  • Corrigé l'erreur "Unable to parse URI: https:///" dans le contexte des crons
  • Amélioration du chargement de configuration dans les contextes cron
  • Gestion robuste de l'entity avec fallback automatique à l'entity 1
💡 Améliorations techniques
  • Centralisation de la gestion de configuration dans ShopifyApi
  • Amélioration du logging pour le débogage des contextes cron
  • Refactorisation de toutes les classes pour utiliser la configuration centralisée
  • Les crons passent maintenant explicitement l'entity aux classes métier

Version 2.0.17 - Mai 2025

✨ Nouvelles fonctionnalités
  • Options de synchronisation des produits configurables dans l'interface d'administration
  • Support complet des niveaux de prix multiples de Dolibarr avec sélection configurable
  • Déplacement de l'option stock virtuel vers l'onglet produits pour une meilleure organisation
  • Activation/désactivation automatique des options dépendantes dans l'interface
  • Nouveau système de purge de la table de synchronisation avec réinitialisation auto_increment
🐛 Corrections de bugs
  • Correction de la synchronisation des variantes de produits (utilisation correcte de Product::id)
  • Résolution des problèmes de synchronisation lorsque le prix est zéro ou null
  • Amélioration de la gestion des erreurs pour le téléchargement d'images
  • Résolution des problèmes de validation des variantes avec métachamps Shopify
  • Support amélioré des métachamps spécifiques comme 'shopify.color-pattern'
💡 Améliorations
  • Interface utilisateur plus intuitive avec options contextuelles
  • Journalisation détaillée des niveaux de prix multiples
  • Système de validation extensible pour les options et métachamps
  • Guide de configuration mis à jour avec toutes les nouvelles fonctionnalités

Version 2.0.16 - Novembre 2024

✨ Nouvelles fonctionnalités
  • Support du stock virtuel pour la synchronisation des stocks
  • Intégration des pourboires Shopify dans les commandes
  • Amélioration de la gestion des remises sur les commandes
🐛 Corrections de bugs
  • Correction du calcul des prix TTC à partir des prix HT
  • Amélioration de la gestion des erreurs SQL
  • Résolution des problèmes de synchronisation multi-entités

Version 2.0.15 - Octobre 2024

✨ Nouvelles fonctionnalités
  • Gestion des variantes marquées "Hors ventes"
  • Import sélectif par référence de produit
  • Option pour garder les titres et descriptions existants
🐛 Corrections de bugs
  • Correction de la gestion des erreurs de connexion API
  • Amélioration de la stabilité du cron
Retour à la page principale