Integration and automation

Customising Odoo is easy. Upgrading it is not.

Every override written today is a merge conflict at the next release. Most companies three versions behind are paying for a decision somebody made in a hurry four years ago.

Thirty minutes · no predetermined package

Upgrade readiness
what happens when you move version
16.0→18.0
3 break2 need work1 upgrades clean
Sales — custom pricing rulesoverrides core pricingbreaks3–4 weeks
Inventory — batch allocationforked from corebreaks4–6 weeks
Accounting localisationcommunity module, unmaintainedbreaksfind or fund it
CRM — lead scoringclean extensionneeds work2–3 days
Website themeheavily overriddenneeds work1–2 weeks
Studio customisationsno code, upgrades cleanlyupgrades cleannone
three modules override core≈ 11 weeks to be current
⑃
A fork is a bill that arrives every release
an extension is not
Upgrade, extend, integrate or replace

Almost always, the first one comes first.

Nothing else can be decided sensibly from three versions behind.

01 — Upgrade

Get current, stay current

Assess what breaks, refactor forks into clean extensions, then upgrade. The point is arriving somewhere you can upgrade again.

Weeks to monthsand it is the first thing to do, almost always.
02 — Extend properly

Build it the right way

Custom modules written as extensions rather than overrides, so the next release is an afternoon rather than a quarter.

Weekswhen the gap is real and the process cannot change.
03 — Integrate

Keep Odoo, connect it

Odoo stays as ERP, and the parts it models badly move to something that models them well, connected by API.

Weeks to monthswhen it is right for finance and wrong for the floor.
04 — Replace a piece

Not the whole thing

Rarely all of Odoo. Usually one domain — CRM, or the customer-facing side — where the standard model does not fit.

Monthsand only after the upgrade question is settled.
Symptoms

What an over-customised Odoo feels like from inside.

01

You are three versions behind, because the last upgrade took a quarter and broke two things nobody found for a month.

02

A module was forked from core to change one behaviour, and now every release has to be merged by hand.

03

The partner who built it is not the partner who maintains it, and neither wrote anything down.

04

Studio was used for the easy customisations and Python for the hard ones, and nobody can say which is which.

05

A community module in the accounting stack has not been updated in two years.

06

Odoo Enterprise was bought for one feature, and the licence renews for everybody.

Evaluation

Six questions before an Odoo upgrade or a new build.

The first two decide the cost of everything that follows.

01How much of the customisation is Studio, and how much is Python overriding core?Studio survives upgrades. A core override does not. The ratio decides what an upgrade costs.
02Which modules were forked rather than extended?A fork means every future release is a manual merge. This is the single largest source of Odoo technical debt.
03How many community modules are load-bearing, and are they maintained?An unmaintained module in the accounting stack is a version ceiling nobody chose.
04What is the actual gap between Odoo standard and your process?Half of what gets customised is a process that could have changed instead, more cheaply.
05Are you on Odoo.sh, self-hosted, or Odoo Online?Each has different upgrade mechanics and different limits on what can be customised at all.
06Who has commit access, and is there a staging environment?Odoo work without staging is production work, which is why nobody wants to touch it.
The sequence

Five stages, and refactoring comes before upgrading.

01

Read the codebase

the findings

Every custom module, whether it extends or overrides, what it depends on, and what an upgrade does to it. Written up whether or not we do the work.

02

Refactor the forks

upgradeable

Overrides become extensions. This is the work that turns a quarter-long upgrade into a week-long one, permanently.

03

Upgrade on staging

proven

Version by version on a copy, with the migration scripts written and tested before production sees anything.

04

Cut over

current

Production upgraded with a rollback path, out of hours, with the old version recoverable for as long as you want it.

05

Document and hand over

the runbook

What every module does, why it exists, and what to check at the next release. The absence of this is how the org got three versions behind.

Where this comes up

Odoo is strongest where the customisation runs deepest.

Manufacturing and distribution

Where Odoo is strongest, and where the inventory and MRP customisations tend to be deepest.

Retail and e-commerce

Multi-channel stock and pricing rules that push the standard model further than it wants to go.

Professional services

Timesheets, projects and invoicing, usually with a fork somewhere in the billing logic.

Logistics

Route and delivery models that rarely survive contact with the out-of-the-box warehouse module.

Questions

What people ask about Odoo implementation and support.

What do Odoo implementation services include?

Process mapping, module selection, configuration, data migration, custom development where genuinely needed, and training. The largest decision is what to configure versus what to build.

What is an Odoo implementation partner?

A firm accredited to sell and implement Odoo. Accreditation says nothing about engineering discipline, which is why two partners can leave you with very different codebases.

Why are Odoo upgrades so painful?

Because customisations that override core code have to be merged by hand at every release. Extensions upgrade cleanly; forks do not. Most painful upgrades are paying for a decision made years earlier.

What does Odoo customization cost?

Less than the upgrade it causes, if it is done as an override. The honest way to quote Odoo customisation is to include what it adds to every future release.

Should we use Odoo Community or Enterprise?

Community is free in licence and not in developer time. Enterprise buys you supported modules and a supported upgrade path. Which is cheaper depends entirely on how much you customise.

Can Odoo replace our CRM?

For a straightforward pipeline, yes. It struggles when the sales process needs relationships the standard model does not have — which is the same limit every packaged CRM has.

What is an Odoo consultant actually for?

Deciding what not to build. Most Odoo problems are over-customisation of a system that would have been fine with a changed process and a configured module.

How does Odoo integrate with other systems?

Through its XML-RPC and REST interfaces, which are capable but chatty. The work is the same as any integration: deciding which system owns which field.

Can you take over an Odoo instance built by someone else?

Yes, and that is most of what we are asked to do. It starts with reading the codebase and writing down what nobody documented.

How long does an Odoo implementation take?

It scales with module count and integration count. A single-department rollout and a full ERP replacement are different projects that get quoted under the same name.

What is the difference between Odoo.sh and self-hosted?

Odoo.sh gives you managed staging and a supported upgrade path. Self-hosting gives you total control and total responsibility, including for the upgrade nobody wants to run.

Do you take commission from Odoo?

No. No commission, referral fee or partner margin on any software we recommend, which is what lets us tell you that Odoo is the wrong fit when it is.

Usually alongside

What this is normally built with.

A
API integrations
what sits either side of the ERP
C
Custom CRM development
when the sales side does not fit
O
Ongoing support
so it does not fall behind again