Se rendre au contenu

Cas client : dompter l’éco-contribution dans Odoo

(sans faire exploser la facture)
17 février 2026 par
Cas client : dompter l’éco-contribution dans Odoo
Transition, Antoine DEVOLDRE

En bref pour les pressés : Pour gérer l'éco-contribution dans Odoo sans développement lourd, la meilleure pratique consiste à combiner les taxes natives (calcul au poids) avec une Action Serveur automatisée. Cela permet d'assurer l'affichage légal "dont éco-part" dans la description du produit, tout en garantissant la conformité Valdelia et en minimisant les coûts d'hébergement sur Odoo.sh.

Chez Transition, on aime bien quand la technique Odoo se frotte à la réalité du terrain français. Et l'éco-contribution, c'est un sacré morceau.

Récemment, on a accompagné un distributeur de mobilier pro (B2B) qui se tirait les cheveux sur un problème apparemment simple : gérer l'éco-contribution (filière Valdelia) proprement dans son ERP.

Entre les calculs au poids qui changent selon le matériau, les forfaits par siège, l'obligation d'affichage légal, et surtout la contrainte de ne pas ajouter trop de "code spécifique" (qui coûte cher sur Odoo.sh), l'équation était complexe. On vous raconte comment on a trouvé la sortie.

Le contexte : un catalogue mobilier B2B qui pèse lourd

Notre client vend du mobilier de bureau. Ça va de la petite chaise ergonomique à l'armoire métallique de 120 kg.

En B2B, la transparence est la règle. Ses clients (revendeurs ou entreprises) doivent voir le coût exact de l'éco-participation pour chaque ligne de commande. Pas question de noyer ça dans un total en bas de page.

Le client est hébergé sur Odoo.sh. Et là, il y a une contrainte financière qu'on oublie souvent : le coût de la maintenance technique.

L'objectif était donc clair : faire le plus standard possible pour limiter les coûts récurrents.

Le besoin : "Je veux que l'éco-taxe se calcule toute seule"

La demande du client :

"Je veux que l'éco-taxe se mette à jour automatiquement selon le poids de mes articles. Et je veux que ça apparaisse sur mes devis sans que je doive tout réécrire à la main."

Les pièges techniques à éviter :

  1. La subtilité des matériaux : un bureau de 50 kg ne paie pas la même taxe Valdelia s'il est en bois (0,15 €/kg), en métal (0,14 €/kg) ou en plastique (0,20 €/kg). Il fallait gérer cette finesse sans créer 50 taxes différentes.

  2. L'historique : si le barème change en 2027, les vieux devis de 2026 ne doivent surtout pas bouger.

  3. L'économie de code : éviter le "développement spécifique" lourd.

L'obligation légale Valdelia : pas le droit à l'erreur

On a ressorti les textes (Code de l'environnement R543-247 pour les intimes, consultable sur Légifrance).

Le verdict est strict pour la facturation B2B :

  • L'éco-contribution est soumise à la TVA.

  • L'acheteur doit voir le coût unitaire de cette contribution.

Écrire juste "Eco-part incluse", c'est non. Il faut écrire : "Dont éco-participation unitaire : X,XX € HT". Et ça doit être visible ligne par ligne sur la facture.

Les tests : pourquoi on a évité le développement spécifique Odoo

Au début, on aurait pu se dire : "Allez, on développe un module custom qui surcharge les rapports PDF pour ajouter une colonne Eco-part".

Mauvaise idée.

  1. Ça fait du code à maintenir (et à payer chaque mois).

  2. C'est fragile : à chaque mise à jour majeure d'Odoo (migration v17 vers v18), les rapports PDF personnalisés cassent souvent.

On a aussi testé les formules de taxes Python trop complexes. Résultat : ça marchait sur le devis, mais ça plantait à la facturation parce qu'Odoo perdait le fil du calcul.

Il fallait faire plus simple et plus robuste.

La solution définitive : l'approche "low-code" Transition

On a mis en place une solution qui utilise 95% du standard Odoo et juste un tout petit script d'automatisation (quelques lignes seulement, donc impact financier quasi nul).

A. Les taxes intelligentes (zéro code)

On a divisé le problème en deux stratégies distinctes :

  • Pour le mobilier lourd (la gestion fine des matériaux) : On a créé seulement 3 taxes Python natives dans Odoo : une pour le BOIS, une pour le MÉTAL, une pour le PLASTIQUE.

    • La formule magique utilisée : Quantité * Poids article * Tarif Matériau.

    • L'astuce : on assigne la taxe "Eco-part MÉTAL" à toutes les armoires métalliques. Odoo lit le poids de chaque armoire et applique le bon tarif (0,14 €/kg). Si l'armoire fait 100 kg, ça calcule 14 €. Si elle en fait 50, ça calcule 7 €. C'est automatique.

  • Pour les sièges : Des taxes fixes classiques (1,20€) car ils fonctionnent au forfait par tranche de poids.

B. L'affichage automatique (l'astuce qui change tout)

Plutôt que de modifier le PDF (cher et risqué), on a utilisé une Action Serveur.

C'est un petit script de maintenance qui tourne la nuit. Il scanne les articles, identifie le matériau (via la taxe assignée), calcule l'éco-part unitaire théorique, et vient écrire la mention légale directement dans la description du produit :

Bureau Angle 160cm

Dont éco-participation unitaire : 5,40 € HT

Pourquoi c'est gagnant pour le client ?

✅ Légal : l'info est écrite noir sur blanc.

✅ Économique : le script fait moins de 50 lignes, donc impact négligeable sur la facture Odoo.sh.

✅ Robuste : comme c'est du texte standard, ça s'affiche parfaitement sur les devis, les factures et même le portail client, sans aucun bug d'affichage. Et si le client commande 50 bureaux, la mention "unitaire" lève toute ambiguïté.

Conclusion

Ce projet illustre parfaitement la philosophie Transition : ne pas tordre Odoo pour qu'il fasse des acrobaties, mais utiliser ses briques natives intelligemment pour répondre à un besoin complexe.

Vous êtes distributeur ou fabricant et vous avez des problématiques similaires de taxes, de REP ou de conformité B2B ?

Contactez-nous pour un audit de votre configuration Odoo

# Odoo
Partager cet article
Étiquettes
Archive