2.0.30 Historique des versions - Module Shopify Integration pour Dolibarr

Versionshistorie

🚨 Version 2.0.30 (2025-09-09) - KRITISCHE BESTELLSYNCHRONISATION KORREKTUREN

🚨 Kritische Produktions-Korrekturen
  • Issue #86 - KRITISCH: "Failed to fetch company" Absturz in Produktionsumgebungen behoben
  • GRUNDURSACHE: createOrUpdateCustomer() Methode gab gemischte Typen zurück (-1 oder Societe Objekt)
  • KORREKTUR: Strikte Typvalidierung vor Zugriff auf Kundeneigenschaften hinzugefügt
  • Issue #87: Umfassendes Logging-System für Produktions-Debugging
  • Issue #88: Automatische CRON-Benutzerberechtigungsprüfung
  • Issue #90: Verbesserte Fehlerbehandlung im Kundenmanagement
🔧 Code-Verbesserungen
  • Typsicherheit: Strikte Objekt- und ID-Validierung für alle Kundenoperationen
  • Fehlerkontext: Verbesserte Fehlermeldungen mit E-Mail, Entität und Operationsdetails
  • Transaktionssicherheit: Verbesserte Datenbanktraining mit ordnungsgemäßem Rollback
  • Logging-Standards: Standardisierte Log-Level (DEBUG, INFO, WARNING, ERR)
🎯 Kundenauswirkungen
  • SOFORT: Löst "Failed to fetch company" Abstürze in der Produktion
  • ZUVERLÄSSIGKEIT: Verbesserte Fehlerbehandlung verhindert Synchronisationsunterbrechungen
  • SUPPORT: Detaillierte Logs erleichtern schnelle Problemlösung
  • ÜBERWACHUNG: CRON-Berechtigungsprüfung verhindert stille Autorisierungsfehler

🐛 Version 2.0.29 (2025-09-05) - KRITISCHE MULTI-ENTITY FIXES

🚨 Kritische Korrekturen
  • Issue #83 - KRITISCH: "Failed to fetch company" Fehler in Multi-Entity Umgebungen behoben
  • Issue #84: Dynamische Versionserkennung im Diagnose-JSON-Export
✨ Verbesserungen
  • Multi-Entity: Kundensuche jetzt ordnungsgemäß nach Entity gefiltert
  • Diagnose: Version automatisch aus dem Modul abgerufen

🐛 Version 2.0.28 (2025-09-04) - KRITISCHE SYNCHRONISATIONSKORREKTUREN

🚨 Kritische Korrekturen
  • KRITISCHER BUG #80: Bestellungen, die nach Erstellung "bezahlt" werden, nicht synchronisiert
  • LÖSUNG: Verwendung von updated_at_min anstatt created_at_min
  • SICHERHEITSFENSTER: Automatische Hinzufügung eines 24h-Fensters zum Erfassen verpasster Bestellungen
  • KRITISCHER BUG #81: getDolGlobalBool() Fehler auf Dolibarr v19-20
  • POLYFILL: Automatische Kompatibilitätsfunktion für Versionen vor v21
✨ Diagnose-Verbesserungen
  • JSON-EXPORT: Vollständige exportierbare Diagnose für technischen Support (47 Prüfungen + 39 Parameter)
  • VERBESSERTE INTERFACE: CSS-Klassen für Shopify-Verbindungsstatus mit visuellen Farben
  • SICHERE KONFIGURATION: Export mit automatischer Maskierung sensibler Schlüssel (API-Schlüssel, Token)
  • TIMING-KORREKTUR: JSON-Export nach vollständiger Berichtskonstruktion
📝 Support-Dokumentation
  • TECHNISCHE E-MAILS: Vorlagen für Kundensupport mit detaillierten Erklärungen
  • LÖSUNGEN: Bug- und Lösungsdokumentation für ähnliche Fälle
🔄 Universelle Kompatibilität
  • DOLIBARR v19: Vollständige Kompatibilität mit Polyfill
  • DOLIBARR v20: Vollständige Kompatibilität mit Polyfill
  • DOLIBARR v21+: Native Funktion verwendet

🎯 Kritische Version: Installation dringend empfohlen für alle Benutzer, insbesondere wenn Sie Dolibarr v19-20 verwenden oder Bestellsynchronisationsprobleme haben.

🚀 Version 2.0.27 (2025-08-28) - KONFIGURATIONSMIGRATION ZU DOLIBARR KONSTANTEN

🏗️ Wichtige Architekturänderungen
  • ISSUE #73 KRITISCH: Vollständige Migration von benutzerdefinierter Tabelle zu Dolibarr Standard-Konstanten
  • GROSSE ÄNDERUNG: Konfiguration jetzt in llx_const statt llx_shopify_dolibarr_storedetails gespeichert
  • NEUE KLASSE: ConfigurationMigrator für automatische Migration und Rückwärtskompatibilität
  • AUTO MIGRATION: Automatische Migration beim ersten Zugriff mit Fallback zur alten Tabelle
  • 42 PARAMETER: Alle Konfigurationsparameter zu Dolibarr Konstanten mit entsprechender Benennung migriert
🔧 Verbesserte Diagnose und Überwachung
  • MIGRATIONSZÄHLER: Anzeige des Migrationsstatus im Rechtechecker (X/42 Parameter)
  • VISUELLE INDIKATOREN: Badges für vollständige/teilweise/nicht migrierte Konfiguration
  • ERKENNUNG: Meldung über vorhandene alte Konfigurationstabelle
🛡️ Rückwärtskompatibilität & Sicherheit
  • KEINE BRÜCHE: Automatischer Fallback zur alten Tabelle wenn Konstanten fehlen
  • NAHTLOSE MIGRATION: Keine Benutzerinteraktion erforderlich
  • AUSFALLSICHER: Bei Migrations-Fehlschlag funktioniert System mit alter Tabelle weiter

🐛 Kritische Korrekturen (2025-08-29)

🐛 Kritische Korrekturen (2025-08-29)
  • KRITISCHE KORREKTUR: ConfigurationMigrator zeigte fälschlicherweise "30/42 Parameter migriert" an
  • KRITISCHE KORREKTUR: Migration behandelt jetzt ordnungsgemäß `0`-Werte (ausgeschlossen durch vorherige `!empty()`-Bedingung)
  • KRITISCHE KORREKTUR: Hinzufügung fehlender Übersetzungen für UserRightsCheck-Schnittstelle (5 Sprachen)
  • KORREKTUR: Produkt-Synchronisierungs-Checkboxen zeigen sich jetzt korrekt basierend auf migrierten Konstanten
  • KORREKTUR: Migrationsstatistiken zählen jetzt genau nur die 42 zugeordneten Parameter
  • KORREKTUR: Produkt-Synchronisierungsoptionen (Preise, Beschreibungen, Bilder, Bestände, Attribute) ordnungsgemäß migriert
🚀 Interface-Verbesserungen (2025-08-29)
🔍 Benutzerberechtigungsdiagnostik (2025-08-29)
🚀 Verbesserungen der Diagnoseschnittstelle (2025-08-29)

🚨 Version 2.0.25 (2025-08-04) - KRITISCHER HOTFIX

🔧 Kritische Korrekturen
  • KRITISCHER BUG: Korrektur der ersten Synchronisation, die keine aktuellen Bestellungen abruft, wenn keine vorherige Sync existiert
  • GRUNDURSACHE: Wenn MAX(tms) NULL zurückgibt (leere Tabelle), wurde kein Datumsfilter auf GraphQL-Abfrage angewendet, wodurch Shopify älteste statt aktuelle Bestellungen zurückgab
  • LÖSUNG: Implementierung intelligenter Fallback-Logik mit Modul-Installationsdatum wenn keine vorherige Sync existiert
  • NEUE METHODE: SqlUtils::getModuleInstallationDate() mit hierarchischer Fallback-Logik:
    • Priorität 1: Modul-Aktivierungsdatum aus llx_const Tabelle
    • Priorität 2: Tabellenerstellungsdatum aus information_schema
    • Priorität 3: Erstes Konfigurationsdatum aus Store-Details
    • Priorität 4: Standard-Fallback (6 Monate zurück)
  • VERBESSERT: ShopifyOrderManager::getLastSuccessfulSync() garantiert nun gültiges Referenzdatum für alle Synchronisationen
📈 Auswirkungen
  • BEHEBT: Kunden mit v2.0.23/2.0.24 die "keine Bestellungen synchronisiert" bei Neuinstallationen erleben
  • STELLT SICHER: Erste Synchronisation ruft korrekt aktuelle Bestellungen seit Modul-Installation ab
  • ERHÄLT: Vollständige Rückwärtskompatibilität mit bestehenden Synchronisationen

🚀 Version 2.0.24 (2025-01-08) - HISTORISCHER IMPORT UND AUTO-AKTIVIERUNG

🆕 Neue Funktionen
  • Issue #60: Historischer Bestellimport in CRON-System integriert
  • Issue #60: Automatische CRON-Aktivierung bei vollständiger Produkt- und Bestellkonfiguration
  • NEU: Intelligente CRON-Verwaltung mit Konfigurationsvollständigkeitsprüfungen
  • NEU: Historischer Bestellimport über ShopifyOrderSyncCron mit automatischer Kundenerstellung
  • NEU: Auto-Deaktivierung von CRONs bei unvollständiger Konfiguration zur API-Fehlervermeidung
🔧 Kritische Korrekturen
  • Issue #61: Korrektur manuelle Synchronisation zeigt Produkte aber kann sie nicht synchronisieren (S001-Fall)
  • Issue #62: Korrektur Services als physische Produkte statt Services synchronisiert
  • KRITISCH: Korrektur Parameterbehandlungsinkonsistenz zwischen Such- und Sync-Schnittstellen
  • KRITISCH: Korrektur Service-Typerkennung - Services setzen jetzt korrekt requiresShipping: false in Shopify
⚡ Verbesserungen
  • VERBESSERT: Vereinheitlichte Parameterbehandlung mit GETPOST('search_ref', 'aZ09') zur Erhaltung führender Nullen in SKUs
  • VERBESSERT: Korrekte Service vs Produkt Unterscheidung in Shopify-Synchronisation (fk_product_type-Erkennung)
  • VERBESSERT: CRON-Aufgaben standardmäßig bei Installation deaktiviert zur Vermeidung vorzeitiger API-Aufrufe
  • VERBESSERT: Konfigurationsvalidierung vor CRON-Ausführung in ImportProductsCron und ShopifyOrderSyncCron
  • VEREINFACHT: Separate import_orders-Schnittstelle entfernt - Funktionalität in CRON-System integriert
  • MEHRSPRACHIG: Übersetzungen für neue Funktionen in 5 Sprachen hinzugefügt (FR/EN/DE/ES/IT)
🏗️ Technische Verbesserungen
  • ARCHITEKTUR: Historischer Bestellimport in bestehenden CRON-Workflow integriert
  • ZUVERLÄSSIGKEIT: Konfigurationsvollständigkeitsprüfungen vor CRON-Ausführung hinzugefügt
  • BENUTZERFREUNDLICHKEIT: Automatische CRON-Aktivierungs-Feedback-Nachrichten für Benutzer
  • WARTUNG: Redundante import_orders.php-Schnittstellendatei entfernt

🚨 Version 2.0.23 - Session 16 (2025-05-31) - KRITISCHE VARIANTEN PENDING STATUS KORREKTUR

🐛 Kritische Korrekturen
  • KRITISCH: Korrektur von Varianten, die im 'pending' Status verblieben durch Implementierung von Kaskaden-Status-Updates von Elternprodukten
  • KRITISCH: Hinzufügung automatischer Varianten-Status-Synchronisation mit fk_product_parent Beziehung
  • KRITISCH: Wenn sich der Elternprodukt-Status ändert, erben alle Varianten automatisch denselben Status
  • KRITISCH: Behebung inkonsistenten Varianten-Verhaltens, bei dem Varianten pending blieben während Eltern erfolgreich waren
✨ Verbesserungen
  • VERBESSERT: Varianten folgen jetzt automatisch dem Elternprodukt-Status (success, failed, skipped, pending)
  • VERBESSERT: Hinzufügung der updateVariantsStatusFromParent() Funktion für Kaskaden-Status-Management
  • VERBESSERT: TMS-Zeitstempel-Logik konsistent auf Eltern- und Variantenprodukte angewendet
  • VERBESSERT: Verbessertes Logging für Varianten-Kaskaden-Operationen

🏗️ Version 2.0.23 - Session 15 (2025-05-31) - VEREINHEITLICHUNG SYNCHRONISATIONSTABELLEN-VERWALTUNG

🔧 Kritische Refaktorierung
  • KRITISCH: Vereinheitlichung der Tabellenverwaltungsfunktionen für llx_dolibarr_shopify_products_save Tabelle
  • KRITISCH: Erstellung einer einzigen manageProductMapping() Funktion, die drei separate Funktionen ersetzt (releaseSyncLock, saveProductMapping, updateProductTimestamp)
  • KRITISCH: Korrektur der TMS-Zeitstempel-Logik - aktualisiert nur bei 'success' Status wie gewünscht
  • KRITISCH: Behebung inkonsistenten Verhaltens zwischen manuellen und automatischen Synchronisationsmodi
✨ Verbesserungen
  • VERBESSERT: Einheitliche Logik für alle Tabellenoperationen eliminiert Verhaltensunterschiede
  • VERBESSERT: Korrekte TMS-Initialisierung für neue Datensätze - verwendet Tabellen-Standard (CURRENT_TIMESTAMP) außer bei Status 'success'
  • VERBESSERT: Verbesserte Fehlerbehandlung und Protokollierung in vereinheitlichter Funktion
  • VERBESSERT: Bessere Code-Wartbarkeit mit reduzierter Duplikation und einheitlichem Ansatz
🏗️ Technische Architektur
  • ARCHITEKTUR: manageProductMapping() verwaltet Erstellung, Updates, Status-Management und TMS-Logik
  • ARCHITEKTUR: releaseSyncLock() verwendet jetzt vereinheitlichte Funktion mit releaseLock=true Parameter
  • ARCHITEKTUR: saveProductMapping() verwendet jetzt vereinheitlichte Funktion mit 'pending' Status
  • ARCHITEKTUR: updateProductTimestamp() verwendet jetzt vereinheitlichte Funktion mit 'success' Status
  • LEISTUNG: Optimierte Datenbankoperationen mit intelligenter UPDATE/INSERT Logik
🐛 Korrekturen
  • KRITISCH: Korrektur potenzieller NULL TMS Probleme bei Datensatzerstellung
  • KRITISCH: Eliminierung inkonsistenter Tabellenverwaltung, die Sync-Verhaltensunterschiede verursachte
  • KRITISCH: Korrektur der TMS-Update-Logik, um nur bei erfolgreichen Synchronisationen auszulösen

🚨 Version 2.0.23 - Session 14 (2025-05-31) - EINFACHE PRODUKTE STATUS KORREKTUR

🐛 Kritische Korrekturen
  • KRITISCH: Korrektur einfacher Produkte, die nach erfolgreicher Synchronisation im 'pending' Status verblieben
  • KRITISCH: Korrektur der frühen Exit-Logik in checkProductNeedsUpdate() um Status als 'skipped' zu markieren, wenn Produkte keine Updates benötigen aber Sync erfolgreich war
  • KRITISCH: Behebung des Problems, wo Produkte wie "PullColMontantTorsade202004" unendlich im pending Status blieben
🆕 Neue Funktionen
  • NEU: Hinzufügung des 'skipped' Status zu last_sync_status enum für Produkte, die keine Updates benötigen
  • NEU: Verbesserte Status-Unterscheidung: 'success' (aktualisiert), 'skipped' (kein Update nötig), 'failed' (Fehler), 'pending' (in Bearbeitung)
✨ Verbesserungen
  • VERBESSERT: Verbesserte Sync-Status-Verwaltung - Produkte, die keine Updates benötigen, werden jetzt korrekt als 'skipped' markiert anstatt 'pending' zu erhalten
  • VERBESSERT: Bessere Unterscheidung zwischen Produkten mit Sync-Fehlern vs Produkten, die erfolgreich verarbeitet wurden aber keine Änderungen benötigten
  • VERBESSERT: Datenbankschema aktualisiert zur Unterstützung des 'skipped' Status im enum

🚨 Version 2.0.23 - Session 13 (2025-05-31) - KRITISCHE FK_PRODUCT_PARENT KORREKTUR

🐛 Kritische Korrekturen
  • KRITISCH: Korrektur fk_product_parent NULL Problem bei manueller Varianten-Synchronisation
  • KRITISCH: Korrektur saveProductMapping() Aufrufe für Varianten um Parent-Produkt-ID einzuschließen
  • KRITISCH: Behebung von Varianten erstellt mit fk_product_parent=NULL statt korrekter Parent-ID
  • KRITISCH: Verbesserung mapVariantsToShopify() Methode für korrekte Parent-Variant Beziehungen

🏗️ Version 2.0.23 - Session 12 (2025-05-31) - ISSUE #56 PARENT-VARIANT ARCHITEKTUR

🚀 Neue Funktionen
  • ISSUE #56: Hinzufügung der fk_product_parent Spalte für bessere Parent-Variant Beziehungen
  • NEU: Verbessertes Datenbankschema mit Parent-Variant Beziehungsverfolgung
  • NEU: Fremdschlüssel-Constraints für Datenintegrität zwischen Parent- und Variant-Produkten
  • NEU: Automatische Datenmigration zur Befüllung bestehender Parent-Variant Beziehungen
✨ Verbesserungen
  • VERBESSERT: saveProductMapping() Methode unterstützt jetzt fk_product_parent Parameter für Varianten
  • VERBESSERT: releaseSyncLock() Methode aktualisiert für neue Parent-Variant Architektur
  • VERBESSERT: Datenbankabfragen optimiert zur Unterscheidung zwischen Parent-Produkten und Varianten
  • VERBESSERT: SQL Tabellenerstellungsskript mit neuer Spalte und Constraints aktualisiert

🔄 Version 2.0.23 - Session 7 (2025-05-30) - RETRY UND STATISTIK KORREKTUREN

🐛 Kritische Korrekturen
  • KRITISCH: TEMP_LOCK IDs korrigiert, die fälschlicherweise als Shopify-Updates behandelt wurden und Retry-Fehler verursachten
  • KRITISCH: Harmonisierung der Sync-Status zwischen 'failed' und 'error' für konsistente Statistikanzeige
  • Korrektur der Statistikoberfläche, die Sync-Fehler aufgrund von Statusinkonsistenz nicht zählte
  • Verbesserte Produktmapping-Logik zum Filtern temporärer Verriegelungs-IDs
✨ Verbesserungen
  • NEU: Intelligente Filterung temporärer Verriegelungs-IDs zur Vermeidung ungültiger Shopify-API-Aufrufe
  • NEU: Harmonisierte Sync-Status-Terminologie in gesamter Codebasis und Benutzeroberfläche
  • Verbesserte Genauigkeit der Fehlerberichterstattung im Admin-Dashboard
  • Bessere Unterscheidung zwischen neuen Produkten und tatsächlichen Updates

🚨 Version 2.0.23 - Session 6 (2025-05-30) - SYNCHRONISATIONS-KORREKTUREN

🐛 Kritische Korrekturen
  • KRITISCH: Korrektur des Synchronisations-Verriegelungsmechanismus zur Vermeidung von NOT NULL-Constraint-Verletzungen
  • KRITISCH: Korrektur des Schutzes vor gleichzeitigen Synchronisationen mit temporären Verriegelungs-IDs
  • KRITISCH: Korrektur ungenauer UPDATE-Abfragen, die mehrere Variant-Datensätze betrafen
  • Korrektur von Synchronisationsfehlern für neue Produkte aufgrund leerer Shopify-IDs
  • Verbesserung der Genauigkeit von updateProductTimestamp() durch Hinzufügung von shopifyVariantId zur WHERE-Klausel
⚡ Verbesserungen
  • NEU: Intelligentes temporäres Verriegelungssystem mit einzigartigem Format TEMP_LOCK_[timestamp]_[productId]
  • NEU: Verbesserter Schutz vor gleichzeitigen Synchronisationen für manuelle und automatische (Cron) Synchronisationen
  • NEU: Verbesserte Genauigkeit des Variant-Mappings zur Vermeidung von Cross-Contamination zwischen Varianten
  • Bessere Fehlerbehandlung und Protokollierung für Synchronisations-Verriegelungsoperationen
  • Vollständige Analyse und Korrektur der Produkt-Variant-Beziehungshandhabung

🚨 Version 2.0.23 - Session 5 (2025-05-30) - KRITISCHE KORREKTUREN

🐛 Kritische Korrekturen
  • KRITISCH: Fehler bei manueller Synchronisation behoben - fehlender isManualSync=true Parameter
  • KRITISCH: setSyncLock() korrigiert, die leere String-IDs statt NULL-Werte in Datenbank erstellte
  • Fehler: "Keine Produkte zu synchronisieren" Meldung behoben, die manuelle Synchronisation blockierte
  • Fehler: Datenbankverunreinigung mit ungültigen Shopify-IDs entfernt
⚡ Neue Funktionen
  • NEU: Synchronisations-Fehlerverfolgung mit last_sync_status und last_sync_error Feldern
  • NEU: Anzeige von Fehlerstatistiken in der Administrationsoberfläche mit visuellen Warnungen
  • NEU: Verbesserte Sync-Lock-Verwaltung mit Statusverfolgung ('success', 'error', 'skipped', 'pending')
  • Verbesserung: Datenbankschema mit automatischer Bereinigung ungültiger Datensätze
  • Verbesserung: Umfassende Fehlermeldungen für fehlgeschlagene Synchronisationen

🔧 Version 2.0.23 - Session 4 (2025-05-30) - CODE-OPTIMIERUNG

⚡ Große Verbesserungen
  • Code-Faktorisierung: Erstellung der Methode getProductVariants() zur Eliminierung von Code-Duplikation zwischen importProducts() und importProductsManual()
  • Transaktionsbehandlung: Vollständige Transaktionsverwaltung mit begin...commit/rollback in importProductsManual() hinzugefügt
  • Wartbarkeit: Vereinheitlichung der Variant-Verarbeitungslogik zwischen automatischer und manueller Synchronisation
  • Verbesserte Logs: Detaillierte Logs für Transaktionsverfolgung und Fehlerüberwachung hinzugefügt
🔧 Kritische Korrekturen
  • Undefinierte Variable: Kritischen Bug behoben, wo $product in importProductsManual() undefiniert war
  • Synchronisationszähler: Fehlende Logik für die Inkrementierung von $numSynced behoben
  • Fehlerbehandlung: Verbesserte Fehlerbehandlung mit automatischem Rollback
Technische Auswirkung: Diese Aktualisierung verbessert die Robustheit und Wartbarkeit des Synchronisationscodes erheblich, mit einer Reduzierung von mehr als 30 Zeilen dupliziertem Code.

✅ Version 2.0.23 - Session 3 (2025-05-27) - FINALISIERUNG

🔧 Abschließende Korrekturen
  • Numerische SKUs: Suche nach rein numerischen SKUs (z.B. 00667) in manueller Oberfläche behoben (Issue #51)
  • Unerwünschte Synchronisation: Synchronisation von Produkten ohne Tags/Kategorien behoben (Issue #52)
  • GETPOST('term', 'alphanohtml') Korruption numerischer SKUs in ajax/search_products.php behoben
  • Spezialisierte Suchlogik für numerische SKUs mit mehreren Ansätzen hinzugefügt
  • Obligatorische Kategoriefilterung in der Synchronisation implementiert
🆕 Neue Hauptfunktion
  • Kategorie-Vorschau-Interface: Vollständige Vorschau vor manueller Synchronisation (Issue #50)
  • Vollständiges Kategorieanalysesystem und Synchronisationsvorschau
  • Erweiterte Oberfläche mit Kategoriedetails, Fortschrittsbalken und Zusammenfassungsstatistiken
  • Echtzeitanalyse über AJAX-Endpunkt ajax/preview_sync.php
  • Vollständige Unterstützung für französische Übersetzungen der Vorschaufunktionalität

Version 2.0.23 - Mai 2025

🔧 Refactoring
  • Code-Bereinigung: Veraltete Synchronisationsmethoden nach Vereinheitlichung entfernt
  • Veraltete synchronizeProductsToShopify() Methode entfernt (239 Zeilen)
  • Unbenutzte syncProductWithVariants() und syncProductAsVariant() Methoden entfernt
  • Redundante getShopifyProductId() Hilfsmethode entfernt
  • Codebasis durch Eliminierung doppelter Synchronisationslogik vereinfacht
  • Gesamte Synchronisation zur bewährten importProductsManual() Methode vereinheitlicht
🐛 Kritische Korrekturen
  • 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