Drive process efficiencies from multi-company functionality with the Open Source Integrators proven methodology.
With ever increasing globalization, more companies require ERP configurations for multi-company sales, purchasing and accounting.
Odoo Enterprise version 12 seamlessly allows users to manage data from multiple companies, warehouses, manufacturing plants, customers, suppliers and products. This is a high-level summary of the Open Source Integrators methodology for configuring multi-company functionality in Odoo 12 Enterprise. Using this process, the OSI team has reduced the time required for multi-company configuration and testing efforts by 75 percent.
Initial Setup
Odoo Enterprise version 12 configured for multi-company is set up with all parent and child companies, so that each is a separate entity. Each entity has its own general ledger, financial reports and inventory data. All entity data rolls up to consolidate the financial information on the chart of accounts of the single parent company.
The illustration above represents a simple corporate hierarchy for
implementing multi-company.
Multi-company configuration in Odoo allows for sharing of supply chain workflows (sales and purchases) between companies in the same Odoo database. And it supports invoicing between companies linked with inter-company processes. It’s considerably less expensive and time consuming to configure multi-company at the beginning of an Odoo implementation.
When setting up multi-company, the Odoo administrator must decide whether the child entities will use a common contact book (all customers and vendors are shared or not) and a common product catalog. The parent company will always be able to view and edit all child entity data, regardless of the child entity settings.
The administrator must also decide whether to enable intercompany flows. Configuring the intercompany flow setting allows for sales orders (SO) and purchase orders (PO) sent to and from the various company entities to automatically be routed through Odoo. For example, a PO from Company A to Company B will automatically generate a SO for Company B.
After configuring the multi-company global settings, next the administrator will configure the settings for each user. The “Allowed Companies” must be defined on the user’s Odoo profile to grant view/edit access to company data, based on the user’s job role.
It is best practice to assign an Odoo administrator for each child entity, in addition to the Odoo super administrator with global Odoo management responsibility.
Multi-Company Accounting Setup
Before starting multi-company accounting configuration for any company (either the parent or child entities), administrators must upload the template chart of accounts (COA) and right away enable fiscal localization for the companies. If the fiscal localization is enabled later in the configuration steps, Odoo will wipe out all customization and configuration completed before the enablement of fiscal localization.
Administrators of Odoo for companies in the United States must enable the Configurable Account Chart Template package and the Anglo-Saxon accounting setting.
Following the configuration of those two settings, Odoo creates a chart of accounts with 29 accounts. 20 can be safely deleted, if needed. The remaining 9 accounts that can’t be deleted are “core Odoo accounts,” even for users importing their own chart of accounts. These are considered core accounts because Odoo modules and functionality reference those accounts in journals, user setups, payables, receivables and other data processing / reporting.
Odoo allows for deletion of the cost of goods, bank accounts & cash accounts, but some journals point to them. Deleting those accounts is allowed in Odoo but is not recommended.
OSI recommends replication of the product catalog in both the parent company and child entities.
OSI recommends the account numbers and account names be revised with the addition of a suffix code that allows users to glance from the table view and recognize whether the account is for the parent company or a child entity.
Other Multi-Company Accounting Setup
Other multi-company accounting settings recommended by OSI include:
- Map product categories by company.
- Define journals and sequences by company.
- Define A/R and A/P per company. Two of the nine Odoo core accounts are A/P and A/R, so those can be used if desired. Alternatively, the administrator may use different A/R and A/P accounts. Property field settings may be changed at:
- Define sequencing. Odoo Enterprise version 12 defaults to sharing Sales Order and Purchase Order sequencing by company. This can be changed in the settings, if desired.
- Define payment terms per company.
- Set Odoo partner records per company (via the company field).
- Define sales prices lists and vendor price lists per company.
- Set Products and Variances per company (via the company field).
- Define Taxes and Group of Taxes per company.
Warehouse Locations
At least one warehouse and one stock location are created by default during setup of multi-company in Odoo Enterprise version 12. Administrators must define the correct name and codes for the warehouse, otherwise Odoo will auto-populate a name related to the company name. If the company has multiple warehouses and stock locations, those can be enabled in the settings.
Virtual locations can be shared for all companies (for tasks such as inventory adjustment, production, scrapping, etc.) For companies that are setup for multiple virtual locations, Odoo will default to a shared setting. The best practice is to share virtual locations across companies.
Issues will arise if the locations database ID does not match the property fields. Examples of this are:
Virtual locations must be configured correctly with the product settings, otherwise users will not be able to enter products into the Odoo database or complete transactions with products.
Sequences
The Sequence Numbers must be configured properly. To avoid confusion, it is a good practice to have separate Sequence Numbers for the parent company or child entities.
Like the case of the account numbers and account names on the chart of accounts, OSI recommends administrators add a prefix or suffix to the Sequence Number that allows users to glance from the table view and recognize whether the Sequence Number is for the parent company or a child entity.
Inter-Company Flows
In the example provided here, the administrator decided to enable intercompany flows. Configuring the intercompany flow setting allows for sales orders and purchase orders among the entities to automatically be routed through Odoo.
The parent company and each child company’s settings must be enabled on the Inter-Company Rules tab. When a transaction is initiated from one company to another, the purchase order from the buyer company will automatically trigger creation of a sales order in the vendor company, or vice versa. That is the most common setting, but invoices and bills can also be automatically routed by enabling the setting on the Inter-Company Rules tab.
Testing
To test whether multi-company settings are correct in Odoo, administrators can run the following workflows:
- Update Product Inventory On Hand.
- Log-in to a specific company.
- Go to Inventory->Products. Select a stockable product.
- Update Quantity On Hand.
- When successful, check that the update was correctly logged in Stock Journal, Inventory Valuation and Stock Moves.
- Create a Sales Order to check the Customer Pricelist Configuration. Complete a transaction from delivery to invoicing and payment.
- Create a Purchase Order to check the Supplier Pricelist Configuration. Complete a transaction from receipt to invoicing and payment.
- Check the Balance Sheet and Profit & Loss for validity.
- For an inter-company transaction, create a Sales Order from one company and check if a Purchase Order is created for the other company. Or if a Purchase Order is created from one company, check if a counterpart Sales Order is created from the other company.
Multi-Company Customization
Out of the box, Odoo version 12 Enterprise multi-company functionality occasionally isn’t configured well for a company’s unique business process. In such cases, companies develop solutions or engage with Odoo partners to develop solutions to better align Odoo performance with the company’s process needs.
As an example, Odoo version 12 Enterprise by default ties a manufactured product to a bill of materials (BOM). In this version, the BOM is a required field associated to a company. However, V12 doesn’t allow administrators to create a BOM that can be shared among all companies.
To solve this, OSI created the osi_bom_multicompany module. This module overrides Odoo version 12 Enterprise’s base functionality and makes BOMs workable for multi-company implementations.
Conclusion
Implementing an ERP from scratch or making significant changes to an existing ERP, such as setting up Multi-Company in Odoo, requires detailed, thorough planning, configuration, testing, change management, and possibly customization. This is a daunting task even for the most technically savvy organizations. Partnering with an ERP specialist such as Open Source Integrators is proven to greatly reduce risk in ERP implementations of all kinds.