Skip to Content
Odoo Menu
  • Sign in
  • Try it free
  • Apps
    Finance
    • Accounting
    • Invoicing
    • Expenses
    • Spreadsheet (BI)
    • Documents
    • Sign
    Sales
    • CRM
    • Sales
    • POS Shop
    • POS Restaurant
    • Subscriptions
    • Rental
    Websites
    • Website Builder
    • eCommerce
    • Blog
    • Forum
    • Live Chat
    • eLearning
    Supply Chain
    • Inventory
    • Manufacturing
    • PLM
    • Purchase
    • Maintenance
    • Quality
    Human Resources
    • Employees
    • Recruitment
    • Time Off
    • Appraisals
    • Referrals
    • Fleet
    Marketing
    • Social Marketing
    • Email Marketing
    • SMS Marketing
    • Events
    • Marketing Automation
    • Surveys
    Services
    • Project
    • Timesheets
    • Field Service
    • Helpdesk
    • Planning
    • Appointments
    Productivity
    • Discuss
    • Approvals
    • IoT
    • VoIP
    • Knowledge
    • WhatsApp
    Third party apps Odoo Studio Odoo Cloud Platform
  • Industries
    Retail
    • Book Store
    • Clothing Store
    • Furniture Store
    • Grocery Store
    • Hardware Store
    • Toy Store
    Food & Hospitality
    • Bar and Pub
    • Restaurant
    • Fast Food
    • Guest House
    • Beverage Distributor
    • Hotel
    Real Estate
    • Real Estate Agency
    • Architecture Firm
    • Construction
    • Estate Management
    • Gardening
    • Property Owner Association
    Consulting
    • Accounting Firm
    • Odoo Partner
    • Marketing Agency
    • Law firm
    • Talent Acquisition
    • Audit & Certification
    Manufacturing
    • Textile
    • Metal
    • Furnitures
    • Food
    • Brewery
    • Corporate Gifts
    Health & Fitness
    • Sports Club
    • Eyewear Store
    • Fitness Center
    • Wellness Practitioners
    • Pharmacy
    • Hair Salon
    Trades
    • Handyman
    • IT Hardware & Support
    • Solar Energy Systems
    • Shoe Maker
    • Cleaning Services
    • HVAC Services
    Others
    • Nonprofit Organization
    • Environmental Agency
    • Billboard Rental
    • Photography
    • Bike Leasing
    • Software Reseller
    Browse all Industries
  • Community
    Learn
    • Tutorials
    • Documentation
    • Certifications
    • Training
    • Blog
    • Podcast
    Empower Education
    • Education Program
    • Scale Up! Business Game
    • Visit Odoo
    Get the Software
    • Download
    • Compare Editions
    • Releases
    Collaborate
    • Github
    • Forum
    • Events
    • Translations
    • Become a Partner
    • Services for Partners
    • Register your Accounting Firm
    Get Services
    • Find a Partner
    • Find an Accountant
    • Meet an advisor
    • Implementation Services
    • Customer References
    • Support
    • Upgrades
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    Get a demo
  • Pricing
  • Help

Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:

  • CRM
  • e-Commerce
  • Accounting
  • Inventory
  • PoS
  • Project
  • MRP
All apps
You need to be registered to interact with the community.
All Posts People Badges
Tags (View all)
CFDI4.0 CartaPorte Multiple-companies email odoo.sh
About this forum
You need to be registered to interact with the community.
All Posts People Badges
Tags (View all)
CFDI4.0 CartaPorte Multiple-companies email odoo.sh
About this forum
  1. Miscellaneous
  2. Forum

How to Prevent Cross-Replication of Applications and Settings in a Multi-Company Environment?

Subscribe

Get notified when there's activity on this post

This question has been flagged
Multiple-companiesapps
1 Reply
3584 Views
Avatar
Dayron

¿Is there any way to prevent the applications and settings I configure for one of my companies in a multi-company environment from being replicated in the others? For example, I have electronic invoicing for two companies in different countries, which are unrelated, yet the configurations of one are being replicated in the other.

0
Avatar
Discard
Avatar
Gracious Joseph
Best Answer

In a multi-company environment in Odoo, managing configurations and applications independently for each company can sometimes be challenging because certain settings and applications are shared across all companies by default. However, Odoo provides mechanisms to isolate configurations and prevent cross-replication of settings.

Here’s how you can achieve this:

1. Understanding Multi-Company Configuration

  • Shared Data:
    • Some models and settings, such as users, apps, and certain configurations, are shared globally across companies.
  • Company-Specific Settings:
    • Other settings, like fiscal positions, taxes, and journals, can be configured per company.

2. Steps to Prevent Cross-Replication of Settings

A. Isolate Applications Per Company

  1. Activate Multi-Company Feature:
    • Go to Settings > Users & Companies > Companies.
    • Ensure each company is listed with the appropriate settings.
  2. Assign Users to Specific Companies:
    • Navigate to Settings > Users & Companies > Users.
    • Assign each user to their respective company under the Allowed Companies field.
    • Use the Default Company field to set the primary company for the user.
  3. Restrict User Access:
    • Ensure users are restricted to their assigned companies by enabling the multi-company rules:
      • Go to Settings > Technical > Security > Record Rules.
      • Check rules such as res.company to enforce isolation of company data.

B. Configure Applications Separately

Many applications, like Invoicing, Accounting, and Electronic Invoicing, need company-specific configurations. Here's how to isolate their settings:

  1. Electronic Invoicing:
    • Ensure separate journals, tax configurations, and fiscal positions for each company:
      • Go to Accounting > Configuration > Journals and create company-specific journals.
      • Set the Company field in each journal to the respective company.
    • Configure electronic invoicing independently for each company:
      • Go to Accounting > Configuration > Settings.
      • Switch the company context (via the dropdown in the top-right corner) and configure the settings separately.
  2. Company-Specific App Settings:
    • For apps like Sales, Purchases, and Inventory, switch the company context and configure independently:
      • For example, in Sales, create separate price lists, payment terms, and delivery methods for each company.
  3. Restrict Shared Modules:
    • Certain modules like HR or CRM might share configurations across companies. Use record rules to enforce isolation:
      • Navigate to Settings > Technical > Security > Record Rules.
      • Add a rule for the specific model (e.g., hr.employee for HR) to filter data by company:
        ['|', ('company_id', '=', False), ('company_id', '=', user.company_id.id)]
        

C. Prevent Shared Configurations in Global Settings

Some global configurations are shared by default (e.g., SMTP email servers, payment acquirers). You can isolate these by:

  1. Using Company-Specific Email Servers:
    • Go to Settings > Technical > Email > Outgoing Mail Servers.
    • Create a separate mail server for each company.
    • Assign the respective company in the Company field.
  2. Company-Specific Payment Acquirers:
    • Navigate to Settings > Payments > Payment Acquirers.
    • Configure a separate payment acquirer (e.g., PayPal, Stripe) for each company and assign it to the correct company.

3. Advanced Techniques

A. Use Record Rules for Data Isolation

Create custom record rules for critical models to prevent cross-replication of settings and records:

  1. Go to Settings > Technical > Security > Record Rules.
  2. Add a new rule for the model you want to isolate (e.g., account.journal).
  3. Use a domain like this:
    [('company_id', '=', user.company_id.id)]
    
  4. Assign the rule to the appropriate groups or users.

B. Custom Code for Deeper Isolation

For more complex scenarios, you can extend Odoo models or views to enforce company-specific logic programmatically.

Example: Restrict certain settings for a company

from odoo import models, api

class ResConfigSettings(models.TransientModel):
    _inherit = 'res.config.settings'

    @api.model
    def default_get(self, fields):
        res = super(ResConfigSettings, self).default_get(fields)
        if self.env.user.company_id.name == 'Company A':
            res['field_x'] = 'Company A Default Value'
        return res

4. Switching Companies for Configuration

Ensure you always switch to the relevant company context when configuring applications:

  • Use the company selector in the top-right corner of the Odoo interface to change the active company.
  • Configure settings, fiscal rules, or workflows for the selected company.

5. Best Practices

  • Test in a Sandbox: Always test multi-company configurations in a sandbox environment before rolling them out.
  • Document Configurations: Maintain clear documentation of what settings are applied to each company.
  • Train Users: Ensure users understand how to use the multi-company dropdown and their company restrictions.

By implementing these measures, you can effectively prevent the cross-replication of settings and applications in a multi-company Odoo environment. Let me know if you need further guidance or help implementing specific configurations!

0
Avatar
Discard
Enjoying the discussion? Don't just read, join in!

Create an account today to enjoy exclusive features and engage with our awesome community!

Sign up
Related Posts Replies Views Activity
How can I customise Odoo to fit my business needs?"
apps
Avatar
0
Apr 25
4
Multiple companies - how to differentiate views
Multiple-companies views-differentiation
Avatar
Avatar
1
May 25
3192
Timbrado de complementos de pago
CFDI4.0 odoo certification apps
Avatar
0
Aug 25
1
Community
  • Tutorials
  • Documentation
  • Forum
Open Source
  • Download
  • Github
  • Runbot
  • Translations
Services
  • Odoo.sh Hosting
  • Support
  • Upgrade
  • Custom Developments
  • Education
  • Find an Accountant
  • Find a Partner
  • Become a Partner
About us
  • Our company
  • Brand Assets
  • Contact us
  • Jobs
  • Events
  • Podcast
  • Blog
  • Customers
  • Legal • Privacy
  • Security
الْعَرَبيّة Català 简体中文 繁體中文 (台灣) Čeština Dansk Nederlands English Suomi Français Deutsch हिंदी Bahasa Indonesia Italiano 日本語 한국어 (KR) Lietuvių kalba Język polski Português (BR) română русский язык Slovenský jazyk slovenščina Español (América Latina) Español ภาษาไทย Türkçe українська Tiếng Việt

Odoo is a suite of open source business apps that cover all your company needs: CRM, eCommerce, accounting, inventory, point of sale, project management, etc.

Odoo's unique value proposition is to be at the same time very easy to use and fully integrated.

Website made with

Odoo Experience on YouTube

1. Use the live chat to ask your questions.
2. The operator answers within a few minutes.

Live support on Youtube
Watch now