Skip to Content
Documents & compliance

Eco-contribution, WEEE and regulatory fees on sales documents

Showing the eco-contribution clearly on a quote and an invoice, even though its amount changes from one variant to the next and treating it as a tax would give a wrong amount.

Client One of our distributor clients
Industry Distribution, public tenders and purchasing organizations
Version Odoo 19
Live

The need

For one of our distributor clients, all sales go through public tenders and purchasing organizations, which imposes strict document requirements.

The furniture eco-contribution (France's eco-participation fee) must be shown clearly on quotes and invoices. Its amount depends on the product's weight, so it changes from one variant to the next. A 90 cm mattress and the same one in 140 cm do not carry the same contribution. On top of that come a specific flat-rate contribution and GTIN coding required by purchasing organizations.

In one sentence

A contribution included in the price, carried by the variant, shown as a separate line on six documents, and a total excluding eco-contribution that public buyers match against their contract.

What Odoo does out of the box, and where it stops

None of these limits is a configuration issue. They are design choices in the software, perfectly sound for most businesses, and unsuited to this specific case.

A tax is added to the price, the eco-contribution is included in it

Odoo can apply a tax to a product, but a tax rolls up into the VAT block. The eco-contribution is included in the price and must be shown as a separate line. Treating it as a tax gives a wrong amount.

The total excluding eco-contribution does not exist anywhere

Public buyers match the quote against their contract on an amount excluding the contribution. This column is not present in any standard template.

A field added on the product does not flow down to the variant

Yet it is the variant that carries the weight, and therefore the contribution. A field set at the product level would give the same value to every size.

The line must appear on four documents, and none of them provides for it

Quote, order confirmation, invoice and credit note, with a summary at the bottom of the invoice. Every print template has to be reworked.

What we built

1

Eco-tax carried by the variant

Built on the exact model of Odoo's barcode field. The data is stored on the variant, and a related field on the product form works across the relationship in both directions. Entry therefore remains possible from a simple product, without ever duplicating the value.

2

Entry column in the order

A unit Eco-tax column directly in the order line grid, to check and correct the value at the time of sale.

3

Line under each product

The line Dont Eco-Part. Mobilier hors taxes, in italics under each product line, on sales and invoicing documents.

4

Total excluding eco-tax column

Added before the document total, with sections and subtotals of the original template realigned so the layout stays correct.

5

Summary at the bottom of the invoice

An eco-contribution summary table, placed after the payment schedule so it does not overlap it.

6

Flat-rate contribution and GTIN

The flat rate is handled as a separate product rather than as a tax, so it stays readable on the document and can be managed by the client. The GTIN coding required by purchasing organizations was added to the products.

What it looks like

Screenshot placeholder, the line under a quote item
Screenshot placeholder, the summary at the bottom of the invoice

The result

95
product records migrated
356
variants in production
7
switchover steps in a mandatory order
0
data loss during migration

Each variant inherited the original value and was then differentiated by weight. Print templates were rewired first, so the migration stayed seamless from the point of view of the documents sent to buyers.

Do you sell with a regulatory fee?

WEEE, furniture eco-contribution, packaging fee, private copying levy. The principle is the same: a line to display without skewing the calculation. We know where to step in within Odoo.

Discuss your project