ProjoMania
Odoo 2026年5月8日 · Mohamed Magdy

Odoo 17 to 18: what changed and what breaks

The 17-to-18 jump is one of the smoother recent upgrades, but it is not free. Here are the changes that matter for custom modules, the accounting shifts to watch, and the pre-flight checks we run before touching production.

Moving from Odoo 17 to 18 is one of the gentler single-major upgrades of the last few years — but “gentler” is not “free.” The work lives in your customizations and integrations, not the standard app. Here is what we check before we start.

The headline changes

  • OWL and the web client. The front-end framework keeps maturing. If you have custom JavaScript widgets, QWeb-heavy views, or backend client actions, budget time to port and re-test them. Standard views usually carry over; custom ones rarely do without adjustment.
  • Accounting and localizations. Each release reshapes parts of the accounting engine and the country localization modules. If you depend on a specific localization or have customized journals, taxes, or reports, treat these as high-risk areas and test them first.
  • View and ORM deprecations. Attributes and helpers deprecated in 17 are removed or changed in 18. Code that threw warnings before will now break. Read the warnings you have been ignoring.

Where custom modules actually break

In practice, breakage clusters in a few places:

  1. JavaScript/OWL components — the most common source of post-upgrade defects.
  2. Reports — QWeb templates referencing changed fields or removed helpers.
  3. Integrations — XML-RPC/JSON-RPC callers that assume a field or method that moved.
  4. Studio customizations — these carry over differently between versions and often need a pass.

The pre-flight checks we run

  • Inventory every custom module and note last-modified dates — dead code does not need migrating, it needs deleting.
  • Run the upgrade on a replica first. Never on production. Ever.
  • Diff the standard models you have extended against 18 to find renamed or removed fields.
  • Re-run every integration against the test database before cutover.
  • UAT the accounting close end-to-end with your finance lead signing off.

How big is the jump for you?

A clean, lightly customized 17 database can be a short engagement. A heavily customized one with bespoke OWL components and a tricky localization is a different conversation. The version compatibility matrix shows the complexity read for your exact source and target, and our Odoo upgrade service covers the code, not just the data.

If you are more than one major behind 18, read our complete guide to Odoo migration first — multi-hop paths have their own rules.

与我们合作

报价、咨询或探索通话。