In Odoo, you can have one database for multiple companies. It allows for some data to be shared, and for management to have oversight of all companies, including consolidated financial reports.
As well as the convenience, it may be more cost-effective to have multiple companies in a single database (though there are many different things to consider, and sometimes it is not the best option).
There are many different scenarios for multi-company.
- The companies may all operate independently
- The companies may share some data (e.g. products and services, customers)
- The companies may trade with each other (see below)
- There can be Parent and Child companies
Another approach is to use “branches” or “operating units” in a single company. There are some third party add-ons available:
- Operating Unit
- Multiple Branch(Unit) Operation Setup for All Applications
- Multiple Branches/Units Operations by Company
In a multi-company database, inter-company transactions can also be setup to buy and sell between companies, for example:
- US company buys from a group company in Hong Kong that sources from suppliers in Asia,
- UK company buys from its own factories in China.
This can be setup in the Sales and Purchase applications so the flow is automated.
Note that these inter-company transactions will need to be eliminated from the Financial Reports (e.g. Profit & Loss).
Odoo 12 and earlier
Related: Multicompany in Odoo 12
Multi-company Record Rules
Here are a few of the multi-company record rules in Odoo 12:
The important part here is the domain
['|', ('company_id','=',False), ('company_id','child_of',[user.company_id.id]) ]
The logic is that a user can access:
- Records with a blank company code
- Records in the “children” of the current company
- this includes the current company itself
Some are a bit different:
['|','|', ('company_id.child_ids','child_of', [user.company_id.id]), ('company_id','child_of', [user.company_id.id]), ('company_id','=',False) ]
This adds access to records in the parent company.
This rule applies to Contacts (res.partner), so customers and suppliers in the parent company will be available in the “child” company. If this is not what you want, you can amend this Record Rule.
Odoo 13 includes some big changes to multi-company.
This includes the removal of the “parent-child” logic, and its replacement with something more flexible.
- It may be possible to replicate the parent-child structure by adding Record Rules.