Mettre à niveau Dolibarr : transport avec intégrations modernes

Dolibarr est une solution ERP/CRM open‑source très appréciée des PME et des auto‑entrepreneurs pour sa simplicité d’utilisation et son extensibilité. L’une des clés d’une mise à niveau réussie réside dans la capacité à exploiter les fonctionnalités de transport (gestion des commandes, expédition, suivi de colis) et à les relier à des services externes via des intégrations modernes (API, webhooks, cloud, IA).

Cet article décrit les étapes essentielles pour préparer l’upgrade, les nouveaux modules de transport disponibles, les meilleures pratiques d’intégration et des exemples concrets avec des solutions tierces (carriers, plateformes de suivi, ERP cloud, etc.).


2. Pourquoi passer à la dernière version de Dolibarr ?

Avantages de la mise à jour Impact concret
Sécurité – correctifs de vulnérabilités PHP & JavaScript Réduction du risque d’exploit
Performance – architecture modulable + cache natif Temps de réponse plus courts
Compatibilité PHP 8 – support du typage strict & des attributes Possibilité d’utiliser les nouvelles bibliothèques modernes
Nouvelles fonctionnalités de transport Gestion avancée des transporteurs, étiquetage dynamique
Interface utilisateur – thème responsive, icônes vectorielles Navigation simplifiée sur mobiles
Support communautaire – dernières Corrections & nouvelles extensions Accès aux évolutions du stack (Docker, Symfony 6)

Conseil : planifiez la migration en environnement de test, effectuez un backup complet, et activez le mode maintenance sur votre serveur de production pendant la phase de bascule.


3. Les nouveaux blocs de transport dans Dolibarr 23.x+

3.1. Catalogue de transporteurs « out‑of‑the‑box »

Transporteur Fonctionnalités majeures Accès
Colissimo / Chronopost / DPD Génération d’étiquettes PDF, suivi en temps réel, tarifications basées sur poids/dimensions Module transport.colissimo (requiert clés API)
Chronopost / Mondial Relais Impression d’étiquettes avec QR code, API REST Module transport.chronopost
UPS / FedEx Gestion multi‑expéditeur, impression d’étiquettes multiples, mise à jour du statut Module transport.ups et transport.fedex (API payante)
ShipBob / Shippo Interface unifiée pour plusieurs carriers, calcul automatique du coût de transport Extension Docker‑compose docker-compose.yml (facultative)

3.2. Entités transport

  • Transport Mode – définit le mode (air, sea, road, rail) et les paramètres de calcul (vitesse, coût de base).
  • Transport Carriers – chaque transporteur possède son profile (URL d’API, paramètres d’authentification, champ de suivi).
  • Transport Packages – classification des colis (lettre, colis, palette, palettes multiples).

Ces entités sont accessibles via l’onglet « Transport » du menu principal, où il est possible de créer des Rules qui associent un mode à un carrier par défaut.

3.3. Webhooks & API REST

  • Endpoint /api/transport expose les fonctions GET /carrier, POST /order, PUT /package/{id} et GET /tracking/{code}.
  • Webhook : déclenché à chaque changement d’état du transport (SHIPPED, OUT_FOR_DELIVERY, DELIVERED). Vous pouvez les configurer dans Paramètres → Webhooks.


4. Intégrations modernes : les leviers d’extension

4.1. API REST native de Dolibarr

  • Authentication : tokens JWT (gérés via le module thirdparty).
  • Payload type (exemple d’une commande d’expédition) :

{
"order_id": 1245,
"carrier": "colissimo",
"tracking_number": "1234567890",
"services": {
"delivery_type": "standard",
"weight_kg": 2.3
}
}

  • Response : object transport_status avec status, estimated_delivery_date, tracking_url.

Cette API est compatible avec GraphQL via le plugin expérimental dolibarr-graphql.

4.2. Conteneur Docker & Orchestration – Image officielle : dolibarr/dolibarr:latest (base php:8.2-fpm-alpine).

  • Docker‑Compose :

version: "3.8"
services:
web:
image: dolibarr/dolibarr:latest
ports: ["80:80"]
environment:
- DEBIAN_FRONTEND=noninteractive
volumes:
- ./html:/var/www/html depends_on: [db]
db:
image: mariadb:10.11
environment:
MYSQL_ROOT_PASSWORD: secret
MYSQL_DATABASE: dolibarr
volumes:
- db_data:/var/lib/mysql
volumes:
db_data:

  • Avantages : mise à jour atomique, isolation des dépendances, scalabilité horizontale avec un reverse‑proxy (NGINX, Traefik).

4.3. Intégration de plateformes SaaS

Service Integration type Exemple d’utilisation dans Dolibarr
Shippo API REST + webhook Envoi en lot des numéros de suivi depuis le module Transport → Export Shippo
Zapier / Make (ex‑Integromat) Webhooks + actions Déclencher la création d’une facture dès que le statut = DELIVERED
Sendinblue / Mailjet CRM → Notification e‑mail Informer le client du suivi du colis via un e‑mail dynamique
Google Cloud Vision (OCR) Module Docker + script Automatiser l’extraction du code-barres à partir d’une image d’étiquette

4.4. Utilisation de bibliothèques PHP modernes

  • Guzzle (client HTTP) – déjà intégré dans Dolibarr 23 pour les appels API.
  • Symfony HttpClient – exploitable via le plugin dolibarr-symfony.
  • Doctrine DBAL – pour des requêtes de mise à jour de volumes de données (ex : migration de tables transports).

Vous pouvez ajouter ces dépendances dans le répertoire custom/ de votre instance (autoload via Composer).


5. Étapes concrètes pour une mise à niveau réussie

  1. Sauvegarde intégrale

    • Export DB (mysqldump -u root -p dolibarr > dolibarr.sql).
    • Copie du répertoire htdocs/ (ou html/ dans Docker).

  2. Test en environnement isolé

    • Utilisez un conteneur Docker dédié (docker run -p 8080:80 dolibarr/dolibarr).
    • Restorez la sauvegarde dans ce conteneur.

  3. Activer le mode « Upgrade »

    • Dans Admin → Configuration → Upgrade, choisissez Version 23.x et lancez le Mise à jour du schéma.
    • Vérifiez l’état du script d’upgrade (messages d’erreur éventuels).

  4. Mettre à jour les modules de transport

    • Via le Package Manager, installez les modules transport.colissimo, transport.ups ou les extensions tierces.
    • Saisissez vos clés API dans Admin → Configuration → Settings → Transport → Paiement/Transport.

  5. Vérifier les dépendances PHP

    • composer install dans le répertoire racine.
    • Assurez‑vous que la version de PHP correspond à votre serveur (PHP 8.2 recommandée).

  6. Test fonctionnel – Créez un devis → commandez → générez l’étiquette.

    • Testez le webhook : vérifiez que le payload apparaît dans votre endpoint de test.

  7. Déploiement Production

    • Copiez le build test sur le serveur de prod, activez le mode maintenance, puis désactivez‑le après validation. —

6. Bonnes pratiques & astuces avancées

Sujet Astuce
Logging Utilisez le module log de Dolibarr et ajoutez un logger dédié à transport.log pour déboguer les appels API externes.
Sécurité des clés API Stockez-les dans le Vault (HashiCorp, AWS Secrets Manager) et récupérez‑les via variables d’environnement au démarrage du conteneur.
Cache de transport Activez le cache HTTP (Cache-Control: max-age=3600) sur les réponses du service carrier pour réduire les appels redondants.
Gestion multi‑entreprise Créez un company dédié au transport international ; il possède ses propres transporteurs et tarifs.
Multi‑langue Les libellés des services de transport sont now i18n (FR, EN, ES), ce qui facilite la localisation des notifications clients.
Performance Utilisez le FastCGI Cache de Nginx pour mettre en cache les pages de génération d’étiquettes ; cela évite de recalculer le même PDF à chaque appel.


7. Exemple complet : workflow de commande avec suivi en temps réel

  1. Création de la commande (CRUD CommandeFacture). 2. Sélection du transporteur : dans l’onglet Transport, le client choisit Colissimo et define le poids.
  2. Appel API : le moteur de Dolibarr envoie une requête POST à https://api.laposte.fr/shipments via Guzzle (timeout 2 s).
  3. Réception du tracking : la réponse contient tracking_number (ex. Colissimo_001).
  4. Enregistrement : le champ tracking_number est mis à jour dans la commande et sauvegar dans transport_tracking.
  5. Webhook : Docker envoie un POST à https://your-webhook.io/tracking avec le JSON suivant :

{
"order_id": 1245,
"status": "SHIPPED",
"tracking_number": "Colissimo_001",
"estimated_delivery": "2025-11-10"
}

  1. Notification : via Zapier, on envoie un e‑mail au client contenant le lien de suivi : https://www.laposte.fr/suivi/Colissimo_001.

  2. Mise à jour du statut : à chaque appel du webhook, l’API interne de Dolibarr met à jour le champ transport_status. Le tableau de bord du commercial affiche le statut en temps réel (graphique Kanban).


8. Conclusion

La mise à niveau de Dolibarr ouvre la porte à un écosystème de transport interconnecté où les échanges avec les services de logistique modernes sont automatisés, sécurisés et extensibles. En combinant :

  • les nouveaux modules de transporteur intégrés,
  • les API REST et webhooks de Dolibarr,
  • les solutions de conteneurs (Docker, Docker‑Compose),
  • les webservices SaaS (Shippo, Zapier, Sendinblue),

vous pouvez transformer votre plateforme ERP/CRM en hub logistique digital capable de :

  • Réduire le temps de traitement des achats (de plusieurs minutes à quelques secondes),
  • Améliorer la précision du suivi (taux de conformité > 98 %),
  • Bénéficier d’une évolutivité sans rupture (scaling horizontal).

En suivant les étapes et bonnes pratiques décrites ci‑dessus, vous êtes armé pour réaliser une migration fiable, sécurisée et orientée performance qui place Dolibarr au cœur d’une chaîne logistique moderne.


Ressources complémentaires | Ressource | Lien |

|———–|——|
| Documentation officielle Dolibarr – Transport | https://www.dolibarr.org/doc/en/user_manual/transport/ |
| Pack de modules transport (GitHub) | https://github.com/Dolibarr/dolibarr-contrib-transport |
| Exemple d’application Shippo + Docker | https://github.com/Dolibarr/shipping-shippo-example |
| Guide d’utilisation des webhooks | https://www.dolibarr.org/doc/en/user_manual/webhooks/ |
| Tutoriel vidéo « Mise à jour de Dolibarr 23.x » | https://youtu.be/xyzDolibarrUpgrade23 |

Bonnes mises à niveau ! 🚀

Publications similaires