Contacts / Partners in Odoo

Contacts are stored in the res.partner model (database table). They can be business partners (customers / suppliers), individuals, or users.

Customers

Used in the Sales and CRM applications in Odoo

Suppliers (Vendors)

Used in the Purchase application in Odoo

Note: a contact can be both a customer and a supplier.

In Odoo 12 (and earlier) this is easy to setup:

Simply select “Is a Customer” and / or “Is a Supplier”.

In Odoo 13, these fields have been removed. Instead there are two new fields: Customer Rank and Supplier Rank – but they are not displayed. More information here.

Remove customer/supplier fields on res.partner [GitHub]

Users

Odoo users are also setup in the Contacts model (res.partner). They can be identified with this domain: [["user_ids","!=",False]]

  • In some (older) versions of Odoo, new users are setup as customers – which is confusing.

Company or Individual

Contacts can be companies or individuals. In the demo database you can see that Azure Interior is a partner company with three individual contacts:

Each of the individual contacts are linked to the “partner company”

On sales and purchase orders, you can select either partners (companies) or individuals.

Of course the individuals could have different roles, (such as buyer, merchandiser, accountant, logistics, etc. ) and in Odoo 12 and earlier it is possible to select whether an individual contact is a customer or not.

In Odoo 13 the check seems to have been completely removed. Any contact can be selected as a customer or a supplier.

Multicompany

In Odoo, contacts can be shared across companies. This can make sense if you have a group of companies with common customers or common suppliers.

In all versions of Odoo it is possible to set partners as shared or not, but the way this works has changed in Odoo 13.

In all versions, there is a field in the “Sales & Purchase” tab on Contacts for the Company.

  • If the company field is left blank the contact is shared across all companies.
  • If the company is specified, the contact may be be restricted to the current company depending upon on the version of Odoo and the settings.

Odoo 12 (and earlier)

In Odoo 12, new contacts are allocated to the current company, and there is an option in Settings: Common Contact Book which is ON by default.

  • If it is left ON, all contacts are shared across all companies.
  • If it is OFF, only contacts without a company specified are shared.
    • This means you can choose which contacts to share.

If you don’t want the Common Contact Book but you do want contacts to be shared by default, you can setup user-defined defaults or Automated Actions to set the company to blank. If you don’t do that, users would have to remember to change it manually as required.

[The same applies to Products. The option is Common Product Catalog.]

Odoo 13

In Odoo 13 the functionality is basically the same, but the setup is totally different!

  1. The options in Settings have been removed.
  2. New contacts (and products) are set with a blank company (so they are shared) but this can be changed to a specific company
    • It’s easier to setup user-defined defaults for this in Odoo 13

Overall it’s more logical, but because it has been changed without any explanation it can be confusing and there are regular questions on the Help forum.

Also, there was a problem with this when Odoo 13 was initially released. This happened because the Record Rules were removed and the ORM was used instead. But now the Record Rule has been added back (with some changes, and it’s not conditional on the Settings).

In addition there’s the potential confusion between Company (as in Multicompany) and company (as in “company” or “individual” – see above)

Edited on 30 December to explain rules for selecting customers on sales orders.
Edited on 31 January to add explanation on multicompany.

Leave a comment