Dolibarr, l’ERP/CRM open-source populaire, est souvent au cœur des systèmes d’information des TPE/PME. Son succès repose sur sa flexibilité, mais comme toute plateforme, elle peut rencontrer des difficultés, notamment lors d’imports/ exports de données massifs via des fichiers CSV. Cet article propose une méthodologie de diagnostic structurée à travers une étude de cas concrète, et montre comment les intégrations modernes (API, webhooks) peuvent prévenir ou résoudre ces problèmes.
Le Problème Récurrent : Les CSV, une Faille Silencieuse ?
Les fichiers CSV (Comma-Separated Values) sont le moyen le plus simple d’échanger des données avec Dolibarr. Cependant, ils sont aussi la source de nombreux maux :
- Échecs silencieux : une ligne mal formatée n’arrête pas toujours l’import, mais corrompt les données.
- Problèmes d’encodage (UTF-8 vs. ISO-8859-1) générant des caractères bizarres.
- Séparateurs incohérents (point-virgule, virgule, tabulation).
- En-têtes de colonnes non reconnues (différences de casse, espaces).
- Contraintes métier non respectées (format de date, valeurs de référence obligatoires).
Ces erreurs ne sont pas toujours évidentes dans les logs Dolibarr. Le diagnostic nécessite donc une approche méthodique.
Étude de Cas : "L’Import Massif de Factures Fournisseurs qui Échoue"
Contexte : Une entreprise utilise un outil de gestion de dépenses externe (type Expensify, Spendesk) qui exporte quotidiennement un fichier CSV de factures fournisseurs. L’objectif est d’automatiser leur import dans Dolibarr via le module Compta - Import/Export.
Symptôme : Seulement 60% des factures sont importées. Les 40% manquantes n’apparaissent nulle part, sans message d’erreur clair dans l’interface Dolibarr.
Phase 1 : Diagnostic Technique du CSV
-
Validation en amont (outils externes) :
- Utiliser un validateur CSV (en ligne ou CLI comme
csvlint) pour vérifier la structure. - Résultat trouvé : Problème d’encodage. Le fichier source est en
Windows-1252, alors que Dolibarr attend de l’UTF-8sans BOM. Les caractères accentués (é, è, à) dans les descriptions créent des ruptures de chaîne.
- Utiliser un validateur CSV (en ligne ou CLI comme
-
Analyse des logs Dolibarr :
- Activer le mode debug (
$dolibarr_main_prod = 0;dansconf.php). - Consulter les logs (
/var/log/dolibarr/dolibarr.logou fichier spécifié). - Résultat : Des erreurs
PHP Warning: array_merge(): Argument #2 is not an arrayapparaissent au moment de l’import, mais sont noyées dans le flot. Ceci indique que Dolibarr ne parvient pas à parser une ligne pour l’insérer en base.
- Activer le mode debug (
-
Vérification des pré-requis Dolibarr :
- Comparer scrupuleusement les en-têtes du CSV avec les noms de champs techniques attendus par le module d’import (visible dans la page de configuration de l’import). On découvre que le champ
Amountdans le CSV est en faitMontant(en français) dans le modèle d’import de Dolibarr. Mismatch des en-têtes. - Vérifier les champs obligatoires : le
tiers(fournisseur) doit exister dans Dolibarr avant l’import. Or, le CSV contient le nom du fournisseur, pas son ID interne. L’import échoue silencieusement sur les lignes avec un fournisseur inconnu.
- Comparer scrupuleusement les en-têtes du CSV avec les noms de champs techniques attendus par le module d’import (visible dans la page de configuration de l’import). On découvre que le champ
- Test isolé :
- Créer un micro-fichier CSV (5-10 lignes) ne contenant que les problèmes identifiés (encodage, en-tête incorrecte, fournisseur inconnu).
- Le soumettre à l’import. Résultat : 0 ligne importée. Dolibarr affiche enfin une erreur lisible : "La ligne 2 : le fournisseur ‘Société X’ n’existe pas."
Phase 2 : Solutions Correctives (Ponctuelles)
- Pré-traitement du fichier source : Automatiser la conversion en UTF-8 et le renommage des en-têtes via un script (Python, PHP, ou même un outil comme
sed/Alteryx). - Cohérence des données de référence : S’assurer que tous les fournisseurs du CSV existent dans Dolibarr avant l’import (import préalable des tiers, ou mapping par nom).
- Validation manuelle rigoureuse : Toujours tester avec un échantillon réduit et known-bad avant un import massif.
Limite : Cette approche est fragile. Toute modification de l’outil source (nouvelle colonne, changement de séparateur) casse le processus. Elle repose sur une intégration par fichiers, inherently batch et peu résiliente.
Phase 3 : Évolution vers des Intégrations Modernes et Robustes
Pour éviter ce cycle de diagnostic récurrent, il est temps de remplacer le pipeline "CSV → Fichier → Import manuel/automatisé" par une véritable intégration API.
Les Alternatives Modernes à Dolibarr
-
L’API REST native de Dolibarr (v14+) :
- Principe : L’outil de gestion des dépenses envoie les données directement via une requête HTTP POST/JSON à l’endpoint
/api/index.php/invoices. - Avantages :
- Validation immédiate : Réponse HTTP 200/400/422 avec message d’erreur détaillé par ligne.
- Transaction : Une requête peut envoyer plusieurs factures. En cas d’échec d’une seule, les autres sont traitées.
- Pas de fichier intermédiaire : Élimine tous les problèmes d’encodage, de séparateur, de corruptions de fichier.
- Automatisation robuste : Peut être gérée par un workflow (Zapier, Make, n8n) ou un script personnalisé avec une gestion d’erreur fine.
- Principe : L’outil de gestion des dépenses envoie les données directement via une requête HTTP POST/JSON à l’endpoint
- Les Webhooks (Dolibarr 15+) :
- Principe : Configurer Dolibarr pour pousser des notifications (ex: "nouvelle facture créée") vers l’outil de gestion des dépenses.
- Avantages : Synchronisation en temps réel ou quasi-réel, idéal pour des alertes ou des mises à jour croisées.
Feuille de Route de Migration
| Étape | Ancien (CSV) | Moderne (API) |
|---|---|---|
| Transport | Fichier déposé sur un FTP/partage. | Requête HTTPS sécurisée (HTTPS + Basic Auth/Token OAuth). |
| Format | CSV (sujet aux erreurs de parsing). | JSON (structure rigide, auto-documenté). |
| Feedback | Logs obscurs, import silencieux. | Code de statut HTTP + corps de réponse JSON détaillé. |
| Fréquence | Batch (quotidien/hebdomadaire). | Event-driven ou batch, mais avec meilleure gestion. |
| Maintenance | Fragile (rupture si format CSV change). | Résiliente (l’API documentée est stable). |
| Complexité | Faible en apparence, mais debugging chronophage. | Initiale (dev d’un connecteur), mais maintenance nulle. |
Conclusion : Anticiper, ne plus Chercher à Diagnostiquer
Notre étude de cas montre que le diagnostic des imports CSV est un exercice souvent long et ingrat, car il combattre les symptômes d’une méthode d’intégration obsolète. Les problèmes rencontrés (encodage, en-têtes, références) sont inévitables avec les fichiers plats.
La recommandation forte est de capitaliser sur les intégrations modernes :
- Pour les nouveaux projets : Exigez une connectivité API de vos fournisseurs/logiciels.
- Pour les existants : Planifiez la migration des connecteurs CSV critiques vers l’API REST de Dolibarr. Le coût initial de développement sera amorti par la suppression des phases de diagnostic récurrentes et la fiabilité gagnée.
- Utilisez des plateformes d’intégration (iPaaS) comme Zapier, Make (Integromat) ou n8n pour créer des ponts visuels entre votre outil externe et Dolibarr, sans coder, et avec une gestion d’erreur intégrée.
En résumé, diagnostiquer le CSV, c’est soigner une maladie évitable. L’avenir des intégrations Dolibarr est à l’API, apportant clarté, résilience et une maintenance drastiquement réduite. La prochaine fois que vous rencontrerez un problème d’import, posez-vous non pas la question "Quel caractère broke le CSV ?", mais "Pourquoi n’utilisons-nous pas l’API ?".
Article rédigé pour les administrateurs système, intégrateurs et chefs de projet techniques utilisant Dolibarr. Bonnes pratiques valables pour Dolibarr 14+ (API native) et 15+ (Webhooks).