Se rendre au contenu

Odoo réimprime votre PDF à chaque changement de modèle d’e-mail (et comment l’éviter)

9 octobre 2026 par
Odoo réimprime votre PDF à chaque changement de modèle d’e-mail (et comment l’éviter)

Sur un devis, vous cliquez sur Envoyer par e-mail, puis vous changez de modèle de message : confirmation de commande, proforma, relance… À chaque clic, la fenêtre se fige quelques secondes. Ce n’est ni votre connexion ni votre serveur : Odoo réimprime le PDF du document, à l’identique, et en garde une copie de plus en base. Nous avons mesuré ce qui se passe réellement, et nous avons écrit un module de 10 € qui l’évite. Voici les chiffres, le protocole pour les reproduire, et ce que le module ne fait pas.

💡 En bref
  • Le constat : dans la fenêtre d’envoi, chaque changement de modèle réimprime le PDF du document et le stocke à nouveau en base.
  • La mesure : sur un devis de démo, environ 2,7 s par changement en standard, moins de 0,1 s avec le module.
  • Le module : Mail Composer PDF Reuse, 10 €, Odoo 18, 19 et 20, Community et Enterprise, licence OPL-1.
  • Ce qui ne change pas : le mail envoyé contient un seul PDF, avec ou sans le module.

1. Un geste anodin qui relance l’impression

La fenêtre d’envoi par e-mail d’Odoo — le composeur — s’ouvre depuis un devis, une facture, un bon de commande fournisseur. Quand elle vise un seul document, elle tourne en mode « commentaire » : le message sera posté dans le chatter du document et envoyé à ses abonnés.

Dans ce mode, chaque changement de modèle de message relance le calcul des pièces jointes (_compute_attachment_ids). Ce calcul ne se demande pas si le rapport voulu par le nouveau modèle vient d’être imprimé pour le même document, quelques secondes plus tôt, dans la même fenêtre : il réimprime le PDF (_render_qweb_pdf, donc un passage complet par le moteur PDF) et crée une nouvelle pièce jointe en base.

La précédente n’est pas supprimée sur le moment. Elle reste stockée jusqu’au passage du ramasse-miettes d’Odoo, qui n’efface ces pièces jointes de composeur qu’au bout d’un jour.

💡 Une précision qui compte

Votre client ne reçoit pas quatre PDF. Le mail envoyé n’en contient qu’un seul, même en standard. Le doublon se trouve en base, pas dans le mail : ce qu’on paie, c’est l’attente à chaque clic et des copies stockées pour rien.

2. Ce que nous avons mesuré

Plutôt que d’affirmer, nous avons compté. Le protocole est simple à reproduire :

  • Environnement : Odoo 19 Community, sur notre serveur de test.
  • Document : un devis des données de démonstration.
  • Rendu : le vrai moteur PDF (wkhtmltopdf), pas un rendu simulé.
  • Scénario : une ouverture du composeur, puis trois changements de modèle.
  • Relevé : le nombre de rapports imprimés, le nombre de PDF stockés en base et le temps de chaque changement.

Résultat en standard : 4 rapports imprimés, 4 PDF stockés, et environ 2,7 s d’attente à chaque changement de modèle. Avec le module : 1 rapport imprimé, 1 PDF stocké, et moins de 0,1 s par changement.

💡 À lire comme une mesure, pas comme une promesse

Ces chiffres valent pour ce devis, sur ce serveur. Le temps d’impression dépend de votre document, de votre rapport et de votre machine : refaites le scénario chez vous avant de conclure. Ce qui ne varie pas, c’est le compte : en standard, une impression et une copie en base par changement de modèle.

3. Le module : le PDF, imprimé une fois

Mail Composer PDF Reuse garde la trace des rapports déjà imprimés dans la fenêtre ouverte, par rapport et par document. Quand vous changez de modèle et que le nouveau modèle joint le même rapport pour le même document, le PDF déjà généré est rattaché de nouveau, sans repasser par le moteur PDF. Si le nouveau modèle demande un autre rapport, celui-là est imprimé normalement, une fois.

Trois garde-fous encadrent cette réutilisation :

  • Sécurité : une pièce jointe n’est réutilisée que si c’est une pièce de composeur en attente, créée par l’utilisateur courant. Une référence vers le fichier de quelqu’un d’autre est ignorée.
  • Périmètre : seul le composeur sur un document unique est concerné. Les envois groupés gardent le comportement standard d’Odoo.
  • Discrétion : aucun paramétrage, aucun menu. Désinstallé, le composeur se comporte exactement comme avant.
💡 À retenir

Même geste, même mail envoyé : le module supprime seulement l’impression répétée et les copies en base qu’elle laisse derrière elle.

4. Le compromis, assumé

La réutilisation ne dure que le temps de la fenêtre. Fermez le composeur, modifiez une ligne du devis, rouvrez-le : une nouvelle fenêtre réimprime un PDF à jour. C’est voulu. Nous aurions pu garder le PDF plus longtemps et gagner davantage de secondes, mais au risque d’envoyer à votre client un document qui ne correspond plus à vos données. Ce risque-là, nous ne le prenons pas.

Côté offre : 10 €, pour Odoo 18, 19 et 20, en Community comme en Enterprise, sous licence OPL-1. Le module ne dépend que de l’application Discussion (mail). Pour l’obtenir, demandez-le-nous directement.

💡 Le vrai sujet derrière ce module

Deux secondes par clic ne se voient pas en démonstration ; elles se paient chaque jour, au comptoir comme à la comptabilité. C’est exactement ce que nous cherchons lors d’un audit de vos processus Odoo : les gestes répétés qui coûtent plus qu’ils n’en ont l’air.

⚔️ Le Match : Odoo standard vs module Kameos

Critère Odoo standard Module Kameos
Rapports imprimés (ouverture + 3 changements) 4 1
PDF stockés en base 4 1
Attente par changement de modèle ≈ 2,7 s < 0,1 s
PDF dans le mail envoyé 1 1
Nouvelle fenêtre PDF à jour PDF à jour
Envois groupés Comportement standard Comportement standard (inchangé)

Mesure sur un devis de démonstration, Odoo 19 Community, rendu réel par wkhtmltopdf, sur notre serveur de test : une ouverture du composeur puis trois changements de modèle. Vos temps dépendront de vos documents et de votre serveur.

🛒 Sur l’App Store Odoo

Mail Composer PDF Reuse est en vente sur l’App Store officiel d’Odoo, à 10 € (Odoo 18, 19 et 20) : voir la fiche du module.

Le Verdict : un PDF par fenêtre, pas un par clic

Odoo ne se trompe pas sur le mail envoyé : il se répète en chemin. Pour 10 €, le module retire l’attente et les copies inutiles, sans toucher à ce que reçoit votre client ni à la fraîcheur du document.

Vos équipes envoient-elles des dizaines de devis et de factures par jour ? Faisons le tour de ces petites lenteurs lors d’un audit de processus Odoo, et apprenez à vos utilisateurs les bons gestes avec une formation Odoo sur mesure.

Demander un Audit Gratuit
Description de ligne absente du bon de livraison Odoo : pourquoi, et comment la récupérer