L'envoi manuel de factures dans Dolibarr ERP/CRM est fonctionnel, mais chronophage, surtout lorsqu'il s'agit de gros volumes ou de facturations récurrentes. Automatiser ce processus grâce à des tâches cron planifiées permet de gagner un temps précieux et d'éliminer les erreurs humaines. Ce guide explique en détail comment configurer l'envoi automatique de factures par e-mail dans Dolibarr à l'aide de cron, sans recourir à des plugins payants ni à des outils d'automatisation externes.
Table des matières
-
Introduction à l'automatisation des factures dans Dolibarr
-
Avantages de l'automatisation de l'envoi des factures par e-mail
-
Comprendre l'architecture et le système de messagerie de Dolibarr
-
Exigences pour l'automatisation basée sur Cron
-
Présentation de l'interface de ligne de commande et de l'API REST de Dolibarr
-
Préparation de votre environnement Dolibarr
-
Création de factures par programmation
-
Marquer les factures comme validées
-
Génération de documents PDF via la ligne de commande ou un script
-
Envoi automatique de factures par e-mail
-
Rédaction d'un script personnalisé pour gérer le flux de travail
-
Configuration d'une tâche Cron pour une exécution planifiée
-
Journalisation, gestion des erreurs et alertes
-
Sécuriser votre configuration d'automatisation
-
Réflexions finales et meilleures pratiques
1. Introduction à l'automatisation des factures dans Dolibarr
Dolibarr propose des outils performants pour la génération, la validation et l'envoi des factures par e-mail. Cependant, les fonctionnalités prêtes à l'emploi nécessitent des actions manuelles. Pour les entreprises qui génèrent des dizaines, voire des centaines de factures chaque jour ou chaque mois, l'automatisation de ces étapes est non seulement pratique, mais aussi essentielle à l'efficacité opérationnelle.
Ce guide se concentre sur l'automatisation du cycle complet : de l'identification des factures prêtes à être envoyées, à la génération des documents PDF correspondants et à leur envoi par courrier électronique aux clients, déclenché via une tâche cron planifiée.
2. Avantages de l'automatisation de l'envoi des factures par e-mail
L’automatisation de l’envoi des factures par e-mail offre plusieurs avantages clés :
-
Permet d'économiser du temps et du travail manuel
-
Réduit le risque de factures manquées
-
Améliore la cohérence et le professionnalisme
-
Assure une livraison rapide, en particulier pour les entreprises basées sur les abonnements
-
Minimise les erreurs humaines dans le flux de facturation
Associé aux journaux et aux notifications, il vous offre également une traçabilité pour chaque facture envoyée.
3. Comprendre l'architecture et le système de messagerie de Dolibarr
Le système de messagerie de Dolibarr fonctionne via :
-
Le PHP intégré
mail()
fonction (non recommandé pour la production) -
Configuration SMTP (fortement recommandée pour l'authentification et la délivrabilité)
Les factures dans Dolibarr suivent ce cycle de vie :
-
Projet (pas encore valide)
-
Validé
-
Statut payé / non payé
Les e-mails ne peuvent être envoyés que pour validé factures. La génération de PDF est liée aux modèles de factures situés dans /htdocs/core/modules/facture/doc/
.
4. Exigences pour l'automatisation basée sur Cron
Pour automatiser l’envoi des factures par e-mail :
-
Un serveur avec accès en ligne de commande (Linux de préférence)
-
Une installation Dolibarr fonctionnelle avec accès CLI/API
-
SMTP correctement configuré dans Dolibarr
-
Connaissances de base en script bash ou PHP/Python
-
Accès au système de fichiers (pour les PDF)
Assurez-vous que votre version de Dolibarr est à jour (v12 ou plus récente recommandée).
5. Présentation de l'interface de ligne de commande et de l'API REST de Dolibarr
Dolibarr ne propose pas officiellement d'outils CLI prêts à l'emploi, mais vous pouvez vous y connecter en utilisant :
-
API REST (recommandé pour la modularité et l'accès à distance)
-
Appels directs de scripts PHP dans le cadre de Dolibarr
L'API REST permet l'interaction avec les factures, les tiers et les documents.
Exemple de requête GET pour récupérer des factures :
curl -X GET "https://yourdomain.com/api/index.php/invoices?DOLAPIKEY=yourapikey"
6. Préparation de votre environnement Dolibarr
Étapes de préparation :
-
Activez la Module API sous Configuration > Modules > Services Web/API
-
Générer une clé API pour un utilisateur ayant accès aux factures et aux tiers
-
Configurez SMTP sous Configuration > E-mail > Configuration de l'e-mail
-
Tester manuellement la génération de PDF et la livraison par e-mail
Confirmez que vous pouvez :
-
Générer une facture PDF
-
Envoyer un e-mail avec une pièce jointe PDF
7. Création de factures par programmation
Pour automatiser, vous devez générer de nouvelles factures ou identifier celles existantes prêtes à être envoyées.
Créer via l'API :
POST https://yourdomain.com/api/index.php/invoices
{
"socid": 12,
"lines": [
{"desc": "Service Plan A", "subprice": 100, "qty": 1}
],
"date": "2025-05-01",
"cond_reglement_id": 1,
"mode_reglement_id": 2
}
Après sa création, la facture est en mode brouillon.
8. Marquer les factures comme validées
Pour envoyer une facture, elle doit être validée. Utilisez ce point de terminaison :
POST /api/index.php/invoices/{id}/validate
Cela déclenche un changement d'état interne et prépare la facture pour l'envoi par courrier électronique.
Vous devrez peut-être également générer le PDF s'il n'a pas encore été créé.
9. Génération de documents PDF via la ligne de commande ou un script
Les factures sont généralement générées au format PDF à l’aide de modèles tels que crabe
or azur
.
Pour automatiser la création de PDF :
-
Utilisez l'API :
POST /api/index.php/invoices/{id}/builddoc?model=azur
-
Ou exécutez un script PHP personnalisé dans la racine Dolibarr :
require 'main.inc.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
$invoice = new Facture($db);
$invoice->fetch($invoice_id);
$invoice->generateDocument('azur', $langs);
10. Envoi automatique de factures par e-mail
Envoi de factures via API :
POST /api/index.php/invoices/{id}/sendbymail
Avec la charge utile JSON :
{
"email_from": "billing@company.com",
"email_to": "client@example.com",
"subject": "Your Invoice",
"message": "Please find attached your invoice.",
"trackid": "INV-202505"
}
Assure-toi:
-
La facture contient une adresse e-mail valide liée au tiers
-
La facture est validée et un PDF est généré
11. Rédaction d'un script personnalisé pour gérer le flux de travail
Utilisez PHP, Python ou bash. Voici une pseudo-logique simplifiée en Python :
for invoice in fetch_draft_invoices():
validate_invoice(invoice['id'])
generate_pdf(invoice['id'])
send_email(invoice['id'], invoice['email'])
Assurez-vous que chaque étape vérifie le résultat précédent avant de poursuivre. Enregistrez les résultats.
12. Configuration d'une tâche Cron pour une exécution planifiée
Sous Linux, éditez le crontab :
crontab -e
Ajouter :
0 8 * * * /usr/bin/python3 /path/to/send_invoices.py >> /var/log/dolibarr_invoice.log 2>&1
Cela exécute le script quotidiennement à 8 heures du matin et enregistre la sortie.
13. Journalisation, gestion des erreurs et alertes
Votre script doit :
-
Écrire des journaux par exécution
-
Gérez les erreurs avec élégance (par exemple, API inaccessible, e-mail incorrect)
-
Envoyer des alertes si une défaillance massive est détectée
Utiliser Python logging
module ou logrotate
sous Linux pour gérer les fichiers journaux.
14. Sécurisation de votre configuration d'automatisation
Meilleures pratiques:
-
Utilisez
.env
ou des fichiers de configuration chiffrés pour les clés API -
Définir les autorisations sur les scripts et les journaux
-
Utilisez HTTPS pour toutes les interactions API
-
Surveiller les journaux cron pour détecter les modifications non autorisées
Envisagez d’exécuter des scripts d’automatisation sous un utilisateur dédié à faibles privilèges.
15. Réflexions finales et meilleures pratiques
L'automatisation de l'envoi des factures par e-mail dans Dolibarr permet de gagner du temps, d'améliorer la précision et d'optimiser l'expérience client. Grâce à l'API REST, à un scripting adapté et à des tâches cron planifiées, les entreprises peuvent éliminer une tâche administrative fastidieuse.
Résumé des meilleures pratiques :
-
Toujours valider les factures avant de les envoyer par e-mail
-
Assurez-vous que SMTP est correctement configuré
-
Maintenir des journaux clairs et des rapports d'erreurs
-
Commencez par des tests manuels avant d'automatiser
-
Sécurisez soigneusement votre environnement