Diagnostiquer Dolibarr : CSV Étude de cas avec intégrations modernes

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

  1. 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-8 sans BOM. Les caractères accentués (é, è, à) dans les descriptions créent des ruptures de chaîne.

  2. Analyse des logs Dolibarr :

    • Activer le mode debug ($dolibarr_main_prod = 0; dans conf.php).
    • Consulter les logs (/var/log/dolibarr/dolibarr.log ou fichier spécifié).
    • Résultat : Des erreurs PHP Warning: array_merge(): Argument #2 is not an array apparaissent 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.

  3. 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 Amount dans le CSV est en fait Montant (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.

  4. 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)

  1. 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).
  2. 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).
  3. 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

  1. 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.

  2. 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 :

  1. Pour les nouveaux projets : Exigez une connectivité API de vos fournisseurs/logiciels.
  2. 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.
  3. 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).

Publications similaires