« J'ai déjà un plugin de factures. » Gardez-le.
En résumé : le mode Overlay de WooFacture ne remplace pas votre extension de facturation, il se branche dessus. Votre plugin actuel continue de sortir ses PDF, avec vos templates et votre numérotation. WooFacture les intercepte au vol et y embarque le XML Facture-X. Rien à migrer, rien à reprendre.
C'est l'objection qu'on entend le plus souvent, et elle est légitime. Personne n'a envie de démonter une facturation qui marche à six semaines de l'échéance. Sauf que le PDF plat que produit votre extension ne sera plus une facture valable au sens de la réforme. L'overlay résout les deux d'un coup : vous restez sur votre outil, et vous devenez conforme.
Dernière mise à jour : 17 juillet 2026
Ce qui se passe entre la commande et l'email
Un PDF de facture, c'est une image de texte : une machine n'y lit rien sans deviner. Facture-X corrige ça en cachant un XML structuré à l'intérieur du même fichier, dans une enveloppe PDF/A-3b. Le mode Overlay fait exactement cette transformation, sur le PDF que votre plugin vient de créer, sans que vous touchiez à quoi que ce soit.
- 1Votre plugin de facture génère son PDF comme d'habitude, avec votre modèle et votre numéro de facture.
- 2WooFacture intercepte ce PDF — soit via un hook propre à votre extension, soit via le filet universel juste avant l'envoi de l'email.
- 3Il construit le XML Facture-X à partir de la commande, au profil réglé dans WooFacture (EN 16931 par défaut).
- 4Le PDF est réécrit en PDF/A-3b avec le XML embarqué en pièce jointe interne, à la place de l'ancien.
- 5L'email de commande part avec la version conforme. Votre client reçoit le même document, en mieux.
Le traitement est idempotent : avant d'agir, WooFacture vérifie si le PDF contient déjà un factur-x.xml. Si oui, il ne touche à rien. Un client qui re-télécharge sa facture dix fois ne déclenche pas dix conversions.
Cinq extensions reconnues nommément
À l'activation, WooFacture cherche laquelle de ces cinq extensions tourne sur votre boutique — par la présence de sa classe PHP ou de ses réglages — et pose le bon hook. C'est automatique : vous n'indiquez pas votre plugin dans un menu, il est détecté.
Le plus installé sur WooCommerce. WooFacture s'accroche à wpo_wcpdf_pdf_data et modifie le PDF avant qu'il ne sorte.
Interception sur yith_ywpi_document_created : dès que YITH écrit son fichier, on rouvre le PDF sur le disque et on y glisse le XML.
Hook bewpi_after_invoice_create, qui nous passe directement le chemin du PDF fraîchement créé.
Pensé pour l'Allemagne : couplé au module pays DE, l'overlay embarque un XML ZUGFeRD au lieu de Facture-X FR.
Pas de hook de génération exploitable côté WebToffee : on rattrape le PDF via le filet universel décrit plus bas.
Le filet universel, pour tout le reste
Votre extension n'est pas dans la liste ? WooFacture s'accroche aussi à woocommerce_email_attachments en priorité 999 — c'est-à-dire en tout dernier, juste avant que l'email de commande ne parte. Il inspecte chaque PDF joint, repère la facture et y injecte le XML. Ce chemin fonctionne avec la plupart des extensions qui attachent leur facture à un email WooCommerce, même celles qu'on ne cite pas ici.
Ce que l'overlay ne fait pas
On préfère le dire avant l'achat. Le mode Overlay embarque le bon format, ce qui est la brique qui dépend de vous. Il ne fait pas le reste du dossier :
- Il ne réécrit pas vos factures déjà émises. L'injection a lieu à la génération ou à l'envoi ; les PDF clos avant l'activation restent tels quels — et c'est sans conséquence, l'obligation ne vise que les factures à venir.
- Il ne transmet rien à une plateforme agréée. WooFacture produit le fichier, il ne l'expédie pas vers l'opérateur qui le routera jusqu'à votre client professionnel. Pour du B2B, cette seconde brique reste à votre charge.
- Il ne collecte pas le SIREN de l'acheteur au checkout. Sans lui, le XML d'une facture entre entreprises reste incomplet, quel que soit le plugin sous-jacent.
Le détail complet de ce qui est couvert et de ce qui manque est dans le tableau de la page sur l'obligation 2026, trous compris.
Commencez par tester ce que sort votre plugin actuel
Avant d'installer quoi que ce soit, sortez la dernière facture qu'a produite votre extension et passez-la dans notre test gratuit. Il lit le PDF dans votre navigateur, sans upload, et vous dit s'il contient déjà un XML. Si vous voyez « PDF plat », c'est exactement le cas que l'overlay corrige.
Sans compte, sans email. Le PDF ne quitte pas votre machine.
Questions fréquentes
Concrètement, le mode Overlay remplace mon plugin de facture ?
Non. Il se branche dessus. Votre extension continue de créer le PDF, de le numéroter et d'appliquer votre template. WooFacture intervient une fraction de seconde plus tard, rouvre ce PDF et y embarque le XML Facture-X avant qu'il ne parte par mail. Vous ne changez rien à votre configuration existante.
Et si mon plugin n'est pas dans votre liste de cinq ?
Il reste un filet de sécurité. WooFacture s'accroche au hook woocommerce_email_attachments en priorité 999, c'est-à-dire en dernier, juste avant l'envoi. Il regarde chaque pièce jointe PDF de l'email de commande, détecte laquelle est une facture et y injecte le XML. Ce chemin marche même avec une extension qu'on ne connaît pas nommément, du moment qu'elle attache son PDF à un email WooCommerce standard.
Le XML risque-t-il d'être injecté deux fois ?
Non. Avant chaque traitement, WooFacture cherche la chaîne factur-x.xml dans le fichier. S'il la trouve, il laisse le PDF tel quel et passe son chemin. C'est ce qui évite de re-traiter une facture à chaque fois qu'un client la re-télécharge depuis son espace compte.
Quel profil Facture-X l'overlay écrit-il ?
Celui que vous choisissez dans les réglages de WooFacture, EN 16931 par défaut. Le mode Overlay lit le même paramètre facturx_profile que la génération native : vous n'avez pas deux endroits à configurer. Pour facturer des professionnels, gardez EN 16931 ; BASIC suffit si vous voulez seulement les lignes et la TVA.
Ça touche à mes anciennes factures déjà envoyées ?
Non, et c'est volontaire. L'overlay agit au moment où une facture est générée ou où son email part. Les PDF déjà clos et archivés ne sont pas réécrits rétroactivement. Une facture émise avant l'activation reste un PDF plat — ce qui est sans conséquence, l'obligation ne vaut que pour les factures futures.
Pourquoi ne pas simplement migrer vers la génération native de WooFacture ?
Parce que changer d'extension de facture en cours d'exercice, c'est reprendre sa séquence de numérotation et couper son historique — deux choses que votre comptable n'aime pas. Le mode Overlay existe exactement pour éviter ça. Si vous démarrez une boutique neuve, la génération native est plus propre ; si la vôtre tourne déjà, l'overlay est le chemin sans casse.