What Odoo removed in versions 19 and 20, and what to use instead
Updated
Odoo drops features between major versions when they are rarely used or replaced by something else. The release notes cover each one in a line, so many teams notice only after the upgrade. Each removal here was checked in Odoo's source code and release notes in October 2026.
| Removed | In | What standard Odoo still does | Options |
|---|---|---|---|
| Expense reports | 19 | Approve and post several expenses from the list, one bill per employee. No report, total or joint approval. | Expense Report Sheets (19, 20) |
| Project profitability panel | 20 | The expected margin from sales order lines. No costs from timesheets, bills or expenses on the project. | Project Profit Panel (20 Community) |
| Blocking warnings on contacts and products | 19 | A warning text on sales, purchases and transfers. The credit limit warns but doesn't block. | Approvals built with Studio (Enterprise), or a credit hold app |
| Membership and website membership | 19 | Partnership: a grade and a pricelist, without dates, status or renewals. | The community copy of the Membership module for 19 (OCA) |
| Flexible and strict consumption on bills of materials | 20 | A warning when the consumed quantity differs. Whoever can close the order confirms it. | A review step before closing manufacturing orders |
Expense reports (Odoo 19)
Odoo 19 removed the expense report model, hr.expense.sheet, in Community and Enterprise (commit 704a5a1). Expenses are now approved and posted one by one or from the list. Odoo 20 also removed the Employee Expenses menu, and an approved expense becomes a draft vendor bill.
That works for single receipts but not for a trip or a month of expenses that should be submitted, approved and paid together. The guide to expense reports in Odoo 19 and 20 shows the workaround in standard Odoo and how Expense Report Sheets brings the reports back.
Project profitability (Odoo 20)
The release notes for 20 say the profitability report in the project dashboard was removed. In the source, the profitability code is gone from project and sale_project. What is left is sale_project_margin, which shows the expected margin from sales order lines, and a profitability field on analytic lines for an Enterprise report.
See project profitability in Odoo 20 for the analytic report workaround and Project Profit Panel, which puts revenue against timesheets, vendor bills, expenses and materials per project in Community.
Blocking warnings (Odoo 19)
Up to 18, a contact or product could carry a blocking message that stopped a quotation, purchase or transfer. Odoo 19 removed the blocking option (commit 5ad2694): the warning text remains, but nothing is stopped. The credit limit on customers also only warns.
In Enterprise you can rebuild a hold with Studio and an approval rule. In Community you need a credit hold or sales block app from Odoo Apps.
Membership (Odoo 19)
Odoo 19 removed the Membership and website membership modules (commit b09d9a3). The replacement, Partnership, gives a contact a grade and a pricelist, but has no membership dates, status or renewal.
The Odoo Community Association keeps a copy of the old module in its vertical-association repository for 19.0. When this was checked, there was no 20.0 version yet.
Strict consumption on bills of materials (Odoo 20)
Odoo 20 removed the Flexible and Strict consumption options on bills of materials (commit 9d03544). When the consumed quantity differs from the bill of materials, Odoo shows a warning that anyone allowed to close the order can confirm. Teams that need a hard stop add a review step before manufacturing orders are closed.
Apps that add Python code, including the ones above, need Odoo.sh or your own server. Odoo Online can't install them.
FAQ
Can we keep these features by staying on Odoo 18?
Yes, Odoo 18 still has all of them. Moving to 19 or 20 later means dealing with the same removals, so it is worth planning the replacement before the upgrade.
Do the removals affect Enterprise as well?
Expense reports, blocking warnings, Membership and BoM consumption were removed from both editions. The project profitability panel was removed from the project dashboard in both; Enterprise keeps an analytic profitability report.
Can we add the apps on Odoo Online?
No. Odoo Online does not install custom Python apps. Use Odoo.sh or your own server.
More guides
Så exporterar du närvaro från Odoo till PAXml för lönesystemet
Swedish PAXml Export bygger en PAXml 2.0-fil av Odoos närvaro, godkända frånvaro och utlägg. Någon granskar raderna och låser underlaget innan .pax-filen laddas ned och importeras i lönesystemet.
Read the guide →How to charge late payment interest in Odoo
Odoo sends payment reminders but does not calculate interest on overdue invoices, in any version up to 20. Statutory interest follows a half-year reference rate, changes with every partial payment and allows one fixed compensation per late business invoice. You can calculate it by hand on a separate invoice, or let LateRate do it from your posted invoices.
Read the guide →Expense reports are gone in Odoo 19 and 20: how to group expenses again
Since Odoo 19 every expense is submitted, approved, posted and paid on its own; the Create Report button and the Expense Reports menu are gone in 20 too. To bill a client for several receipts, use re-invoicing through a sales order. To approve, print and pay a month of expenses as one report again, add Expense Report Sheets.
Read the guide →