🔴 CORRECTIONS URGENTES - Cette version résout 2 bugs critiques affectant la synchronisation commandes et la protection des images produits.
🐛 BUG CRITIQUE #139 - Protection Images Produits Simples
- CLIENT IMPACTÉ : Cheer Moda - Images supprimées définitivement sur produits simples
- PATTERN : Produits SANS variants → Images supprimées même si sync désactivée ❌
- PATTERN : Produits AVEC variants → Fonctionnait correctement ✅
- CAUSE : Suppression API Shopify AVANT vérification complète du mapping
✅ Solutions Implémentées
- LOGS DÉTAILLÉS : Identification type produit (SIMPLE vs WITH VARIANTS)
- VÉRIFICATION MAPPING : Contrôle AVANT toute opération destructive
- PRÉ-CHECK IMAGES : Vérification images Dolibarr disponibles avant suppression
- GESTION ERREURS : Retour propre sans Exception après suppression
🔴 BUG CRITIQUE #140 - CRON Bloqué + Import Historique Gelé
- CLIENT IMPACTÉ : Eau Exquise - Aucune synchronisation commandes depuis 10 jours
- SYMPTÔME 1 : CRON status "En cours ou non exécuté" avec sortie vide
- SYMPTÔME 2 : Import historique bloqué à 37.7% (1990/5278 commandes)
- SYMPTÔME 3 : 48+ erreurs SQL lors migration v2.1.0
- SYMPTÔME 4 : Timeout PHP 30s insuffisant pour import historique
✅ Corrections Implémentées
1️⃣ Auto-Détection CRON Bloqué
- Log obligatoire démarrage (entity + timeout PHP)
- Détection automatique CRON frozen (processing=1 > 1h)
- Déblocage automatique avec avertissement
- Code erreur
-1 si configuration incomplète
2️⃣ Détection Blocage Import Historique
- Comparaison progression entre exécutions CRON
- Skip automatique commande problématique après 3 tentatives
- Logging détaillé de la commande bloquante
- Compteur
STUCK_COUNTER pour traçabilité
3️⃣ Protection Timeout PHP
- Augmentation limite temps à 300s (5 minutes) au démarrage
- Chronomètre dans boucle de synchronisation (max 120s)
- Sauvegarde point de reprise si timeout atteint
- Restauration limite temps originale en fin
4️⃣ Réparation Erreurs SQL Migration
- Nouveau script SQL :
sql/update_2.1.0_to_2.1.1.sql
- Suppression table obsolète
llx_shopify_dolibarr_storedetails
- Nettoyage index dupliqués sur tables de synchronisation
- Vérification intégrité tables principales
🔴 BUG CRITIQUE - Stocks Non Mis à Jour (Client Philippe)
- CLIENT IMPACTÉ : Philazerty - 100% des stocks non synchronisés vers Shopify
- SYMPTÔME : "Skipping inventory update - empty inventory_item_id"
- CAUSE : Incohérence nommage clés (camelCase vs snake_case) dans tableau $inventoryQuantities
✅ Solution Implémentée
- HARMONISATION : Clés snake_case dans création tableau (inventory_item_id, location_id, available_adjustment)
- RÉSULTAT : 100% des stocks maintenant synchronisés correctement
- FICHIER : class/importproducts.class.php ligne 2566-2571
🟠 BUG IMPORTANT - Collections Hors Arbre (Client Philippe)
- CLIENT IMPACTÉ : Philazerty - Collections créées pour TOUTES les catégories produits
- PROBLÈME : Si produit dans catégorie 359 ET "Jeux vidéos" (hors arbre 359), les 2 collections créées
- ATTENDU : Seulement collections des catégories dans l'arbre configuré (359)
✅ Solution Implémentée
- FILTRAGE POST-RÉCUPÉRATION : Vérification appartenance arbre configuré avant création collection
- NOUVELLE FONCTION : isCategoryInTree() remonte chaîne parents jusqu'à trouver catégorie configurée
- LOGS DÉTAILLÉS : Indication catégories exclues (hors arbre configuré)
- FICHIERS : class/importproducts.class.php lignes 5436-5456 + 6299-6358
🟠 BUG IMPORTANT - Services + Publications (Issue #141)
- PROBLÈME 1 : Services (type=1) avec stock tracké dans Shopify alors que services ne doivent pas avoir stock
- PROBLÈME 2 : Produits synchronisés mais non publiés sur canaux de vente (Online Store, POS)
✅ Solutions Implémentées
- FIX SERVICES : tracked=false et requiresShipping=false pour services (ligne 2357-2364)
- NOUVELLE FONCTION : publishProductToConfiguredChannels() pour publication automatique (ligne 6225-6297)
- RÉUTILISATION CONFIG : Utilise configuration canaux vente des collections (DOLI2SHOP_COLLECTIONS_SALES_CHANNELS)
- GRACEFUL DEGRADATION : Fonctionne même sans scope write_publications
📚 MISE À JOUR (14/10/2025) - Documentation Tests Licences Multi-Durées
- DOCUMENTATION COMPLÈTE : 4 nouveaux documents pour tester génération licences (TEST_GENERATION_LICENCES_MULTI_DUREES.md, TEST_CSV_LICENCES_MULTI_DUREES.csv, README_TESTS_LICENCES.md, RECAPITULATIF_TESTS_LICENCES.md)
- 5 TYPES LICENCES : 1 an (250€), 2 ans (400€ -20%), 3 ans (525€ -30%), À Vie (950€), Développeur (0€)
- CHECKLIST 40+ POINTS : Validation complète génération, calcul dates, prix, support
- CSV TEST AUTO : Import automatique batch pour tester les 5 types simultanément
- GUIDE UTILISATION : Procédures détaillées test auto + manuel + dépannage
💰 Corrections Tarifaires + Liens Website
- PRIX CORRECTS PARTOUT : supportmanager.class.php, support_manager.php, admin/support_config.php
- GRILLES COMMERCIALES : GRILLE_TARIFAIRE_MULTI_DUREES_v2.1.1.md, GRILLE_TARIFAIRE_VENTE_DIRECTE.md
- DESCRIPTIONS PRODUITS : SHOPIFY_PRODUCT_DESCRIPTION_MULTI_DUREES.md, GUIDE_SHOPIFY_FLOW_ADHERENTS.md
- LIENS WEBSITE 5 LANGUES : FR/EN/DE/ES/IT - Liens vers boutique Shopify (produit + adhésion)
- NOUVEAUX LIENS : https://www.ptitetete.org/products/shopify-integration-pour-dolibarr-v2-x + adhesion-ptitetete
- MENTION 4 DURÉES : Prix affichés sur site web (250€, 400€, 525€, 950€ HT)
🎯 Impact Total v2.1.1
- ✅ CRON Robuste : Détection et déblocage automatique
- ✅ Import Historique Fiable : Skip commandes problématiques
- ✅ Protection Images : Aucune suppression sans remplacement
- ✅ Protection Timeout : Aucun blocage PHP sur volumes importants
- ✅ Traçabilité Complète : Logs détaillés à chaque étape
- ✅ Migration Propre : Réparation automatique erreurs v2.1.0
- ✅ Stocks Garantis : 100% synchronisations stocks fonctionnelles
- ✅ Collections Filtrées : Uniquement catégories arbre configuré
- ✅ Services Corrects : Pas stock ni shipping pour services
- ✅ Produits Visibles : Publication automatique canaux vente
- ✅ Documentation Tests : Outils complets validation licences multi-durées
- ✅ Tarification Cohérente : Prix corrects code + doc + interface
- ✅ Liens Commerciaux : 5 langues vers nouvelle boutique Shopify
📊 Statistiques Implémentation
- Fichiers modifiés : 6 fichiers PHP + 1 SQL + ChangeLog
- Lignes code ajoutées : ~520 lignes
- Issues résolues : #139, #140, #141 + 2 bugs client
- Problèmes corrigés : 9 bugs critiques/majeurs total
Issues GitHub résolues : #139 (Images), #140 (CRON), #141 (Services + Publications) + 2 bugs client Philippe (Stocks + Collections)