v2.5.2 Dernière version

Correction

Correction critique : sur certaines installations, la connexion à Shopify devait être refaite manuellement chaque jour. La boutique par défaut conservait deux copies de ses identifiants et le renouvellement automatique n'en mettait à jour qu'une seule ; le jeton Shopify n'étant valable qu'une fois, la copie oubliée expirait. Les deux copies sont désormais tenues à jour ensemble

Correction

Correction : le libellé de chaque déclinaison était remplacé par le titre du produit parent à chaque mise à jour venue de Shopify, y compris un simple changement de prix ou de stock. Les libellés se recalculent maintenant comme à la création, et l'outil de réparation les retrouve même lorsqu'elles ont déjà été rattachées une première fois

Correction

Correction : sur l'écran des webhooks, le bouton d'enregistrement n'avait aucun effet — la liste des événements suivis ne pouvait pas être modifiée. Un défaut de structure de la page empêchait l'envoi du formulaire

Correction

Correction : l'écran de synchronisation des produits et la tâche planifiée ne regardaient pas le même périmètre. Un produit rangé dans une sous-catégorie était synchronisé sans jamais apparaître à l'écran, qui annonçait « aucun produit ». Les deux partagent désormais la même définition, et une nouvelle date de mise en service permet d'exclure les commandes antérieures à votre passage sur Shopify

Correction

Correction : sur les installations à plusieurs boutiques, les compteurs de l'écran de synchronisation comptaient chaque produit autant de fois qu'il était présent de boutiques. Les totaux affichés vont donc baisser : ils sont désormais justes

Correction

Correction : l'import des commandes historiques n'indiquait jamais où il en était — « terminé » restait toujours à non, les statistiques restaient vides, et changer la date de début en cours de route n'avait aucun effet. L'import rend maintenant compte de sa progression, et ne peut plus se déclarer terminé alors qu'il a échoué

Amélioration

Amélioration de la robustesse : une requête mal formée adressée au service de facturation reçoit désormais une réponse d'erreur claire au lieu d'une erreur serveur, et plus aucun message technique interne n'est renvoyé à l'appelant

v2.5.0

Nouveau

Nouveau : chaque flux de synchronisation (produits, stocks, prix, commandes) a désormais sa propre direction configurable — Dolibarr vers Shopify, Shopify vers Dolibarr, ou les deux. Vous décidez, flux par flux, quel logiciel fait référence

Nouveau

Nouveau : une API de pilotage permet de déclencher et de suivre les synchronisations depuis vos propres outils

Amélioration

Le module est désormais disponible en cinq langues : français, anglais, allemand, espagnol et italien

Correction

Correction critique : la tâche planifiée de rattrapage des expéditions ne démarrait plus du tout, sans laisser la moindre trace dans Dolibarr — seul le journal du serveur en gardait le souvenir. Un contrôle automatique empêche désormais ce type de panne muette de réapparaître

Correction

Correction : deux autres tâches planifiées échouaient pour une raison voisine, dont le contrôle de santé des webhooks — qui tombait en panne précisément au moment où il enregistrait un incident, donc quand il servait le plus

Correction

Correction : les produits à déclinaisons provoquaient une trentaine d'avertissements à chaque synchronisation d'images

v2.4.8

Correction

Correction critique : consulter une page pouvait rendre inopérants les boutons d'une autre. Les appels internes du module faisaient tourner le jeton de sécurité de la session, et la page Santé en déclenche un par boutique dès son ouverture : sur une installation à trois boutiques, la simple consultation de cette page suffisait à faire rejeter les clics de la page Webhooks, en silence

Correction

Correction : trente actions réparties sur neuf pages d'administration pouvaient être rejetées sans message ni trace lorsque le jeton de sécurité était refusé — dont le rattachement d'un numéro de licence à une boutique, qui pouvait donc échouer sans que rien ne l'indique. Toutes affichent désormais une erreur explicite

Correction

Correction : une synchronisation pouvait éteindre les webhooks des autres boutiques

v2.4.7

Correction

Correction : sur l'écran des webhooks, « Configuration sauvegardée » s'affichait sans que l'état change. L'affichage et l'enregistrement ne regardaient pas la même ligne en base : on désactivait un webhook, la page confirmait, et rien ne bougeait

Correction

Correction : la désactivation retire désormais chaque abonnement concerné et non plus le premier trouvé — une ligne jumelle ne peut plus faire réapparaître un webhook qu'on vient de retirer. L'activation réutilise un abonnement déjà en place au lieu d'en créer un de plus

Correction

Les incohérences héritées des installations antérieures au multi-boutiques sont corrigées au passage : une ligne restée « active » sans abonnement réel est remise à plat

v2.4.6

Correction

Correction : en multi-boutiques, la page Webhooks affichait la boutique sélectionnée mais enregistrait sur une autre — impossible de désactiver un webhook, le bouton « Sauvegarder » semblait sans effet. L'affichage et l'enregistrement partagent désormais le même filtre par boutique, et toute erreur s'affiche en clair au lieu d'un message vide

Correction

Correction critique : sur les installations à sécurité durcie (renouvellement du jeton anti-CSRF à chaque page), toutes les actions d'administration du module étaient rejetées en silence — assistant de configuration compris. La vérification est alignée sur celle du cœur de Dolibarr, et un refus est désormais toujours annoncé à l'écran

Amélioration

Robustesse : un incident de base de données pendant l'enregistrement des webhooks ne provoque plus de page blanche — l'erreur est affichée avec le webhook concerné et les suivants sont traités

v2.4.5

Amélioration

Le push du stock vers Shopify devient asynchrone : la validation d'une facture rend la main immédiatement, même si Shopify est lent ou injoignable (fini les validations de plusieurs minutes). Un traitement planifié pousse le stock toutes les 5 minutes, en regroupant les mouvements et en reprenant automatiquement après un échec

Correction

Correction critique : sur Dolibarr 18 à 22, la connexion d'une boutique renvoyait une erreur 500 au retour de Shopify et la boutique était perdue — le module s'appuyait sur une fonctionnalité du cœur introduite seulement fin 2025

Correction

Correction : sur les hébergements en mode SQL strict, les webhooks ne s'enregistraient jamais — les dates envoyées par Shopify étaient rejetées par la base. Elles sont désormais converties et stockées en heure universelle

Nouveau

Nouvel outil « Recorrection remises » : répare les commandes importées avant la 2.2.9 dont la remise en pourcentage était sous-évaluée — aperçu avant application, brouillons uniquement, piste d'audit préservée

Amélioration

Connexion d'une boutique : l'échec « Échec de l'enregistrement des credentials » indique enfin sa cause réelle, et une base de données incomplète est signalée avec la marche à suivre (pages Diagnostic et État de santé)

v2.4.4

Correction

Correction : les produits à variantes importés de Shopify ne créaient pas de véritable déclinaison Dolibarr — le lien parent/variante restait invisible dans l'interface, et le libellé de la variante pouvait rester identique à celui du produit parent

Nouveau

Nouveau bouton « Réparer les déclinaisons » : rattache a posteriori les catalogues déjà importés, sans réimport ni doublon, par lots et sans risque en cas de relance

v2.4.3

Correction

Correction : l'import de produits à variantes échouait lorsqu'une même référence (SKU) est partagée entre plusieurs produits Shopify — le module réutilise désormais le produit existant au lieu d'échouer, et affiche le motif d'erreur complet en cas d'autre problème

Correction

Correction : les lignes de commande issues d'applications de packs/bundles (« composez votre pack ») n'étaient pas créées dans Dolibarr — les produits facturables regroupés en bundle sont désormais correctement importés (les composants offerts à 0 € restent ignorés)

v2.4.2

Correction

Correction critique : le stock Dolibarr n'était jamais poussé vers Shopify (réapprovisionnements, production interne, corrections manuelles) — le stock Shopify dérivait au fil des ventes jusqu'à des valeurs négatives fausses. Tout mouvement de stock Dolibarr est désormais synchronisé en temps réel vers Shopify (valeur absolue, jamais négative)

Nouveau

Nouveau bouton « Recaler le stock vers Shopify » : pousse en une fois le stock Dolibarr de tous les produits mappés — répare immédiatement les valeurs Shopify faussées par le passé, sans attendre le prochain mouvement de chaque produit

Amélioration

Multi-boutiques : le stock est poussé vers chaque boutique où le produit est présent, avec les identifiants propres à chaque boutique

Amélioration

Observabilité : chaque envoi de stock est tracé dans le journal des actions, et l'état « dernier recalage » (date, produits, erreurs) est affiché dans l'administration

v2.4.1

Sécurité

Conformité Shopify 2026 : gestion native des jetons OAuth expirables (jeton d'accès 60 min + jeton de rafraîchissement), imposés par Shopify d'ici le 1er janvier 2027 — rafraîchissement automatique transparent, les boutiques déjà connectées migrent en un clic via le bouton « Se reconnecter »

Nouveau

Nouvelle API Collections Shopify 2026-07 : les collections créées avec le nouveau modèle (déploiement Shopify depuis le 1er juillet 2026) sont désormais visibles et synchronisées — fini les disparitions silencieuses

Correction

Correction critique : synchronisation produits/stock fiabilisée — une déclinaison désactivée restait parfois visible sur Shopify, et des stocks divergents (parfois négatifs) n'étaient plus corrigés silencieusement ; les erreurs sont désormais journalisées et remontées

Amélioration

Diagnostic instantané : les tests de connexion et de santé par boutique s'exécutent désormais en arrière-plan, sans ralentir l'affichage de la page

Amélioration

Télémétrie fiabilisée : le module remonte désormais son vrai domaine et sa version Dolibarr sur tous les canaux, éliminant les fausses installations en attente

v2.4.0

Nouveau

Multi-boutiques : plusieurs boutiques Shopify configurables sur une seule installation Dolibarr, avec licence, réglages et navigation propres à chaque boutique (comptabilité toujours unique)

Nouveau

Diagnostic santé détaillé par boutique : connexion et webhooks, licence, compteurs de synchronisation — chaque boutique est vérifiée indépendamment

Amélioration

Sélecteur de boutique agrandi et barre de contexte repensée sur toutes les pages d'administration multi-boutiques

Correction

Correction critique : une expédition restée en brouillon après un échec (entrepôt/stock) n'était jamais rattrapée automatiquement — elle est désormais validée et clôturée par le rattrapage périodique

Correction

Correction d'affichage : caractères accentués mal encodés (double encodage) corrigés dans l'ensemble de l'interface d'administration

Correction

Correction : le statut de licence d'une boutique pouvait rester figé sur « inconnu » — la vérification est désormais fiable et ne dégrade jamais une boutique par défaut

v2.3.2

Correction

Correction critique : des commandes n'étaient plus récupérées depuis Shopify (régression introduite en 2.3.0) — la synchronisation des commandes fonctionne à nouveau normalement

Correction

Correction : les webhooks enregistrés sur une version d'API Shopify périmée sont désormais ré-enregistrés automatiquement lors des vérifications de santé, pour chaque boutique

Correction

Correction : blocage à l'activation du module sur les installations multi-boutiques (page blanche)

Sécurité

Sécurité : la connexion d'une boutique Shopify ne peut plus se faire par saisie manuelle d'un jeton — uniquement via le parcours OAuth sécurisé de Shopify

v2.3.0

Nouveau

Multi-boutiques (fondations) : plusieurs boutiques Shopify gérées depuis une seule installation Dolibarr avec une comptabilité unique — la boutique existante est migrée automatiquement, sans aucune interruption de service

Nouveau

Nouvelle interface d'administration des boutiques : ajout, connexion, gestion des webhooks et de la licence, boutique par boutique

Sécurité

Sécurité : la connexion Shopify est désormais protégée par des clés cryptographiques (OAuth RSA) à la place d'un secret partagé

Nouveau

Nouveaux outils de support : export du JSON complet d'une commande pour accélérer le diagnostic en cas de souci

Nouveau

Les adresses de livraison et de facturation sont désormais affichées directement sur la fiche commande

Sécurité

Sécurité : protection renforcée contre les attaques CSRF sur les actions sensibles (configuration, licence)

v2.2.9

Correction

Correction : remises en pourcentage sous-évaluées — la remise était calculée sur la base hors taxes puis divisée une seconde fois par (1 + TVA) comme s'il s'agissait d'un montant TTC. Les commandes avec code promo en pourcentage retrouvent le montant exact affiché par Shopify (ex. 5 % = −151,20 € TTC, et non −126 €)

Amélioration

Documentation : tableau des 4 règles de décrémentation de stock Dolibarr (commande, facture, expédition, clôture d'expédition) et recommandation pour les boutiques mixtes comptoir TakePOS + Shopify

v2.2.8

Correction

Correction critique : stock non décrémenté lors de l'import des commandes Shopify — l'entrepôt n'était pas transmis à la validation de la facture. Les 4 règles de décrémentation Dolibarr (commande, facture, expédition, clôture d'expédition) sont désormais couvertes

Correction

Correction : la migration des permissions v2.2.4 (changement d'ID module) est désormais exécutée automatiquement à l'activation — les droits utilisateurs sont préservés lors d'une mise à jour depuis une version antérieure à 2.2.4

Correction

Correction webhooks : URL de callback erronée (chemin /custom/ manquant) en l'absence de configuration explicite, et le paramètre « Jours de conservation » des événements est désormais respecté par la purge

Amélioration

Robustesse : avertissements explicites dans les logs quand aucun entrepôt n'est résolu, et protections contre les erreurs fatales si la synchronisation sortante Dolibarr → Shopify (prévue v2.4.x) est activée prématurément

v2.2.7

Correction

Correction critique : appels à l'API documents en erreur 404 sur les installations en sous-répertoire — un slash initial écrasait le sous-dossier (issue #288)

Correction

Tous les points d'accès documents (images produits et catégories) respectent désormais le sous-dossier d'installation

Correction

Répare les installations Dolibarr en sous-dossier (la version 2.2.6 dépannait déjà via le fallback SQL local)

v2.2.6

Correction

Correction critique : sync images produit résiliente — fallback SQL local automatique quand l'API REST Dolibarr /documents est inaccessible (404, timeout, HTML dans le body). Images produit restituées dans Shopify même sur hébergeurs restrictifs (issue #286)

Correction

Correction bug entity : filtre multi-tenant ajouté à la requête SQL images — empêche d'exposer des images d'autres entités Dolibarr en installation multi-sociétés

Correction

Correction bug tri images : clé de la map de tri corrigée (filename → relativename) — tri par position désormais fonctionnel

Amélioration

Cache instance images : évite 3 requêtes SQL+API redondantes par produit lors d'une sync

v2.2.5

Correction

Correction critique : fonction verifToken() non chargée sur certains stacks PHP-FPM bloquant l'OAuth Shopify — 4 fichiers du module incluent désormais explicitement le polyfill compatibility.lib.php

v2.2.4

Correction

Correction critique : migration ID module Dolibarr (436950 → 351003, plage officielle Association P'tite Tête) — migration SQL automatique préserve les permissions existantes

v2.2.3

Correction

Correction critique : pages admin (setup, wizard, synchronisation produits) référençaient un fichier CSS inexistant — chargement du CSS et affichage des pages maintenant corrects

v2.2.2

Nouveau

Gestion des lignes bundles/cadeaux Shopify (USH Bundles, EasyGift, etc.) — 3 modes configurables : ignorer, importer comme commentaire, importer comme ligne normale

Correction

Correction critique : rattrapage stocks variants toutes les heures au lieu de 24h

Correction

Correction webhook products/delete — requête SQL invalide corrigée

Correction

Correction critique : plus de doublons créés sur Shopify après purge d'un produit à variants

Correction

Anti-boucle amélioré : protection inter-processus sync/webhook pour éviter les deadlocks

Correction

Correction faux positif diagnostic : API Documents 404 sur produit de test inexistant désormais signalé en avertissement et non en erreur

Amélioration

Diagnostic enrichi : détection ancien chemin images + test loopback serveur

Amélioration

Versions dynamiques partout (plus de versions hardcodées dans l'interface)

Amélioration

Interface admin website : nouvelle section 'Migrations SQL' qui liste les scripts SQL numérotés et permet de les exécuter en un clic avec tracking automatique

v2.2.1

Nouveau

Système d'alertes proactif par email (erreurs webhook + santé système)

Nouveau

Throttling intelligent par type d'alerte avec cooldown configurable

Amélioration

Audit complet API Shopify 2026-07 — anticipation breaking changes

Amélioration

PHPStan niveau 6 + couverture tests 35% → 71%

Amélioration

Centralisation version module (fini les versions hardcodées)

Correction

Suppression de ~1 974 lignes de code mort

Correction

Compatibilité Dolibarr 23 — audit complet et corrections systématiques

v2.2.0

Nouveau

Webhooks temps réel Shopify → Dolibarr (commandes, expéditions, paiements)

Nouveau

Wizard de configuration guidé en 6 étapes

Nouveau

Dashboard monitoring et santé du module

Nouveau

Mapping expédition 2 niveaux (titre + transporteur réel)

Nouveau

Interface simplifiée : 3 onglets au lieu de 5

Nouveau

Rattrapage automatique des commandes manquées (CRON filet de sécurité)

Nouveau

Auto-création facture, paiement et expédition configurable

Amélioration

Configuration complète des commandes dans le wizard

Amélioration

Activation automatique webhooks et CRONs à la fin du wizard

v2.1.8

Nouveau

Système de tickets support intégré multi-plateforme

Nouveau

Refonte complète du website avec architecture MVC

Nouveau

Mode dégradé pour licences expirées

Nouveau

Internationalisation centralisée avec Twig

Nouveau

Webhooks bidirectionnels Shopify + triggers Dolibarr temps réel

v2.1.7

Nouveau

Shopify Billing API - Architecture dual-channel

Nouveau

Interface admin web complète

Correction

Correction OAuth pour le lien de la licence

Correction

Réductions non appliquées sur les services

Amélioration

Amélioration du wizard de configuration

v2.1.6

Nouveau

Audit sécurité complet - 86 issues corrigées

Nouveau

Import Shopify → Dolibarr bidirectionnel

Sécurité

Protection CSRF sur 15 fichiers

Sécurité

Score sécurité 6/10 → 9/10