Multi-Company Product Visibility Control
by Odoo GlobalOps https://apps.odoo.com/apps/modules/browse?search=globalops$ 15.00
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
Discuss (mail)
|
| Lines of code | 202 |
| Technical Name |
product_multi_company_visibility_go |
| License | LGPL-3 |
| Website | https://apps.odoo.com/apps/modules/browse?search=globalops |
| Versions | 18.0 19.0 |
Multi-Company Product Visibility Control
Assign products, product categories, and product attributes to a specific set of companies -- not just one and not all. Granular multi-company visibility, exactly where you need it.
Why This Module?
Odoo's default company field on products is a many-to-one: you can leave it blank (visible to every company) or assign it to exactly one company. There is no built-in way to say "this product belongs to Company A and Company B but not Company C" -- without duplicating the product record.
- No selective sharing between a chosen subset of companies
- Products, categories, and attributes have no granular company control
- Workarounds force duplication of records, leading to data inconsistency
- Product categories and attributes have no company field at all by default
Multi-Company Product Visibility Control solves this by adding an Allowed Companies many-to-many selector to products, product categories, and product attributes -- backed by native Odoo record rules so the filtering is automatic, reliable, and requires zero extra code from your team.
Selective Company Assignment
Pick exactly which companies can see a product, a category, or an attribute. One company, two, or any combination -- your choice.
Covers Three Key Models
Allowed Companies is added to product.template, product.category, and product.attribute -- all the building blocks of your product configuration.
Native Record Rule Enforcement
Visibility is enforced at the database layer through Odoo's built-in record rules -- not in the UI layer. Users simply cannot read restricted records.
Automatic Data Migration
On install, any product that already had a single company assigned is automatically migrated -- the existing company moves into the new Allowed Companies list with no data loss.
Global by Default
Leave the Allowed Companies list empty and the record remains visible to every company, preserving the standard Odoo behavior for shared catalog items.
Clean Many2Many Widget
The Allowed Companies field appears as a tag-style widget on all affected form and list views, making company assignment intuitive and self-documenting.
1. Restrict a Product Category to Specific Companies
Open any product category and select the companies that should have access to it in the new Allowed Companies field. In this example the category is assigned to company TEST. Any user whose active company is not TEST will not see this category at all -- it simply disappears from their search results and dropdowns.
Allowed Companies set to TEST on a product category
User without company TEST searches -- category does not appear
2. Restrict a Product Attribute to Specific Companies
The same Allowed Companies field is available on product attributes. Assign company TEST to an attribute and it becomes invisible to every user operating under a different active company. This keeps attribute lists clean and prevents irrelevant configurators from appearing in the product form for companies that do not use them.
Allowed Companies set to TEST on a product attribute
User without company TEST searches -- attribute does not appear
3. Restrict a Product to Specific Companies
On any product template, use the Allowed Companies many-to-many tags field to select the companies that should have access. Assign it to company TEST and the product becomes fully invisible to all users not operating under TEST -- it will not appear in product searches, sales order lines, purchase orders, or any other workflow.
Allowed Companies set to TEST on the product template
User without company TEST searches -- product does not appear
4. Add the User's Company -- Full Visibility Restored Instantly
To grant access to an additional company, simply add it to the Allowed Companies list. In this example Chicago is added alongside TEST on the product, category, and attribute. As soon as a user switches their active company to Chicago, all three records become visible again -- no duplication, no extra configuration, and no code changes required.
Chicago added to Allowed Companies on the product, category, and attribute
Chicago user now sees the product and all related data
No Record Duplication
Share a single product across exactly the right companies without copying it -- your catalog stays clean, reports stay accurate, and maintenance stays simple.
Controlled Catalog per Company
Each operating company sees only the products, categories, and attributes that are relevant to it -- reducing noise and configuration errors from users picking the wrong items.
Enforced at the Database Layer
Restrictions are applied through Odoo's native record rule engine -- not UI tricks. Restricted records cannot be read, searched, or referenced by unauthorized companies in any flow.
Covers the Full Product Configuration
Products, categories, and attributes are all controlled -- so the entire product setup experience is scoped correctly for each company from top to bottom.
Zero Migration Risk on Install
Existing products with a single company assigned are migrated automatically. Existing behavior is preserved and no manual cleanup is required after installation.
Ideal for Holding Groups & Franchises
Perfect for multi-brand groups, franchise operations, and shared-service structures where some items are common while others belong to a specific subset of companies.
Please log in to comment on this module