Odoo Multicompany

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:

Inter-company transactions

In a multi-company database, inter-company transactions can also be setup to buy and sell between companies, for example:

  • US company buys from Hong Kong office that sources from suppliers in Asia;
  • UK company buys from its own factories in China.

Note that these inter-company transactions will need to be eliminated from the Financial Reports (e.g. Profit & Loss). Fiscal positions can be used to override accounts based on rules, so that could be used to post intercompany transactions to an eliminations account.

This can be setup in the Sales and Purchase applications so the flow is automated.

  • This is an optional feature in Odoo Enterprise (configured in General Settings):

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 allows 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

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.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s