I want to know if there is a way to keep the warehouse tree above the Company master so that a single warehouse tree structure can be reused across multiple companies.
Currently, the warehouse hierarchy is tied to individual companies, which makes it difficult to maintain a common structure for all companies.
Is there a recommended approach, workaround, or feature planned to allow a shared warehouse structure?
ERPNext v15 supports multiple companies in one instance, but it does not yet provide full data isolation. Core doctypes like Items, Customers, and Suppliers remain globally visible, even when permissions are applied. Scripts also run across all companies, which makes privacy and compliance difficult to guarantee.
For now, the recommended approach is one company per ERPNext instance. Multi-company setups are technically possible using Role Permissions and filters, but they are complex to maintain and carry risks. If ERPNext introduces company-level authorization in the future, multi-company management will become much easier and safer.
ERPNext v15 technically allows you to create multiple companies in a single instance, but the architecture is not designed for true data isolation. Here’s the breakdown:
Default Behavior
Item Master, Customer, Supplier, and other core doctypes are shared across all companies.
Role Permissions can restrict transactions (like invoices or journals), but masters remain visible.
Client/Server Scripts apply globally, so they affect all companies in the instance.
Limitations
Item visibility: Even if you restrict permissions, users from Company A can still see items belonging to Company B.
Scripts: Any customization applies system-wide, not company-specific.
Privacy risk: Without isolation, sensitive data can leak between companies.
Workarounds
Use Role Permission Manager to limit transaction access.
Add custom fields like “Company Ownership” to masters, then filter reports and forms.
Apply user permissions tied to company filters (though this is fragile).
For strict separation, spin up separate ERPNext instances per company — this avoids cross-company bleed.
Core Fix Needed
ERPNext’s authorization model must evolve to support company-level isolation at the DocType level.
If the Frappe team implements this, multi-company setups would become straightforward and secure.
This is the issue for multiple company setup. And the solution for the future dev of the system.
I believe the design is like this - so that companies under one consolidated group with similar items/customers/suppliers/scripts (not employees/warehouses unfortunately) can share data …
I guess what you are trying to say is that there should be an option to isolate the masters from other users
Am I right?
Also would you know how to consolidate companies which are on seperate instances/sites/servers especially complicated ones where the Chart of Accounts are not similar?
The OP here is asking for advice about how to share data between companies. That’s literally the opposite of the use case you are providing advice for.
@mihir-kandoi i agree that currently this functionality is not available. However, consider a scenario where a single warehouse is used to manage inventory for multiple companies operating from the same physical location.
NetSuite provides an option to associate a warehouse master with multiple legal entities, while still maintaining the stock ledger at the individual company level. This approach allows inventory ownership and accounting to remain company-specific, even though the physical warehouse is shared.
Implementing this would significantly reduce the need to duplicate warehouse records at the company level, especially in cases where several warehouses are shared across a group of companies.
Additionally, inventory reporting would become much cleaner and more efficient. Selecting a single warehouse would allow users to view item stock balances across multiple companies, and conversely, selecting an item would show its availability across companies within that shared warehouse.
@Maveez You can easily achieve this in inventory reports. We are doing the same, and our structure is like this:
Main Warehouse - Is Group: Yes
Sub Warehouse A
Sub Warehouse B
In both sub-warehouses, add Parent Warehouse as Main Warehouse. This way, you can easily get reporting at a consolidated level.
Also, if you want automatic warehouse selection, you can keep the same warehouse name in different companies and take the abbreviation from the company abbr. Write a custom script to auto-select warehouses based on company/branch, etc.
no brother the use of multicompany in EPRNext is not as perfect as Netsuite and other ERPNext. In SAP B1 you create a New Company via Creating new database. In ERPNext you don’t do that it is on 1 instance one database structure. So, the effect of this there are functions and data that other user can see by the other user with dif Company entity. So as far as recall we never suggest implementing this Multicompany setup because of limitation of isolation of all master data per user role. If ERPNext resolve this issue just like other ERP with full isolation of all data if you create a multicompany setup. That is why when there is multiple Company set up, we always suggest stand-alone instance each deployment then if the management need to consolidate some other report, we just use rest api to connect them all. Like for example the Item. If you create an Item for specific company other can still see the Items that are not connected to the entity. The reason we don’t implement this is the risk of privacy per entity. Brand and Entity/Company are dif thing. I know you can create a Branch/Cost Center/ Profit Center in Dimension. If I recall what industry is that it is a manufacturing company. with multiple Entity. We try the multitenancy as well is still failed to deliver what we want.
@ARK_143 Haha, I see your point, but I think you’re overlooking the real flexibility that ERPNext offers. Sure, the multi-company setup in ERPNext isn’t as “strict” in terms of database isolation as you’d get with SAP B1, but that’s kind of what makes it unique!
ERPNext’s approach to multi-company within a single instance isn’t about enforcing rigid isolation—it’s about offering a more fluid, interconnected experience. Sure, there’s some visibility between companies, but that’s a huge advantage when you need to work across multiple entities or subsidiaries. I mean, it’s like the Swiss Army knife of ERPs—super customizable!
And as for privacy, if you’re setting up your roles and permissions well (which ERPNext lets you do in detail), the “data leakage” you’re talking about can be minimized easily. You can lock down sensitive data to specific users or companies, so that no one from another company can see it.
Also, using REST APIs for consolidation is a cool workaround, but imagine not having to deal with all those external connections. With ERPNext, the integration possibilities are endless and pretty smooth—without needing to jump through extra hoops.
I get where you’re coming from, but I think once you get used to how ERPNext works, you’ll see it’s not about perfection—it’s about versatility and the ability to adapt to different business models. Maybe it’s just a matter of finding the right balance! Wouldn’t hurt to give it another shot and see if it has something you missed.
here’s what I mean this risk for privacy compliance for each entity and this kind of multicompany is not ISO standard in terms of Privacy Policy for each Entity. The “Food” Category must not show in the Demo Company because this is tag to the Company A.
We also follow government compliance we cannot control what people need to see what they want to see. So basically, it is not possible to implement this multicompany that there is risk in terms of privacy compliance. If you will try to apply for CAS of Certified Accounting System this will be the main concern of the Auditor.
So, we will back to Option 1 to do the stand alone each of company.
This multicompany is applicable to those company who really don’t have a capital to buy additional instance. I will say again it is dowable to create multicompany, but you need to modify some internal doctype and permission per user role. And also, you can custom server script and client script but in the end, this not recommend for a standard implementation of a Global Compliance due to isolation problem.
I remember there was a time ERPNext Team has problem with server script/client script that’s why they disable by default. Same issue for Isolation of master/data.
And lastly if a company has no problem for compliance this is applicable. But this is not acceptable to all type of businesses.
Actually, we suggest multiple companies where users have use cases like:
The parent company is the same, but branches or services are different (e.g., Car Showroom and Car Service Center)
Multi-partner model where inventory operations are conducted under different company names (co-branded or co-ownership)
User permissions are generally given for warehouse and company, so one can restrict access accordingly.
However, I agree that if both companies are completely different entities, one should create different sites and use Frappe webhooks to sync data from one site to another.
Let me know if still any issues you facing, I am happy to provide suggestions
You are very entitled to your own opinions about best practices, but nothing you are saying is actually answering the question that was asked in the original post. The original poster has asked you to take your concerns to another thread. Please respect that request.