Common Mistakes When Setting Up Odoo Multi‑Company and How to Avoid Them
Common Mistakes When Setting Up Odoo Multi‑Company and How to Avoid Them
Running several legal entities under a single Odoo instance is a powerful way to centralise finance, inventory and sales data while keeping each company’s books separate. However, the convenience comes with hidden traps. Small‑to‑mid‑size businesses often stumble over the same configuration errors, which can lead to duplicated invoices, incorrect tax reporting, or even data‑leakage between subsidiaries. Below we dissect the most frequent mistakes, explain why they matter, and give concrete steps to get your multi‑company environment right the first time.
Mistake 1 – Creating Companies Without Setting a Default Company for Users
When you add a new legal entity via Settings → Users & Companies → Companies, Odoo creates a record with the field company_id. Many admins forget to assign a default_company_id to each user (via Settings → Users & Companies → Users → Edit → Preferences → Company). As a result, Odoo defaults to the first company in the list, and any new record—sale order, purchase, or journal entry—gets attached to the wrong entity.
How to avoid it
- Immediately after creating a company, open every existing user profile and set
Allowed Companies(fieldallowed_company_ids) to include the new entity. - Set the
default_company_idfor each user to the company they work for most of the time. - Enable the “Multi‑Company” toggle in Settings → General Settings → Multi‑Company to enforce company‑specific defaults.
Mistake 2 – Ignoring Inter‑Company Rules and Automatic Journal Entries
Odoo can generate inter‑company journal entries automatically (e.g., when a sale from Company A is recorded as a purchase in Company B). If the “Inter‑Company Transactions” option is left unchecked in Accounting → Configuration → Settings, the system will create duplicate invoices that must be reconciled manually, inflating workload and risking mismatched tax reports.
How to avoid it
Activate the feature, then define a dedicated inter_company_user_id (a technical user that owns all inter‑company moves). This user should have read/write rights on both companies but no access to regular business data, keeping the automation clean and auditable.
Mistake 3 – Sharing Product Templates Without Company‑Specific Visibility
Product templates are global by default. When you sell a product in Company A and the same template is visible in Company B, Odoo may automatically create stock moves for the wrong warehouse, leading to negative quantities or phantom inventory.
How to avoid it
- Open the product form (Inventory → Configuration → Products → Products) and set the
Companyfield to the owning company. - If a product truly needs to be shared, enable the “Can be sold to multiple companies” flag and use separate product variants for each entity.
- Review the
route_idsandwarehouse_idfields to ensure they point to the correct company‑specific warehouse.
Mistake 4 – Overlooking User Access Rights Across Companies
It’s tempting to give every employee the “Technical Features” access to simplify troubleshooting. In a multi‑company setup this opens the door for users to see or edit records belonging to other legal entities, violating data‑privacy policies and potentially breaching local regulations.
How to avoid it
Adopt a role‑based approach:
- Create a generic “Company User” group (e.g.,
base.group_user) and duplicate it for each company, naming them “Company A – User”, “Company B – User”, etc. - Assign the appropriate
allowed_company_idsto each group. - Restrict the “Technical Features” flag to a handful of administrators only.
When you need a robust, isolated environment for each company while still sharing the same Odoo instance, consider hosting on a reliable Cloud VPS. A dedicated virtual server gives you the CPU and RAM headroom to run multiple companies without performance degradation, and you retain full control over network segmentation and backup policies.
Mistake 5 – Forgetting to Configure Fiscal Years, Taxes, and Chart of Accounts per Company
Each legal entity may operate under a different fiscal calendar, tax regime, or chart of accounts. Odoo stores these settings at the company level, but many admins configure them only once—usually for the first company created. Subsequent companies inherit the wrong tax codes, leading to inaccurate VAT returns and costly re‑work during audits.
How to avoid it
- Navigate to Accounting → Configuration → Settings while the target company is selected (use the company switcher in the top‑right corner).
- Set the correct
Fiscal Year,Tax Cloud Provider, and upload the appropriateChart of Accounts(via Accounting → Configuration → Chart of Accounts → Import). - Run a quick “Test Fiscal Year” report to verify that opening and closing entries are generated for the right period.
Mistake 6 – Running All Companies on a Single Database Without Performance Planning
While Odoo supports multiple companies in one database, the default configuration assumes modest data volume. As transaction volume grows, you may experience slow loading times on sales orders, delayed stock moves, or time‑outs during batch imports. The root cause is often insufficient server resources rather than a software bug.
How to avoid it
Before you go live, benchmark the expected load:
- Estimate the number of daily invoices, purchase orders, and stock moves per company.
- Calculate the total number of concurrent users.
- Choose a server size that offers at least 2 GB RAM per 10 000 transactions per day, with a modern CPU (≥2 vCPU).
If you anticipate rapid growth, start with a scalable Cloud VPS plan that lets you add vCPU or RAM with a single click, avoiding disruptive migrations later.
Conclusion
Multi‑company in Odoo is a strategic advantage, but only when the foundation is built correctly. By assigning default companies to users, enabling inter‑company automation, scoping product visibility, tightening access rights, configuring fiscal settings per entity, and provisioning adequate server resources, you eliminate the most common pitfalls. Implement these safeguards early, and your Odoo instance will deliver clean, compliant data across every legal entity—without the surprise headaches that often follow a rushed rollout.