Dolibarr ERP/CRM et PrestaShop sont deux puissantes plateformes open source largement utilisées par les entreprises du monde entier. Dolibarr gère l'ERP, le CRM, la facturation, la comptabilité et la gestion des stocks. PrestaShop excelle dans le e-commerce. Utilisées ensemble, elles offrent une solution robuste pour gérer à la fois les ventes en ligne et les opérations internes de l'entreprise. Cependant, de nombreuses solutions d'intégration s'appuient sur des plugins payants ou des connecteurs tiers. Ce guide vous explique comment connecter Dolibarr à PrestaShop sans utiliser de plugins payants.

Table des matières

  1. Pourquoi intégrer Dolibarr à PrestaShop ?

  2. Aperçu des méthodes d'intégration

  3. Exigences et préparatifs

  4. Comprendre l'API du service Web PrestaShop

  5. Comprendre l'API REST de Dolibarr

  6. Configuration du service Web PrestaShop

  7. Activation et utilisation de l'API de Dolibarr

  8. Mappage des données entre PrestaShop et Dolibarr

  9. Rédaction d'un script d'intégration personnalisé

  10. Automatiser le processus de synchronisation

  11. Gestion de l'authentification et de la sécurité

  12. Gestion des problèmes de synchronisation courants

  13. Tester et déboguer l'intégration

  14. Limitations et solutions de contournement sans modules payants

  15. Recommandations finales et meilleures pratiques


1. Pourquoi intégrer Dolibarr à PrestaShop ?

L'intégration de Dolibarr avec PrestaShop offre plusieurs avantages :

  • Importez automatiquement les commandes de votre boutique dans Dolibarr

  • Synchroniser les stocks de produits entre l'ERP et le e-commerce

  • Rationalisez la génération de factures

  • Centraliser la gestion des données clients

  • Réduisez les erreurs de saisie de données et le travail manuel

Ce niveau d’automatisation améliore l’efficacité, accélère le traitement des commandes et améliore la satisfaction des clients.


2. Aperçu des méthodes d'intégration

Il existe trois manières principales de connecter Dolibarr à PrestaShop :

  1. Utiliser un module ou un plugin payant (par exemple, DoliShop ou connecteurs tiers)

  2. Transfert manuel de données à l'aide de CSV/XML (faible automatisation)

  3. Intégration personnalisée à l'aide d'API (objet de cet article)

L'intégration personnalisée utilisant les API des deux systèmes vous offre un contrôle total, une flexibilité et un coût nul.


3. Exigences et préparatifs

Avant de commencer le processus d’intégration, assurez-vous des points suivants :

  • Vous disposez d'un accès administrateur à Dolibarr et PrestaShop

  • Votre version de PrestaShop prend en charge l'API Webservice (v1.6+)

  • Votre version de Dolibarr prend en charge l'API REST (v9.0+)

  • Vous disposez d'un serveur ou d'un environnement de développement pour exécuter des scripts

  • Connaissances de base de PHP ou Python pour les scripts

Préparer par :

  • Sauvegarde des deux systèmes

  • Création d'utilisateurs ou de clés API

  • Liste des champs à synchroniser (par exemple, clients, produits, commandes)


4. Comprendre l'API du service Web PrestaShop

PrestaShop fournit une API Webservice de type REST qui permet des opérations CRUD (Créer, Lire, Mettre à jour, Supprimer) sur :

  • Clients

  • Commandes

  • Produits

  • Carts

  • Catégories

Vous pouvez activer l'API à partir de :

PrestaShop > Paramètres avancés > Webservice

Activez l'API et générez une clé. Attribuez des autorisations aux ressources que vous souhaitez utiliser (par exemple, orders, products, customers).

Structure de l'URL de base :

https://yourshop.com/api/

Utilisez les en-têtes HTTP pour envoyer la clé API avec chaque requête.


5. Comprendre l'API REST de Dolibarr

Dolibarr propose également une API REST, disponible à l'adresse :

https://yourdolibarr.com/api/index.php/

Vous devez activer l'API en activant le Module API dans Dolibarr :

  • Accueil > Configuration > Modules > Services Web/API

Générez une clé API par utilisateur et définissez ses autorisations. L'API de Dolibarr prend en charge :

  • Tiers (clients/fournisseurs)

  • Produits

  • Commandes et factures

  • Stocks et entrepôts

Assurez-vous de tester l'accès à l'aide d'outils tels que Postman ou curl.


6. Configuration du service Web PrestaShop

Dans le panneau d'administration de PrestaShop :

  1. Cliquez sur Paramètres avancés > Webservice

  2. Cliquez sur « Ajouter une nouvelle clé de service Web »

  3. Générer une clé de 32 caractères

  4. Attribuer des autorisations (GET, POST, PUT, DELETE) pour chaque ressource

  5. Enregistrer

Testez l'API en accédant à :

curl -X GET https://yourshop.com/api/orders -H "Authorization: YOUR_API_KEY"

Une réponse réussie signifie que votre API est correctement configurée.


7. Activation et utilisation de l'API de Dolibarr

  1. Activer le module API

  2. Générer une clé à partir de la page de profil utilisateur

  3. Activez les modules que vous souhaitez exposer via l'API (factures, commandes, produits)

  4. Accédez à l'API avec l'URL :

https://yourdolibarr.com/api/index.php/orders

Utilisez l'option DOLAPIKEY en tant que paramètre ou en-tête HTTP.

Exemple utilisant curl :

curl -X GET "https://yourdolibarr.com/api/index.php/orders?DOLAPIKEY=yourkey"

8. Mappage des données entre PrestaShop et Dolibarr

Décidez quelles données synchroniser et comment les champs correspondent entre les deux systèmes :

Champ PrestaShop Champ de Dolibarr
id_customer thirdparty_id
reference ref_client
total_paid total_ttc
products lines
email email

Planifier la cartographie pour :

  • Commandes

  • Produits

  • Clients

  • Inventaire

Stockez la logique de mappage dans votre script d’intégration.


9. Rédaction d'un script d'intégration personnalisé

Utilisez PHP ou Python pour extraire des données de PrestaShop et les envoyer vers Dolibarr.

Exemple en PHP :

// Fetch orders from PrestaShop
$prestashop_url = 'https://yourshop.com/api/orders';
$context = stream_context_create(['http' => [
  'header' => "Authorization: Basic YOUR_KEY"
]]);
$response = file_get_contents($prestashop_url, false, $context);
$orders = json_decode($response, true);

// Prepare and send to Dolibarr
foreach ($orders as $order) {
  $data = [
    'ref_client' => $order['reference'],
    'thirdparty_id' => getDolibarrCustomerId($order['id_customer']),
    'lines' => convertProductLines($order['products']),
    'total_ttc' => $order['total_paid']
  ];

  // Send to Dolibarr
  $curl = curl_init('https://yourdolibarr.com/api/index.php/orders?DOLAPIKEY=yourkey');
  curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data));
  curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($curl, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
  $result = curl_exec($curl);
  curl_close($curl);
}

10. Automatisation du processus de synchronisation

Pour automatiser l’intégration :

  • Configurez une tâche cron pour exécuter votre script périodiquement

  • Enregistrez chaque exécution pour le débogage et l'audit

  • Créer un système de statut (par exemple, marquer les commandes synchronisées)

Exemple de tâche cron :

*/15 * * * * /usr/bin/php /path/to/sync-script.php

11. Gestion de l'authentification et de la sécurité

  • Utilisez HTTPS pour crypter les données en transit

  • Stockez les clés API en toute sécurité à l'aide de variables d'environnement ou de fichiers de configuration en dehors de la racine Web

  • Restreindre les adresses IP ou les domaines autorisés à accéder aux API

  • Faire tourner les clés périodiquement

La sécurité est cruciale, en particulier lorsque des données clients et de paiement sont échangées.


12. Gestion des problèmes de synchronisation courants

Vous pouvez rencontrer :

  • Incohérence des données (formats ou devises différents)

  • Champs manquants (informations client incomplètes)

  • Limites de débit ou délais d'attente

  • Modifications de la version de l'API

Implémenter la gestion des erreurs :

  • Logique de nouvelle tentative pour les synchronisations ayant échoué

  • Validation avant la soumission des données

  • Système d'alerte pour les exécutions cron échouées


13. Test et débogage de l'intégration

Utilisez des outils tels que :

  • Facteur : pour tester les points de terminaison de l'API

  • Fichiers journaux : stockent chaque demande et réponse

  • Console du navigateur et journaux du serveur pour le débogage

Effectuer des tests avec :

  • Nouvelles commandes

  • Mise à jour des dossiers clients

  • Mises à jour de l'inventaire

Commencez par des exécutions manuelles avant d’automatiser.


14. Limitations et solutions de contournement sans modules payants

Sans plugins payants, il y a quelques contraintes :

  • Pas d'interface graphique pour la cartographie des données

  • Aucune synchronisation en temps réel à moins que vous ne créiez des webhooks

  • Limité à ce que proposent les points de terminaison d'API

solutions:

  • Créez votre propre interface de cartographie et de surveillance

  • Utiliser des déclencheurs de base de données si les deux systèmes sont hébergés ensemble

  • Exploitez les travailleurs en arrière-plan pour une synchronisation en temps réel


15. Recommandations finales et meilleures pratiques

L'intégration de Dolibarr à PrestaShop sans plugins payants est tout à fait possible, mais elle nécessite des compétences en planification et en scripting. Pour une solution durable :

  • Commencez avec de petits ensembles de données (clients tests ou une commande)

  • Documentez votre cartographie et votre logique

  • Créer des journaux et des alertes pour la surveillance

  • Sécurisez votre intégration (SSL, authentification, gestion des clés)

  • Maintenez les deux systèmes à jour pour éviter les problèmes de compatibilité

Avec le temps et le raffinement, votre intégration personnalisée peut être aussi puissante et flexible que n’importe quel module premium.