How to Show Multi-Warehouse Stock in Odoo eCommerce
Odoo Multi Warehouse Module | Odoo 17 · 18 · 19 | eCommerce Fulfilment
A customer visits your Odoo store, adds a product to their cart, and gets told it is out of stock. But you know for a fact that your warehouse in another city has thirty units sitting on a shelf. That is not a stock problem. That is a visibility problem, and it costs you sales every single day.
The cr_website_multi_warehouse module by Creyox Technologies is built specifically to solve this. It connects your Odoo eCommerce store to your entire warehouse network, aggregates stock in real time, and automatically routes online orders to the right locations without any manual involvement.
Why Standard Odoo eCommerce Falls Short for Multi-Location Businesses
When your business operates from a single fulfilment point, Odoo eCommerce works exactly as expected. The problem starts when you add a second warehouse a regional depot, a retail store used for fulfilment, a third-party logistics location, or a manufacturing facility that ships direct. Standard Odoo can only assign one warehouse to your eCommerce website. Every product page reflects the stock of that one warehouse, regardless of what is sitting in your other locations. A customer sees "Out of Stock" while you have thirty units in a neighbouring city. The sale is lost. Your team then manually checks other locations, re-creates delivery orders, and updates records by hand every single time.
The cr_website_multi_warehouse module removes that limitation entirely. It aggregates stock from all your allowed warehouses into a single accurate figure on the product page, and when an order comes in, it automatically routes each item to the warehouse best positioned to fulfil it.
What Your Customers See on the Product Page
When a shopper lands on a product page in your Odoo store, they see a single stock count. With this Odoo multi warehouse eCommerce module installed, that number is no longer just the inventory of one warehouse. It is the combined free stock from every location you have marked as allowed for website fulfilment.
This matters enormously for customer confidence. Showing accurate availability reduces cart abandonment and builds trust. And because the module calculates this in real time, the number updates dynamically as orders come in or stock moves between locations.
You sell office chairs. Your London warehouse has 4 units and your Manchester warehouse has 9 units. Without this module, your website shows 4. With it, your website correctly shows 13 and the system decides which warehouse fulfils each order automatically when checkout happens.
Three Fulfilment Modes Built for Different Business Realities
The module gives you three ways to handle fulfilment logic, configurable globally from Website Settings so the same rules apply to every incoming online order. The first mode, Standard Header Warehouse, is standard Odoo behaviour all items fulfil from one assigned warehouse. This is there for businesses who only need multi-warehouse stock display without splitting orders.
The second mode, Single Warehouse per Line, assigns each product line to the single best-stocked warehouse from your allowed list. Each item ships from one location, but different items in the same order can come from different warehouses. This prevents unnecessary splits within a single line while still using your full network.
The third mode, Multi Warehouse Split Stock, is the most advanced. A single product line can be sourced from multiple warehouses simultaneously. If a customer orders 20 units and no single location has enough, the system splits the quantity across your network automatically. This is the right mode for large-volume orders or businesses with stock spread thinly across many locations.
How the Greedy Fulfilment Engine Actually Works
When a customer confirms their order and payment goes through, the module gets to work immediately. The system scans every warehouse you have designated as allowed, evaluates stock levels for each product in the order, and assigns fulfilment to the location with the best available quantity.
For example: if a keyboard has the most stock in your Chicago depot and a mouse has the most in your New York hub, the system assigns Chicago for the keyboard and New York for the mouse. Two separate delivery orders are created in the back-end instantly one per warehouse with no manual input required.
The system also prevents overselling by blocking checkout entirely if the aggregated stock across all allowed warehouses cannot cover the requested quantity. Your customers never place an order you cannot fulfil.
Oversell Prevention and Guest User Support
Two operational problems that come up repeatedly in multi-warehouse eCommerce are overselling and guest user access errors. This module addresses both.
On overselling: if the total combined stock across all your allowed warehouses cannot cover the quantity a customer is trying to order, checkout is blocked before the order is confirmed. The customer is notified and the order is never created. You do not end up with confirmed orders you cannot fulfil.
On guest users: standard Odoo can trigger backend permission errors when unauthenticated users request stock data from multiple warehouses. The module specifically handles this so public shoppers and guest users see the same accurate aggregated stock counts as logged-in customers with no errors and no incorrect zero-stock displays.
Controlling Which Warehouses Are Included
Not every warehouse in your Odoo instance should feed your online store. Returns processing centres, staging warehouses, bonded goods facilities, and B2B-only locations should stay off the website entirely. The module lets you define exactly which warehouses are "allowed" for eCommerce. Only stock from these approved locations appears in the aggregated count on product pages. Everything else stays private.
Who Gets the Most Value from This Module
This module makes the biggest impact for retailers with stock spread across multiple regional warehouses or physical store locations used for online fulfilment, distributors running eCommerce alongside B2B wholesale from separate inventory pools, manufacturers shipping finished goods direct from multiple production sites, and operations teams currently spending time manually splitting and re-routing eCommerce orders after checkout.
If your online store runs from a single warehouse with no plans to expand beyond one location, the standard Odoo eCommerce setup is sufficient.
Fulfilment Intelligence Is a Competitive Advantage
Customers do not care which warehouse their order ships from. They care that the product shows as available, that their order goes through cleanly, and that it arrives on time. The cr_website_multi_warehouse module makes all three of those things more reliable by removing the manual work and visibility gaps that hold multi location eCommerce businesses back.
If your Odoo store is consistently showing lower stock than you actually have, if your team is manually intervening to split orders after checkout, or if guest shoppers are seeing zero stock due to backend access errors this module addresses each of those friction points directly. Smarter fulfilment is not a luxury for scaled businesses. It is the foundation of a store that customers trust and return to.
Frequently Asked Questions
The system scans all warehouses you have designated as allowed for website fulfilment and selects the one with the highest available stock for each product line. In the split stock mode, if a single warehouse cannot cover the full quantity ordered, the remaining units are sourced from the next best-stocked location automatically. No manual selection is needed at any point in this process.
Can I stop certain warehouses from being used for online orders?
Yes. You define a list of allowed warehouses in your Website Settings. Only these locations contribute to the aggregated stock count on product pages and are eligible for order fulfilment. Any warehouse not included in the allowed list stays private and is invisible to your eCommerce store entirely.
You should carefully review the legal statements and other conditions of use of any website which you access through a link from this Website. Your linking to any other off-site pages or other websites is at your own risk.
The module prevents overselling by blocking the checkout process if the combined available stock across all allowed warehouses is insufficient to fulfil the requested quantity. The customer is notified before completing the purchase, so you never end up with a confirmed order you cannot ship.
Yes. The module is specifically built to handle stock visibility for unauthenticated users without triggering backend access errors. Guest shoppers see the same accurate aggregated stock data as registered customers, which means your public-facing product pages always reflect real availability regardless of who is browsing.
Yes, the module works with both Odoo Community and Enterprise editions across versions 17.0, 18.0, and 19.0. It is supported on Odoo.sh and on-premise deployments. It is not compatible with Odoo Online hosted environments. It also requires the companion cr_multi_warehouse_sale_order module as a dependency for Community edition users.