Odoo Multi Warehouse eCommerce

Smart Fulfilment Across Every Location

Stop losing sales to invisible stock. Connect your entire warehouse network to your 

Odoo store and let the system decide where to fulfil from — automatically.

Odoo Multi Warehouse Module | Odoo 17 · 18 · 19 | eCommerce Fulfilment

Watch Video      Buy Now


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

Out of the box, Odoo eCommerce ties your online store to a single warehouse. That setup works well when you are operating from one location. But the moment your business grows beyond a single fulfilment point, things get complicated.

You end up with scenarios where one warehouse shows zero stock on the website while another has plenty, where orders go unfulfilled because the system could not see the full picture, and where your operations team is manually splitting and reassigning orders after the fact.

ℹ️ Important: The core issue is that standard Odoo cannot aggregate stock across warehouses for display on the website, nor can it automatically split a single online order into multiple delivery orders from different locations. This module fills both of those gaps completely.


👁️ 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.

🔍 Real World Scenario 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

Not every business needs the same fulfilment logic. A fashion retailer with three regional stores operates very differently from a manufacturer with two large distribution centres. This Odoo multi warehouse module gives you three distinct modes so you can match the system to how your operations actually work.

🏠 Standard Header Warehouse Default Odoo behaviour. All items source from one assigned warehouse. Best for simpler operations with a single fulfilment point.

📍 Single Warehouse per Line Each product line is assigned the single best-stocked warehouse from your allowed list. Keeps individual items consolidated while still using your full network.

🔀 Multi Warehouse Split Stock A single product line can be split across multiple warehouses simultaneously. Ideal for large orders where no single location holds the full quantity needed.

You can set a global default mode from Website Settings, and it applies automatically to all incoming online orders without any per-order configuration needed.


⚡ 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 backend 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.


👥 Guest Users and Public Shoppers Are Fully Supported

One often overlooked challenge with multi warehouse inventory visibility is access control. In standard Odoo, fetching stock data from multiple warehouses can trigger backend permission errors when the request comes from an unauthenticated or guest user session.

This module specifically handles that. Public shoppers and guest users browsing your eCommerce store see the same accurate aggregated stock data as logged-in customers — with no backend permission issues and no incorrect zero-stock displays caused by access restrictions.

For businesses where a significant portion of traffic comes from non-registered visitors, this is not a technical footnote. It is a direct revenue protection feature.


⚙️ Controlling Which Warehouses Appear on Your Website

Not every warehouse in your Odoo instance should be visible to eCommerce. You might have a returns processing centre, a staging warehouse, a bonded goods facility, or a location reserved purely for B2B wholesale orders. Exposing these to your online store would give customers an inaccurate picture of what is actually available for web fulfilment.

The module lets you define exactly which warehouses are "allowed" for website use. Only the stock from these approved locations gets included in the aggregated count shown on product pages. Restricted warehouses stay private and never surface on the frontend.

✅ Allowed Warehouse Config    ✅ Private Warehouse Restriction    ✅ Real-time Stock Sync    ✅ Oversell Prevention


🏢 Who Gets the Most Value from This Module

This is not a module for every Odoo eCommerce setup. It makes the most meaningful impact for businesses with genuine multi-location inventory challenges. If your online store operates from a single warehouse with no expansion plans, the standard Odoo setup is sufficient.

✅ Retailers with stock spread across multiple regional warehouses or store locations

✅ Distributors and wholesalers who run dedicated eCommerce alongside B2B channels

✅ Manufacturers with separate finished goods warehouses across geographies

✅ Businesses experiencing frequent oversell issues due to inaccurate website stock display

✅ Operations teams manually splitting and re-routing eCommerce orders after checkout

The module is compatible with both Odoo Community and Enterprise editions across versions 17.0, 18.0, and 19.0. It works on Odoo.sh and on-premise environments. Odoo Online is not supported.


💬 Closing Thought: 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

Q: How does the greedy fulfilment algorithm decide which warehouse to use? 

A: 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.


Q: Can I stop certain warehouses from being used for online orders? 

A: 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.


Q: What happens if the total stock across all warehouses is not enough to cover an order? 

A: 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.


Q: Do guest users and public shoppers see accurate stock counts? 

A: 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.


Q: Is this module compatible with Odoo Community edition? 

A: 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.

Buy Now


Sign in to leave a comment