Intégrer Dolibarr avec PrestaShop : Comparaison sans casser l’existant

1. Introduction

Dans l’écosystème du commerce en ligne, les solutions de gestion (ERP, CRM, comptabilité, etc.) doivent pouvoir cohabiter avec les plateformes e‑commerce sans entraîner de refonte totale. PrestaShop (solution de boutique en ligne open‑source très répandée) et Dolibarr (ERP/CRM léger, orienté PME) sont deux systèmes qui, pris séparément, répondent à des besoins différents. L’objectif de cet article est d’analyser les points forts et les limites de chaque solution lorsqu’on souhaite les intégrer de façon à conserver l’ensemble des fonctionnalités existantes de PrestaShop. Nous présenterons :

  • Un tableau comparatif des fonctionnalités clés.
  • Les méthodes d’intégration (API, modules, syncronisation de données).
  • Les bonnes pratiques pour éviter la rupture du catalogue, des commandes et des flux financiers.
  • Un exemple de mise en œuvre concrète.

Note : L’article ne propose pas de procédure pas à pas détaillée à destination d’un développeur expert, mais un cadre stratégique qui peut être adapté à tout projet d’intégration.


2. Présentation rapide des deux produits | Critère | PrestaShop | Dolibarr |

|—|—|—|
| Type | Plateforme e‑commerce (front‑office + back‑office) | ERP/CRM open‑source (gestion globale de l’entreprise) |
| Cible | Boutiques en ligne (B2C, B2B) | PME, associations, freelances |
| Langage | PHP + Smarty + JavaScript | PHP + MySQL (architecture modulaire) |
| Installation | Un paquet complet (ou via Docker/Marketplace) | Un seul répertoire avec modules |
| Écosystème | > 3 000 modules, thèmes, thèmes responsive | ~ 1 000 modules (apps) mais plus légers |
| Licence | Apache 2.0 (open‑source) | GPLv3 (open‑source) |
| Couche de persistance | Proprietary DB schema (PrestaShop DB) | Table SQL classique, très générique |
| Community / Support | Forums, Slack, partners certifiés | Forums, mailing list, partenaires en Europe |

Pourquoi envisager l’intégration ?

  1. Gestion centralisée des contacts / fournisseurs : Dolibarr propose un CRM + gestion des fournisseurs très complet, souvent plus riche que les fonctions natives de PrestaShop.
  2. Facturation et comptabilité simplifiée : Dolibarr offre des factures récurrentes, devis, suivi des paiements, rapprochements bancaires—fonctionnalités qui ne sont pas nativement intégrées dans PrestaShop.
  3. Automatisation des processus : Workflow de validation des commandes, des retours, des relances clients — Dolibarr peut piloter ces étapes depuis le back‑office.
  4. Reporting unifié : Consolidation des KPI e‑commerce (CA, marge, taux de conversion) avec les indicateurs comptables et logistiques.

Cependant, PrestaShop possède déjà des modules de facturation (e.g., Invoiceocker), de CRM (ps_wishwords), et de reporting. La décision d’intégrer Dolibarr doit donc être guidée par une réelle valeur ajoutée fonctionnelle, une contrainte budgétaire ou une volonté de réduire le nombre de solutions disparates.


3. Tableau comparatif fonctionnel (features à forte valeur ajoutée)

Fonctionnalité PrestaShop (natif + modules) Dolibarr (modules clés) Impact sur l’intégration
Gestion des devis Module Order History ; limites sur le suivi des devis Module Invoices & Quotations – génération PDF, suivi de l’état Sync des quotes avec le champ “id_cart” de PrestaShop
Factures récurrentes Modules Recurring (paypal, stripe) Factures périodiques – cadence, relances automatiques Export des IDs PrestaShop vers Dolibarr pour lien bidirectionnel
CRM / contacts Module Customer Form, Customer Addresses limité CRM complet : fiches client, historique des interactions, segmentation Mapping des champs contacts ; synchronisation des modifications
Gestion des fournisseurs Supplier (module core) limité en reporting Gestion complète des fournisseurs, prix, stocks, contrats Partage des tables ps_supplier et ps_product_supplier
Comptabilité / fiscalité Modules Accounting, Tax Rules Comptes analytiques, rapprochements bancaires, journal Export des écritures comptables depuis Dolibarr vers l’ERP de PrestaShop
Gestion de stocks multi‑entreports Stock par boutique + entrepôt (module Stocks) Gestion avancée: stocks par emplacement, seuils, mouvements Alignement des seuils de réapprovisionnement avec les règles PrestaShop
Reporting & BI Dashboard intégré, modules Analytics (Google/GA) Tableau de bord complet, export CSV/Excel, BI intégrée Consolidation des données : passerelle d’API pour alimenter le tableau de bord PrestaShop
Gestion des prix & promotions Règles de prix avancées (groupes de clients) Prix par client/produit, remises, contrats Propagation des prix depuis Dolibarr vers PrestaShop (ou inversement)


4. Approches d’intégration « sans casser l’existant »

4.1. Architecture macro‑intégrée

[PrestaShop] <---> (API REST) <---> [Dolibarr]
^ ^
| |
Front‑office e‑commerce Back‑office ERP/CRM

  1. API orientée REST – Dolibarr expose des endpoints (via le module DoliAPI ou via un micro‑service maison) pour :

    • GET /customers/{id} – récupère les informations clients.
    • POST /orders – crée une commande PrestaShop à partir d’une offre Dolibarr.
    • PUT /invoices/{id} – synchronise les factures payées.

  2. Base de données partagée (optionnelle) – Si les deux installations sont sur le même serveur, un schéma de tables croisées (ps_dol_customer, ps_dol_product) peut être utilisé pour éviter l’API. Cette approche nécessite une couche d’abstraction (ex. : un service de mapping) pour éviter les collisions de clés primaires.

  3. Webhooks – PrestaShop déclenche des webhooks (ex. : orderCreated) que Dolibarr peut consommer via un module de capture (ex. : Webhook Listener). Cela permet de déclencher des actions (création de facture, mise à jour du CRM) sans polling constant.

4.2. Méthodes de synchronisation des données

Donnée Direction du flux Technique conseillée
Clients / contacts Bidirectionnelle Cron quotidien (ou webhook) qui récupère les changements via last_modified et met à jour les tables correspondantes.
Produits / catalogue PrestaShop → Dolibarr (export) Export CSV depuis PrestaShop via le module Export → import dans Dolibarr via import_products.php.
Commandes / devis PrestaShop → Dolibarr Utiliser le module Order API de PrestaShop pour récupérer les commandes, les transmettre à Dolibarr via endpoint /orders.
Factures / paiements Dolibarr → PrestaShop Générer la facture dans Dolibarr, créer un order confirmation dans PrestaShop via son API interne (order/create).
Stocks Double direction Synchronisation en temps réel via événements stock.change; mise à jour des seuils dans les deux systèmes.
Paramètres (taxe, devise) Unidirectionnelle (définir dans un seul système) Centraliser les règles de taxe dans Dolibarr (source de vérité) et les exporter vers PrestaShop via son module Tax Rules.

4.3. Garantir la non‑cassure de l’existant

Risque Mesure préventive
Perte de données lors d’un mapping erroné Implémenter un mode « lecture‑seule » durant la phase de migrtion initiale : les écritures dans les tables de l’autre système sont désactivées.
Doublon de clés (IDs) entre les deux DB Utiliser des UUID ou préfixes (ex. : dol_ pour les clients importés) ou simplement conserver les IDs natifs de chaque système et ne jamais les réutiliser.
Blocage des paiements Mettre en place un fallback : en cas d’échec de l’API de facturation, la commande reste en attente et le paiement est traité par PrestaShop comme d’habitude.
Temps d’indisponibilité du service de synchronisation Déployer le moteur d’intégration dans un conteneur Docker séparé, avec monitoring (Prometheus/Grafana) qui alerte dès qu’une métrique dépasse un seuil (ex. : latence > 2 s).
Mauvaises pratiques de mise à jour Ne jamais appliquer les mises à jour de PrestaShop ou de Dolibarr directement sur la production ; passer toujours par un environnement de test (staging) avec le même schéma d’intégration.


5. Étapes clés d’un projet d’intégration « safe »

  1. Audit fonctionnel

    • Liste exhaustive des processus déjà couverts par PrestaShop (catalogue, panier, paiement, comptabilité).
    • Identification des gaps fonctionnels que Dolibarr peut combler.

  2. Définition du périmètre d’échange

    • Décider des entités à synchroniser (ex. : clients, produits, commandes, factures). * Décider du mode de synchronisation (API, batch, webhook).

  3. Choix de l’architecture

    • API REST vs. base de données partagée – privilégier l’API pour la maintenabilité.

  4. Développement d’un prototype (sandbox)

    • Installation de deux instances (PrestaShop 8.x, Dolibarr 20.x).
    • Création d’un module d’échange minimal (ex. : création d’un client).

  5. Tests fonctionnels & de charge

    • Scénarios positifs : création de devis, génération de facture.
    • Scénarios négatifs : erreurs 404, dépassement de temps, champ obligatoire manquant.

  6. Mise en place du monitoring

    • Logs structurés (JSON) pour chaque appel API.
    • Alertes sur les taux d’erreur > 1 % sur 5 minutes.

  7. Déploiement progressif Canary* : 5 % du trafic « real‑world » passe par l’intégration.

    • Observation des performances pendant 2 semaines avant le roll‑out complet. 8. Documentation & formation * Guide d’utilisation pour les équipes commerciales, comptabilité et support.
    • Procédure de rollback (revert à l’état avant l’activation du module).


6. Exemple concret : Synchronisation des devis → factures

6.1. Scénario

Un client passe une commande en ligne sur PrestaShop avec un devis (quote) déjà validé dans Dolibarr.

  1. Création du devis dans Dolibarr
    Dans l’interface Dolibarr → QuotationsCreate → article, prix, TVA, conditions.

  2. Export du devis vers PrestaShop
    Un script (PHP) utilise l’API REST de Dolibarr pour récupérer le devis (GET /quotations/123).
    Le script crée une commande "draft" dans PrestaShop (status draft) via Order::add().

  3. Validation du client
    Le client final valide la commande dans le front‑office.

  4. Passage à la facture
    Dolibarr détecte le statut validated de la commande via webhook order.validated.
    Il génère une facture PDF (Invoice::create()), l’enregistre et envoie le fichier par email.
    En parallèle, un POST vers Order::confirm() de PrestaShop marque la commande comme validated et passe la facturation.

  5. Suivi des paiements
    *Si le paiement est reçu (ex. : Stripe), Dolibarr met à jour le champ paid et déclenche un webhook vers PrestaShop qui déclenche un événement de paiement reçu dans la boutique.

6.2. Points à vérifier pour ne pas casser l’existant

Point Action préventive
Duplication d’ID de devis Utiliser un champ external_id dans la table ps_quote de PrestaShop (type UUID).
Mise à jour de prix S’assurer que les prix sont en lecture seule dans PrestaShop ; toute modification future doit passer par Dolibarr.
Gestion des taxes Centraliser les règles de taxe dans Dolibarr ; exporter les paramètres vers le module de tax rules de PrestaShop via batch mensuel.
État de la commande Ne jamais modifier directement la table ps_order depuis Dolibarr ; toujours passer par les API de PrestaShop.


7. Limites et scénarios où l’intégration n’est pas recommandée | Situation | Pourquoi éviter l’intégration ? |

|—|—|
| Architecture multi‑magasin très complexe (plus de 50 boutiques) | La synchronisation des stocks et des prix peut devenir très lourde. |
| Contraintes de performance strictes (latence < 100 ms) | Le nombre d’appels API entre deux systèmes ajoute un facteur d’attente. |
| Environnement fortement réglementé (ex. : données financières sous PCI‑DSS) | Introduire un système intermédiaire augmente la surface d’attaque et nécessite des audits supplémentaires. |
| Team sans compétences PHP/PHP‑Unit | Le développement de connecteurs robustes demande du temps et des tests. |
| Budget zéro | L’intégration implique généralement du temps de développeur (≈ 30 k€ à 60 k€ selon la complexité). |

Dans ces cas, il est plus judicieux de choisir une solution unique (ex. : un ERP + e‑commerce intégré comme Odoo ou SAP Commerce Cloud) ou de réduire le périmètre à la fonctionnalité la plus critique.


8. Conclusion L’intégration de Dolibarr à une boutique PrestaShop peut offrir des gains majeurs en termes de gestion des contacts, facturation, comptabilité et reporting, sans pour autant obliger un remplacement complet de la plateforme e‑commerce.

Pour réussir :

  1. Analyser précisément les besoins où Dolibarr apporte une réelle valeur ajoutée.
  2. Opter pour une architecture API/REST ou un micro‑service qui agit comme pont, évitant ainsi les modifications directes des bases de données.
  3. Mettre en place des flux bidirectionnels avec des mécanismes de validation, des retours d’erreur clairs et un monitoring en temps réel.
  4. Commencer par un environnement de test et déployer progressivement (canary) avant le go‑live complet.
  5. Documenter chaque point d’échange et prévoir un plan de rollback solide.

En suivant ces bonnes pratiques, vous pourrez conserver l’intégralité du catalogue, des processus de commande et du paiement de PrestaShop tout en profitant de la richesse fonctionnelle de Dolibarr.

Citation clé : “L’intégration réussie ne consiste pas à fusionner deux systèmes, mais à créer un dialogue fluide entre eux, où chaque changement est anticipé, testé et documenté.”


Annexes


© 2025 – Tous droits réservés – Article rédigé par [Votre Nom], consultant spécialisé en solutions open‑source e‑commerce.

Publications similaires