Mettre à niveau Dolibarr : interfaçage avec intégrations modernes

Publiez votre guide d’upgrade et exploitez toute la puissance des connecteurs contemporains


1. Introduction

Dolibarr ERP‑CRM est une solution open‑source très prisée pour la gestion des petites et moyennes entreprises. Depuis sa première version, le projet a constamment évolué, mais les versions anciennes (≤ 8.x) restent largement déployées dans de nombreuses PME.

La mise à niveau (upgrade) vers une version récente (v13‑v18) n’est plus seulement une question de sécurité : elle ouvre la porte à des intégrations modernes – API, plateformes de paiement, CRM cloud, solutions de signature électronique, etc.

Cet article détaille :

  1. Les bonnes pratiques pour migrer votre instance sans perdre de données.
  2. Les points de friction les plus courants.
  3. La façon de profiter des intégrations modernes dès la mise à niveau.
  4. Des exemples concrets d’extensions et de scripts d’interfaçage.


2. Pourquoi passer à la dernière version ?

Avantages majeurs Explication
Sécurité Corrections de vulnérabilités (ex : XSS, CSRF, injection SQL).
Compatibilité PHP 8+ Les versions actuelles requièrent PHP 8.0‑8.2, ce qui implique des performances accrues et des fonctionnalités récentes (typed properties, JIT, etc.).
Nouvelles API REST/GraphQL Possibilité de communiquer avec des solutions tierces via des endpoints standardisés.
Bibliothèques tierces Les modules les plus utilisés (e‑commerce, paiement, emailing) sont maintenus et supportent les nouveaux standards (Payment API PCI‑DSS, OAuth2, etc.).
UX et design responsive Interfaces modernisées, thèmes CSS plus flexibles.
Support communautaire Accès aux forums, tickets GitHub, et extensions officielles à jour.


3. Stratégie de migration – les étapes clefs

3.1. Sauvegarde complète

Élément Outils recommandés
Base de données MySQL/MariaDB mysqldump ou mariadb-backup (option --single-transaction).
Fichiers Dolibarr (/dolibarr) Archivage tar.gz (inclure .htaccess, custom/, files/, branding/).
Configurations externes (API keys) Exporter les variables d’environnement ou le fichier conf.php.

Astuce : Conservez la sauvegarde dans un répertoire hors‑site (S3, Azure Blob, etc.) avant de commencer toute modification.

3.2. Vérifier la compatibilité de l’environnement

Point Vérification
PHP php -v → doit être ≥ 8.0 pour les versions 13‑18.
Extensions PHP php -m | grep -E 'gd|curl|mbstring|zip|intl'.
Base de données MySQL 5.7+ ou MariaDB 10.2+ (compatible avec les nouvelles fonctions JSON).
Modules Apache/Nginx mod_rewrite activé, AllowOverride All ou équivalent.
Extensions système openssl, fileinfo, exif (occasionnellement requis par les modules).

3.3. Installation de la version cible

  1. Téléchargement : récupérez le zip officiel depuis le dépôt GitHub ou le site : https://github.com/Dolibarr/dolibarr/releases.
  2. Déploiement : décompressez dans le répertoire web, copiez le répertoire install/ si vous migrez depuis une version précédente (lorsque le migrateur spécial upgrade.php est présent).
  3. Migration de la base : lancez le script de mise à jour. Exemple :
    php -f upgrade.php -- --lang=fr

    Le script détecte automatiquement la version installée et procède aux transformations de schéma (nouveaux champs, tables llxllx avec suffixe, etc.).

  4. Vérification : accédez à votre‑domaine/dolibarr → login → consultez le tableau de bord de version et testez les fonctions critiques (création d’un devis, paiement test, etc.).

3.4. Migration des données de configuration

Source Action
conf.php (v7.x) Copier les sections extra → sections équivalentes dans le nouvel conf.php.
custom/ (plugins) Charger les extensions modernes via le nouvel App Store.
htdiginauth / .htaccess Migrer les règles d’authentification vers les vhost ou Docker si vous les utilisez.


4. Interfaçage avec les intégrations modernes

4.1. APIs RESTful native (depuis Dolibarr 13)

Dolibarr expose désormais deux méthodes d’accès :

Endpoint Description Exemple d’utilisation
/api/model CRUD générique sur tous les modèles (client, facture, commande). curl -X GET "https://exemple.com/api/model/customer?range=0-10"
/api/oauth2/token Authentification OAuth2 (client‑credentials ou authorization‑code). Flow « authorization‑code » pour obtenir un jeton access_token.
Webhooks Event‑driven : factures créées, paiements validés, contacts modifiés. Configurer Webhooks → URL endpoint dans l’interface d’administration.

4.1.1. Exemple d’intégration avec un CRM cloud (HubSpot)

// 1. Récupérer le token d’API HubSpot
function get_hubspot_token() {
$client_id = 'YOUR_CLIENT_ID';
$client_secret = 'YOUR_CLIENT_SECRET';
$url = 'https://api.hubapi.com/oauth/v1/token';
$post_fields = http_build_query([
'grant_type' => 'client_credentials',
'client_id' => $client_id,
'client_secret' => $client_secret,
]);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$json = json_decode($response);
return $json->access_token;
}
// 2. Créer / mettre à jour un contact depuis Dolibarr
function sync_customer_to_hubspot($dolCustomer) {
$token = get_hubspot_token();
$email = $dolCustomer['email'];
$payload = json_encode([
"properties" => [
"email" => $email,
"firstname" => $dolCustomer['firstname'],
"lastname" => $dolCustomer['lastname'],
"companyname" => $dolCustomer['billing_address']['label'],
]
]);
$ch = curl_init('https://api.hubapi.com/crm/v3/objects/contacts');
curl_setopt_array($ch, [
CURLOPT_POSTFIELDS => $payload,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer '.$token,
'Content-Type: application/json'
],
CURLOPT_RETURNTRANSFER => true,
]);
$result = curl_exec($ch);
curl_close($ch);
// Gestion des erreurs, sauvegarde du resultat...
}

Intégration simple : utilisez les Webhooks de Dolibarr (menu Administration → Webhooks) pour déclencher automatiquement ce script dès qu’un nouveau client est ajouté.

4.2. Connecteurs de paiement modernes

Solution Modulo officiel (ou tiers) Points forts
Stripe https://github.com/Dolibarr/dolibarr-contrib/tree/master/comptes/stripe Webhooks de paiements, gestion du 3‑DS, paiement récurrent.
PayPal https://github.com/Dolibarr/dolibarr-contrib/tree/master/comptes/paypal Checkout hébergé, IPN, gestion de remboursements.
Mollie Plug‑in community, supporte iDEAL, Bancontact, SOFORT. Paiement localisé (EU), API très simple.
Paiement Mobile (Apple Pay / Google Pay) Intégré via les modules Stripe/PayPal. UX « one‑click ».

4.2.1. Exemple de mise en place de Stripe

  1. Activation : dans le menu Modules → Paiements → Stripe → Enable.
  2. Configuration :

    • SId et Secret Key → Stockage dans conf.php ('stripe_authtoken' => 'sk_live_…').
    • URL de restitution (Return URL) → https://votre‑domaine/dolibarr/stripe/paypage.php?ref=….
  3. Création d’une commande → « Paiement en ligne » → Sélection du profil Stripe.
  4. Webhook → Configurez l’URL https://votre‑domaine/dolibarr/stripe/webhook.php.
  5. Test → Utilisez les clés de test Stripe pour vérifier la chaîne de paiement.

4.3. Intégration avec des plateformes de mailing et CRM cloud

Plateforme Module officiel Méthode d’échange
Mailchimp mailchimp (exemple de contribution) API v3 (listes, campagnes).
SendinBlue snlsend (contrib.) API transactionnelle.
Salesforce Connecteur REST dédié (développé à partir de /api) OAuth2, synchronisation des contacts/comptes.
Zoho CRM zohocrm (contrib.) API JSON, mise à jour différée ou temps réel.

4.3.1. Exemple de synchronisation avec Mailchimp (subscriber)

function sync_to_mailchimp($dolContact) {
$api_key = 'YOUR_MAILCHIMP_API_KEY';
$dc = explode('_', $api_key)[1];
$url = "https://$dc.api.mailchimp.com/3.0/lists/YOUR_LIST_ID/members";
$email = $dolContact['email'];
$payload = [
'email_address' => $email,
'status' => 'subscribed',
'merge_fields'=> [
'FNAME' => $dolContact['firstname'],
'LNAME' => $dolContact['lastname'],
'COMPANY' => $dolContact['billing_address']['company']
]
];
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_USERPWD => "anystring:$api_key",
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode($payload)
]);
$result = curl_exec($ch);
$http = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($http === 200 || $http === 201) {
// succès
} else {
// gestion des erreurs (déjà existant, etc.)
}
}


5. Cas pratiques – Scénarios d’interfaçage courants

Scénario Solution proposée Avantages
Synchronisation bidirectionnelle avec un ERP externe Utiliser les API REST avec Webhooks combinés à une file d’attente (Redis/Beanstalk) pour les écritures multiples. État cohérent, pas de perte de transaction.
Facturation électronique (PEPPOL) Module peppol (contrib.) → génération de Factur-X via FPDF / TCPDF. Conformité légale européenne, échange automatisé.
Intégration avec une plateforme de signature électronique** (DocuSign, Adobe Sign) Créer une fonction qui, à la validation du paiement, déclenche un appel POST vers /v2/transactions/envelopes. Traçabilité juridique, archivage sécurisé.
Reporting partagé avec Power BI ou Tableau Export CSV/JSON via /api/model ou création d’un view MySQL spécifique. Dashboards en temps réel.

Exemple détaillé : Synchronisation en temps réel avec un système de gestion de projets (ex. Jira)

  1. Déclencheur : mise à jour d’une tâche (task_update) par un client.
  2. Payload : project_id, task_ref, statut.
  3. Appel :

function push_to_jira($taskRef, $status) {
$jira_url = 'https://yourcompany.atlassian.net/rest/api/3/issue';
$auth = base64_encode('api_user:api_token');
$issueKey = "PROJ-${taskRef}";
$payload = [
"fields" => [
"summary" => "Task $taskRef : $status",
"status" => ["name" => $status],
"project" => ["key" => "PROJ"]
]
];
$ch = curl_init("$jira_url?expand=changelog");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
"Authorization: Basic $auth",
"Content-Type: application/json"
],
CURLOPT_POSTFIELDS => json_encode($payload)
]);
$response = curl_exec($ch);
// …
}


6. Bonnes pratiques post‑migration

Action Raison
Audit de sécurité Exécuter dolibarr_scanner (ou lynis) pour détecter d’éventuelles vulnérabilités résiduelles.
Tests d’intégration Mettre en place des scénarios de bout en bout (création commande → paiement → callback webhook).
Monitoring des API Utiliser des outils comme Grafana + Prometheus pour tracer le nombre d’appels API par minute, idéal pour détecter des changements de volume.
Documentation interne Rédiger un run‑book contenant les scripts d’arrêt, de mise à jour, de rollback et les coordonnées des équipes de support.
Plan de rollback Conservez le dump de la base avant upgrade, gardez le script downgrade.php (si disponible) ou le backup complet.
Formation des équipes Organisez des ateliers pour les utilisateurs finaux qui interagiront avec les nouveaux modules de paiement ou d’e‑mailing.


7. Conclusion

Passer de Dolibarr 7.x/8.x à la dernière version (≥ 13) représente bien plus qu’une simple mise à jour de serveur ; c’est l’opportunité d’ouvrir votre ERP/CRM aux exigences du numérique moderne : API ouvertes, paiement en ligne sans friction, synchronisation avec des solutions cloud, suivi en temps réel et conformité juridique.

En suivant la stratégie décrite — sauvegarde rigoureuse, vérification d’environnement, migration par le script officiel, puis activation des modules d’API et de webhook — vous minimisez les risques et maximisez les bénéfices.

À retenir : La clé d’une transition réussie réside dans la planification (tests en sandbox, rollback préparé) et dans l’exploitation des nouvelles capacités d’interfaçage : webhooks, API REST, paiement moderne et connecteurs CRM.

Vous êtes maintenant prêt à réinventer votre flux de travail avec Dolibarr à la fois plus sécurisé, performant et connecté aux services externes qui façonnent le présent et l’avenir de votre activité.


Ressources complémentaires

Ressource URL
Documentation officielle d’upgrade https://github.com/Dolibarr/dolibarr/wiki/Upgrade
App Store & modules contribués https://github.com/Dolibarr/dolibarr-contrib
Guide API REST (v13) https://github.com/Dolibarr/dolibarr/wiki/REST-API
Exemple de Webhook « InvoiceCreated » https://github.com/Dolibarr/dolibarr/wiki/Webhooks
Forum communautaire (FR) https://forum.dolibarr.org
Tutoriel vidéo upgrade v12 → v14 (FR) https://www.youtube.com/playlist?list=PLxDolibarrFR2024

Bon upgrade ! 🚀

Publications similaires