Skip to Content

Odoo OCA

And why it matters

Open-Core

Odoo is based on the original software Open ERP.  As the name suggests, it was an open-source software.

While there are some fully open-source forks (like Tryton), Odoo is now essentially following an Open-Core model.  Like Magento, the parent company has open-sourced the framework and many of the core apps, released as the "Community Edition".

This allows you do to many of the things you'd want to as a small business owner.  You get the web-builder, basic invoicing and payments allowing you to do e-commerce.  You have the inventory management, project management and a few other very useful applications.

Enterprise Edition

If you are willing to pay the license fees (monthly per user), then you can upgrade to the Enterprise Edition.  This gets you official support from Odoo, as well as access to the more advanced Odoo modules.

For example, you can access the chart of accounts, financial reporting, and many of the banking integrations that larger businesses will want.

You get things like the knowledge base (for documentation and team training), help-desk (for customer support), and a lot of HR modules among other things.

Odoo Partners

If you have an Odoo partner, they can assist with the customisation.  Odoo has a large marketplace of ready-built modules you can access for relatively low prices.  These can extend the functionality of Odoo beyond it's default options, and if you have access to a development team they can further customise it to your own needs.

The Odoo marketplace however has a high variation in code quality, and if you have a complex setup (multi-company or multi-currency) you will often need developers to fix things or integrate the marketplace modules into your setup.

I've found many marketplace modules are simply not built with these more complex setups in mind and will just break if you install them into a multi-company or multi-currency environment.

Odoo Community Association

Then there is the Odoo Community Association, otherwise known as the OCA.  Check our their modules here - https://github.com/oca

These are generally built to a MUCH higher standard than the marketplace modules, and (as the name suggests) are open-source and community supported.  I know some of the governance team and the standard they build these modules to is stringent, and any additions undergo many reviews by the maintainers.

OCA has many of the Enterprise modules re-implemented with equivalent functionality (albeit different).  For example, there is an OCA helpdesk module, an OCA knowledge base module, and OCA advanced accounting modules.

They work slightly differently to the Enterprise versions, but if you cannot or do not want to pay the Enterprise license fees, you can get pretty darn close with the OCA.

OCA also has modules and customisations that work WITH the Enterprise or normal CE setup.  For example, there are many tweaks and customisations to the stock management system (different ways of doing stock-takes for example).  Also things like roles and permissions management, and other helpful administrative tools.

Odoo Community Backports

In addition, there is the OCB project - which re-implements features that get removed from Odoo versions.  For example, there was a large change in how stock takes were done between v15 and v16, so in OCB there is an implementation of the old way of doing stock takes, ported to the later versions.

So this way deprecated features that Odoo corporation decide to remove, you can often still access them from OCB even as you upgrade to the later versions.

This holds true whether you are on CE or EE.

My Odoo Development Strategy

Generally speaking, the less code you have to write and maintain the better.  Other module maintainers are responsible for upgrades and other patches so you have less work, less cost and less risk.

It is sometimes a challenge to understand other people's code, and the temptation always remains that you can solve it quicker yourself, but that is rarely the case.  You are better off spending a day or two reading and understanding existing software solutions, and leveraging those, than having to basically build everything yourself.

So once you have picked either CE or EE, I tend to go through the following process:

Identify Gaps in Requirements

Where does out of the box (OOTB) Odoo not meet my needs?

Once we have clarified the requirements, we have some decisions to make.

Change your business

Oftentimes businesses just do things without understanding what they are doing.

So sometimes business requirements for software emerge that would be better solved by altering the business and not the software.  Often best-practises are built into software systems, and you should amend faulty business processes rather than customising workable software.

Leverage OCA first

The next port of call, once you've determined that you have the correct business process in place, is to see if OCA can serve your needs.

They have the highest quality modules and can greatly expand on the capabilities of OOTB Odoo.

Once you've squeezed as much juice out of the OCA and OCB lemon as you can, next stop is the marketplace.

The Marketplace can help

Having said all that, the Marketplace still has some good solutions in there.  Especially as you get to know the different vendors that manage software on the platform, you will learn which ones you can rely on to make decent code and which ones are better avoided.

Customise the last mile

At the end of all of this, you will often have some custom code that needs to be written.

Hopefully at this point you are just tweaking things like layout, maybe altering the scoping of some features, or building glue to hold it all together.

You might have to build some entire custom apps, and that is great because doing that on Odoo is still generally quicker and easier than using other web frameworks.

Plus you get a full integration into the rest of your stack, so it's still a very good solution.



Odoo websockets
A deep-dive