Odoo supports multiple companies in a single database, including a Parent / Child structure. This article is about Odoo 12 – there are big changes in Odoo 13.
Note: Odoo uses Record Rules to limit access. If you want to change the behaviour you may be able to modify them (see below).
Configuration

In General Settings, select “Multi-Companies”
Two additional options are displayed:
- Common Contact Book
- Common Product Catalog
By default these are selected (ticked). This means that all contacts / products are shared across all companies. You can un-select either or both if you want each company to have its own contacts / products, as explained below.
User Setup
Users must be authorized to companies

Using multicompany

If users are authorized to more than one company, they can switch between the companies as shown above.
In Odoo 12 and earlier, normal users can only see data and transactions in the current company.
Admin and Super User:
If you are signed on as a “super user” you will see data and transactions across companies. This can cause problems (in Odoo 12 and earlier)!!
In Odoo 11 and earlier, the admin user is automatically a “super user”, so it strongly recommended not to use the admin user for transactions
In Odoo 12, the admin user is NOT automatically a “super user” so it should be OK to use.
In Odoo 13, all users can view data across companies (subject to authorization).
More on Super User and Admin
Record Rules
If you switch off either Common Contact Book or Common Product Catalog, a Record Rule will be activated.
The domain is: ['|',('company_id','=',user.company_id.id),('company_id','=',False)]
Which means that the Record Rule will limit users to:
- contacts / products in the current company AND
- all contacts / products with blank company code
[In Odoo 12 and earlier, the current company is stored in the user profile]
The default behaviour in Odoo 12 and earlier is that when you create a contact or product it belongs to the current company, so users have to remember to set it to blank if it is to be shared (an Automated Action could be created to override this).
In addition, contacts are shared within a “parent / child” company structure. If this is also required for products, you can modify the Record Rule.