Dans une PME, deux documents arrivent tous les jours et se ressaisissent tous les jours : la commande du client et la facture du fournisseur. L'une arrive en PDF par courriel, l'autre à télécharger sur un portail.
Dix-huit modules communautaires les font entrer sans ressaisie, et terminent le dépôt edi.
Résumé
Six modules traitent l'import d'une commande client : l'assistant d'import d'une demande de prix ou d'une commande au format XML ou PDF à XML embarqué, son extension au format UBL, la prise en compte des colisages, et trois colles extrayant du fichier la référence libre du client, la référence client par ligne et la période de livraison demandée.
Trois modules traitent l'import d'un devis fournisseur : l'import sur une demande de prix existante, son extension UBL, et la génération UBL sur les commandes d'achat émises.
Trois modules traitent le téléchargement des factures fournisseur : un socle de téléchargement depuis des portails et services externes, et deux connecteurs — un hébergeur et un fournisseur d'infrastructure.
Six modules enfin traitent la reconnaissance et l'identification : un moteur de reconnaissance de PDF par gabarit générant des enregistrements sur n'importe quel modèle, son raccordement comptable, la reconnaissance d'un partenaire par son numéro de téléphone, son identification par ses numéros d'identification, et la gestion de la référence client scindée en deux champs.
L'essentiel
- Une commande client importée en XML ou en PDF à XML embarqué.
- Les colisages reconnus à l'import d'une commande.
- La période de livraison demandée extraite du fichier.
- Un devis fournisseur importé sur une demande de prix existante.
- Les factures fournisseur téléchargées depuis un portail.
- Un moteur de reconnaissance de PDF par gabarit.
- Un partenaire reconnu par son numéro de téléphone.
- La référence client scindée en identifiant et libellé.
Ce que ces modules ajoutent à l'instance
| Famille | Modules | Nombre |
|---|---|---|
| Commande client | sale_order_import, sale_order_import_ubl, sale_order_import_packaging, sale_order_import_ubl_customer_free_ref, sale_order_import_ubl_line_customer_ref, sale_order_import_ubl_requested_delivery | 6 |
| Devis fournisseur | purchase_order_import, purchase_order_import_ubl, purchase_order_ubl | 3 |
| Factures téléchargées | account_invoice_download, account_invoice_download_ovh, account_invoice_download_scaleway | 3 |
| Reconnaissance | base_import_pdf_by_template, base_import_pdf_by_template_account, base_business_document_import_phone, partner_identification_import, sale_order_import_partner_identification, sale_order_customer_free_ref | 6 |
Les menus : Ventes ▸ Commandes ▸ Importer la demande ou la commande d'achat, Achats ▸ Commandes ▸ UBL OrderResponse Importer, Facturation ▸ Configuration ▸ Vendor Bill Download et ses deux sous-menus, Invoice Templates, Paramètres ▸ Technique ▸ Base Import Pdf By Template ▸ Templates.
La commande du client
La commande client ressaisie à la main est la tâche la plus répétitive et la plus génératrice d'erreurs d'un service commercial : quarante lignes, des références croisées entre deux codifications, et un délai demandé qui se perd dans un commentaire.
sale_order_import ajoute un assistant important un fichier XML ou un PDF à XML embarqué, et créant la demande de prix ou la commande correspondante. Il dépend du cadre d'import de documents commerciaux, de la simulation de recalculs et de la bibliothèque d'extraction de XML depuis un PDF.
sale_order_import_ubl l'étend au format UBL, la norme ISO/IEC 19845.
sale_order_import_packagingfait reconnaître les colisages : quand le code produit du fichier désigne un emballage, la commande est créée avec la bonne unité.sale_order_import_ubl_requested_deliveryextrait la période de livraison demandée du fichier UBL et la porte sur la commande.sale_order_import_ubl_customer_free_refextrait la référence libre du client, etsale_order_import_ubl_line_customer_refla référence client ligne par ligne.
sale_order_customer_free_ref (version 18.0.1.0.0) scinde le champ standard de référence client en deux champs distincts : un identifiant de commande et un libellé libre.
La référence client par ligne est le détail qui décide de l'acceptation d'une facture dans la grande distribution et l'industrie : le destinataire rapproche ligne à ligne sa commande et la facture reçue, et une ligne sans sa référence est rejetée.
Le devis du fournisseur
purchase_order_import permet d'importer sur une demande de prix existante un devis électronique envoyé par le fournisseur — XML ou PDF à XML embarqué — et de mettre à jour les lignes. Menu sous Achats ▸ Commandes ▸ UBL OrderResponse Importer.
purchase_order_import_ubl l'étend au format UBL.
purchase_order_ubl fait l'inverse : il embarque un fichier UBL dans le PDF des commandes d'achat émises, pour que le fournisseur puisse l'importer de son côté.
Les trois ensemble ferment la boucle : vous envoyez une commande d'achat en UBL, le fournisseur la lit, répond par un devis UBL, et vous l'importez sur votre demande de prix. Aucune ressaisie des deux côtés — à condition que les deux aient installé ces modules.
Télécharger les factures fournisseur
account_invoice_download est le socle permettant de télécharger automatiquement les factures fournisseur depuis des portails et services externes, puis de les importer. Trois menus sous Facturation ▸ Configuration ▸ Vendor Bill Download, dont un journal de téléchargements.
Deux connecteurs existent dans le dépôt : account_invoice_download_ovh pour un hébergeur — hébergement, téléphonie, noms de domaine — et account_invoice_download_scaleway pour un fournisseur d'infrastructure, via leurs interfaces de facturation.
Le choix de ces deux connecteurs n'est pas un hasard : ce sont les fournisseurs qui facturent beaucoup, souvent, et en petits montants — exactement le cas où la ressaisie coûte plus que la facture. Et ce sont des fournisseurs français et européens.
Le socle est générique : d'autres connecteurs se développent sur le même modèle, et le journal de téléchargement permet de diagnostiquer un échec.
Reconnaître ce qui arrive en PDF
base_import_pdf_by_template (version 18.0.1.2.1) permet d'importer des fichiers PDF et de générer des enregistrements sur n'importe quel modèle à partir du texte qu'ils contiennent, en configurant un gabarit au préalable. Référentiel sous Paramètres ▸ Technique ▸ Base Import Pdf By Template ▸ Templates.
base_import_pdf_by_template_account le relie à la comptabilité : une facture fournisseur reçue en PDF devient une facture dans Odoo. Référentiel sous Facturation ▸ Configuration ▸ Gestion ▸ Invoice Templates.
C'est la réponse pragmatique à la réalité de 2026 : la réforme impose les formats structurés, mais la majorité des factures fournisseur arrive encore en PDF simple. Un gabarit par fournisseur régulier couvre l'essentiel du volume.
Identifier le bon partenaire
base_business_document_import_phoneaméliore la reconnaissance du partenaire à l'import en s'appuyant sur son numéro de téléphone, via le module de validation téléphonique.partner_identification_importest une colle permettant d'identifier le partenaire par ses numéros d'identification — SIRET, numéro de TVA, identifiant interne.sale_order_import_partner_identificationapplique cette identification à l'import de commandes de vente.
L'identification du partenaire est le point de rupture de tout import : un fichier dont l'émetteur n'est pas reconnu crée un doublon de contact ou échoue. Multiplier les critères de reconnaissance — numéro de TVA, téléphone, identifiant — fait la différence entre un import qui passe et un import à reprendre à la main.
Limites connues
- Six de ces modules sont des colles sans interface : leur effet n'est visible que par ce qu'elles évitent de ressaisir.
- La reconnaissance de PDF par gabarit demande un gabarit par mise en page : un fournisseur qui change son modèle de facture casse le gabarit.
- Un gabarit lit du texte : une facture scannée en image, sans couche de texte, n'est pas exploitable sans reconnaissance optique préalable.
- Les connecteurs de téléchargement dépendent d'interfaces externes : un changement côté fournisseur casse le connecteur, et la correction vient du dépôt communautaire.
- La boucle UBL entre acheteur et fournisseur suppose que les deux soient équipés : sans cela, elle ne sert que dans un sens.
sale_order_importdépend de cinq modules dont le cadre d'import de documents, la simulation de recalculs et l'extraction de XML depuis un PDF : la chaîne est longue.- Un import crée des enregistrements : prévoir un circuit de vérification avant confirmation, surtout sur les commandes.
Identité technique
Les dix-huit modules viennent du dépôt OCA edi, branche 18.0 — dont les 36 modules sont désormais tous documentés ici —, tous en licence AGPL-3. Les dépendances notables : base_business_document_import comme cadre d'import, base_ubl_parse et base_ubl_generate pour le format, pdf_xml_attachment pour l'extraction de XML depuis un PDF, onchange_helper pour les recalculs, account_invoice_import pour les factures, partner_identification et phone_validation pour l'identification, uom_unece et account_tax_unece pour les codes européens.
L'autre fiche du dépôt : UBL, Factur-X et l'envoi des factures.
Questions fréquentes
Peut-on importer une commande client reçue par courriel dans Odoo ?
Oui : sale_order_import ajoute un assistant important un fichier XML ou un PDF à XML embarqué, et sale_order_import_ubl l'étend au format UBL. Trois colles en extraient en plus la référence libre du client, la référence par ligne et la période de livraison demandée.
Que faire des factures fournisseur qui arrivent en PDF simple ?
base_import_pdf_by_template génère des enregistrements à partir du texte du PDF, selon un gabarit configuré ; base_import_pdf_by_template_account le relie à la comptabilité. Un gabarit par fournisseur régulier couvre l'essentiel du volume. Une facture scannée en image, sans couche de texte, n'est pas exploitable.
Peut-on récupérer automatiquement les factures d'un hébergeur ?
Oui : account_invoice_download est le socle de téléchargement depuis des portails externes, avec deux connecteurs dans le dépôt — un hébergeur et un fournisseur d'infrastructure. Ce sont les fournisseurs qui facturent beaucoup, souvent et en petits montants, là où la ressaisie coûte plus que la facture.
Pourquoi une référence client par ligne de commande ?
Parce qu'elle décide de l'acceptation d'une facture dans la grande distribution et l'industrie : le destinataire rapproche ligne à ligne sa commande et la facture reçue, et une ligne sans sa référence est rejetée. sale_order_import_ubl_line_customer_ref l'extrait du fichier UBL.
Que se passe-t-il si l'émetteur d'un fichier n'est pas reconnu ?
L'import crée un doublon de contact ou échoue : c'est le point de rupture de tout import. Trois modules multiplient les critères — numéro de TVA et identifiants (partner_identification_import), numéro de téléphone (base_business_document_import_phone) —, ce qui fait la différence entre un import qui passe et un import à reprendre à la main.
Se faire accompagner
L'import de documents échoue presque toujours au même endroit : la reconnaissance de l'émetteur et celle des références produit. Le format — UBL, Factur-X, PDF — est le problème le plus simple ; faire correspondre deux codifications est le vrai travail.
Nous commençons donc par les correspondances — identifiants de partenaires, références produit croisées — avant d'installer le moindre module d'import, et nous posons un circuit de vérification avant confirmation. Voir les prestations d'Atalios Consulting ou demander un rappel.
Pour aller plus loin
En résumé
Dans une PME, deux documents arrivent tous les jours et se ressaisissent tous les jours : la commande du client et la facture du fournisseur. Dix-huit modules les font entrer sans ressaisie — et le vrai travail est la correspondance des références, pas le format. Parlons de vos flux entrants.