Skip to main content
iVentureTeam
Barcode

Odoo Warehouse Management System: WMS Guide for Odoo 19 and 20

Set up the Odoo warehouse management system in Odoo 19 and 20: locations, putaway rules, routes, replenishment, barcode picking, cycle counts and 3PL limits.

Siddharth JambukiyaSiddharth JambukiyaOdoo Techno-Functional Consultant
October 27, 202615 min read1 view
Odoo Warehouse Management System: WMS Guide for Odoo 19 and 20 cover

Most WMS projects in Odoo fail on layout, not software: locations that do not match the shelves, routes nobody tested and putaway rules that never fire. Our Odoo implementation services start by walking your floor and building the warehouse in Odoo to match it.

This guide is for operations heads, warehouse managers and owners comparing Odoo with a dedicated WMS. If you run a transport or distribution business, also see how we set up Odoo ERP for logistics companies.

What is the Odoo warehouse management system?

The Odoo warehouse management system is not a separate product: it is the Inventory app with its warehouse settings switched on, plus the Barcode app for scanning. Each WMS feature sits behind a checkbox in Inventory settings.

Out of the box, Odoo receives and delivers in one step from one stock location. That is fine for a small shop, but a real warehouse needs the features below. All of them live in Inventory, Configuration, Settings.

WMS needOdoo setting to enableWhat it unlocks
Shelves, bins, zonesStorage LocationsA location tree such as WH/Stock/Zone A/Rack 1
Input, quality, pick, pack stepsMulti-Step RoutesTwo and three step receipts and deliveries
Capacity-aware putawayStorage CategoriesLimits by weight, product or package type
Picking several orders at onceBatch, Wave and Cluster TransfersBatch, wave and cluster picking
Cartons, pallets, totesPackagesPackage-level moves and cluster carts
Lot, serial and expiry controlLots and Serial Numbers, Expiration DatesTraceability and FEFO
Supplier-owned stockConsignmentStock you hold but do not own

Most of this runs in Odoo Community, but the Barcode app is Enterprise. Our Odoo Community vs Enterprise comparison shows which apps need a paid plan.

How do Odoo multi warehouse and location setups work?

In Odoo, a warehouse is a physical site with an address, and locations are the shelves, rooms and aisles inside it. You can run many warehouses in one database and move stock between them.

The Odoo warehouses documentation gives each warehouse a short code of up to five characters, such as WH or WHA, which prints on every document. Pick codes your team will recognize.

Locations are hierarchical. A bin called Refrigerator 1 can sit inside Zone A, inside WH/Stock. Each location has a type (internal, vendor, customer, transit, production, inventory loss), an optional storage category and its own barcode.

For an Odoo multi warehouse setup, keep these rules in mind:

  • One warehouse per site: each shop, depot or plant that holds stock should be its own warehouse, not a location.
  • Name for the floor: location names should match the labels on the racks, so a picker can find WH/Stock/A-03-02 without asking.
  • Barcode every location: in Odoo 20 you can print location labels as ZPL straight to a Zebra printer.
  • Decide transit early: inter-warehouse moves pass through a transit location, so agree who validates the arrival.

How do Odoo putaway rules and storage categories work?

Odoo putaway rules send incoming products to the right sub-location automatically, and storage categories add capacity limits so a full bin is skipped. Together they replace the "where do I put this?" question at the dock.

A putaway rule says: when this product or product category arrives in WH/Stock, store it in WH/Stock/Fruits. The Odoo putaway rules documentation requires the Store to location to be a sub-location of the arrival location.

The Sublocation option decides the bin. Last Used sends stock to the last location that held that product. Closest Location uses the locations tied to a storage category. Storage categories limit capacity by weight, product or package type.

Users do struggle here. One Odoo 17 user set two bins to hold five units each, received ten units, and saw all ten land in one bin, then wrote that they were "pretty confused by the putaway rules and product capacity restrictions".

In our experience, most "putaway not working" cases come from three causes: Multi-Step Routes is off, the Store to location is not a child of the arrival location, or the receipt lands in a different location than the rule expects. Test each rule with a real receipt before go-live.

Which receipt and delivery routes should your warehouse use?

Use one step for small, trusted flows, two steps when you need an input or output buffer, and three steps when receipts need quality checks or deliveries need a packing station. Routes are set per warehouse.

RouteReceiptsDeliveriesBest fit
One stepVendor to stockStock to customerSmall team, low volume
Two stepsInput, then stockPick, then shipSeparate dock and storage areas
Three stepsInput, quality, then stockPick, pack, then shipInspection on arrival, multi-item parcels

In three-step receipt, goods are not available for sales or production until they leave the quality area and reach stock. In three-step delivery, items are picked by the removal strategy, packed in a packing zone and moved to output before shipping.

Odoo 20 adds location-specific push routes. If one receipt puts some units in Gate A and some in Gate B, each group now follows the push rule of its own sub-location, which helps sites with several docks. See all 22 changes in our Odoo 20 Inventory release notes.

How does Odoo replenishment work across warehouses?

Odoo replenishment uses reordering rules for stock you keep on hand and Replenish on Order (MTO) for stock you buy or move only when an order arrives. Both can pull stock from another warehouse instead of a vendor.

A reordering rule has a Min and Max. When the forecast drops below Min, the rule creates a purchase or manufacturing order up to Max. The trigger is Auto by default, or Manual if you prefer to review the Replenishment report first.

For an Odoo multi warehouse network, set the Resupply From field on each shop or depot to name the central warehouse. Odoo then creates inter-warehouse transfers instead of purchase orders.

Odoo 20 makes three useful changes to Odoo replenishment:

  • Suggested levels: select reordering rules, click Suggest, pick a demand period such as the last 30 days, and Odoo sets new Min and Max values from demand history.
  • One Order button: Order and Order to Max are merged; ordering ahead now fills up to Max minus forecast.
  • Inter-company resupply: Resupply From now accepts warehouses of other companies, through an inter-company transit location.

Odoo barcode picking: batch, wave or cluster?

Odoo barcode picking supports batch, wave and cluster methods, and the right one depends on order volume, order size and whether you sort during or after the pick. All three need the Batch, Wave and Cluster Transfers setting.

MethodHow it worksBest forWatch out for
Batch pickingOne picker collects several whole orders, sorts at outputHigh volume, few fast-moving SKUsNeeds a sorting step after picking
Wave pickingOrder lines are split and grouped by location, category or ship timeMany orders across zones and cut-off timesLines must share one operation type
Cluster pickingPicker fills one package per order on a cart while walkingMixed orders that must be sorted on the spotUrgent orders cannot jump the queue

With Odoo batch picking, you prepare a batch from the Inventory overview, assign a responsible picker and a scheduled date, then pick it in the Barcode app. Dock, vehicle and vehicle category fields link the batch to dispatch.

The Odoo cluster picking documentation is frank that urgent orders cannot be prioritized and batches must be built beforehand, which "can lead to bottlenecks". Plan your cut-off times around that.

On the floor, scanners matter as much as settings. Odoo's barcode docs also cover RFID with CipherLab and Zebra readers, using GS1-based EPC codes, if you need to scan many items at once.

How do cycle counts and removal strategies keep stock accurate?

Odoo cycle counts recount chosen locations on a set number of days, and removal strategies such as FIFO and FEFO decide which stock leaves first. Together they keep the system matching the shelf.

By default Odoo schedules one physical count on 31 December. For an Odoo cycle count, open a location, set its Inventory Frequency in days (for example 30), then run the first count from Physical Inventory. Odoo sets the next date after each applied count, as the cycle counts guide explains.

A practical count plan for most warehouses:

  • Fast movers and high value: count every 30 days.
  • Picking faces: count after each replenishment wave if errors are frequent.
  • Bulk reserve: count every 90 days.
  • Everything else: keep the annual count.

Removal strategies include FIFO, LIFO, FEFO, closest location and least packages. FEFO needs Lots and Serial Numbers and Expiration Dates turned on, then uses each lot's removal date. Valuation is a separate choice, covered in our Odoo 20 inventory valuation guide.

Can Odoo run a 3PL or consignment warehouse?

Odoo can hold stock you do not own through its consignment feature, but billing many 3PL clients for storage and handling is not a standard Odoo WMS feature. Light 3PL work fits; a full 3PL business usually needs custom billing or a specialist system.

With Odoo consignment, you receive goods with an owner set to the supplier, and no purchase order is created. The stock stays theirs until it is sold. A warehouse can also belong to another company in the database.

For an Odoo 3PL setup, check these points before you commit:

  • Ownership: every receipt must carry the client as owner, or stock mixes.
  • Storage billing: per-pallet or per-day charges need a custom module or a recurring subscription built from stock data.
  • Client portals: clients usually want live stock views, which means portal work or an API.
  • Carrier labels: Odoo 20 sends package references to Sendcloud and lets you pick pickup points from the order.

What changed for warehouses in Odoo 20?

Odoo 20 is released (September 2026) and brings smarter reordering, better reporting and smaller floor improvements, not a new WMS. The table lists the changes that matter most to warehouse teams.

Odoo 20 changeWhat it means on the floor
Suggested reordering levelsMin and Max set from demand history and days of coverage
Stock aging reportMoves Analysis shows how old on-hand stock is, by month
Allocation reportAssign a receipt to a waiting delivery from the forecast report
Location-specific push routesUnits landing at different gates follow different routes
ZPL location barcodesLocation labels print straight to Zebra printers
Simplified returnsNo return wizard; a draft return opens directly
CMR documentRoad consignment note printed from deliveries and dispatch batches

The Barcode app also shows an instructions preview on each operation type, so supervisors can see the steps a picker will follow. That change is Enterprise only.

Odoo WMS vs a dedicated WMS: when is Odoo enough?

Odoo WMS vs dedicated WMS: When is Odoo enough?

Odoo WMS is enough when your bottleneck is visibility and discipline; a dedicated WMS is worth it when the bottleneck is automation, labour optimization or 3PL billing. Most small and mid-size firms are in the first group.

FactorOdoo Inventory and BarcodeDedicated WMS plus Odoo
SitesOne to several warehousesLarge or highly automated sites
PickingBatch, wave, cluster with scannersPlus pick-to-light, conveyors, robots
PutawayRules and storage categoriesDynamic slotting and re-slotting
CountsCycle counts by locationContinuous counts tied to tasks
3PL billingCustom module neededUsually built in
Accounting linkNative, same databaseIntegration you must build

A common middle path is to start on Odoo and add a specialist WMS only for one high-volume site later, connected to Odoo through its API, so finance and purchasing stay in one database.

Odoo warehouse management by industry

The same Odoo WMS features are set up differently by industry, because each sector loses money in a different place. The table shows where we usually focus.

IndustryPain or cost driverOdoo approachHow iVentureTeam helps
Food and FMCGExpired stock, recallsLots, expiry dates, FEFO, two-step receiptSet removal dates, recall drill
Wholesale distributionPicking errors, stock-outsBatch or wave picking, reordering rulesDesign routes and count plan
eCommerceSame-day cut-offs, parcel volumeCluster picking, three-step delivery, carriersConnect stores and carriers
ManufacturingComponents short at the linePick components, resupply from central storeLink Inventory to Odoo for manufacturing
Retail chainsShop stock out of balanceResupply From a central warehouseSet inter-warehouse rules
Light 3PLMixed ownershipConsignment and owner on receiptsBuild storage billing

Not sure which apps you need? The Odoo app selector suggests a starting set by industry.

How much does an Odoo WMS rollout cost, and how do you plan it?

An Odoo WMS rollout costs your Odoo licenses plus implementation, and implementation size depends on sites, routes and scanning scope. Our published ranges are guides, not fixed quotes.

On the Odoo pricing page, billed yearly in the US, Standard is US$31.10 and Custom US$61.00 per user a month; in India they are Rs 725 and Rs 1,350. Scanners and label printers are bought separately.

Odoo's docs note that the Barcode app is available to Light Users, priced at US$8.90 or Rs 195 a month, so pickers who only scan may not need full licenses. Our Odoo 20 Light User guide explains the rules.

Our published Odoo implementation cost ranges are small $3k to $9k (4 to 8 weeks), mid-size $9k to $27k (8 to 14 weeks) and large $27k to $150k+ (12 to 24 weeks). Data migration adds $1.2k to $9k depending on the source system and years of history.

A rollout order that works:

  1. Walk the floor: draw every zone, rack and bin, and the path goods take.
  2. Build locations: create the location tree and print barcodes before anything else.
  3. Pick routes: choose one, two or three steps per warehouse and test them with real orders.
  4. Add putaway and replenishment: write putaway rules, then reordering rules with Suggest in Odoo 20.
  5. Choose a picking method: batch, wave or cluster, based on your order profile.
  6. Load and count stock: import opening stock by location, then run a full count.
  7. Train and go live: train pickers on scanners, then start cycle counts in week one.

For a first number on your scope, use the Odoo implementation cost calculator.

How iVentureTeam helps with Odoo warehouse management system rollouts

Planning an Odoo WMS? Price it first

We build your warehouse in Odoo the way it exists on the floor, then test every route with real orders before go-live. We have delivered 150+ ERP projects across 35+ countries with 40+ Odoo specialists over 13+ years.

  • Floor mapping: zones, racks and bins turned into an Odoo location tree with barcode labels.
  • Routes and putaway: receipts, deliveries, putaway rules and storage categories tested on live examples.
  • Picking and scanning: batch, wave or cluster picking set up in the Barcode app, with hardware advice.
  • Stock migration: opening stock by location, lot and expiry, moved with our Odoo migration services.
  • Integrations: carriers, marketplaces or a specialist WMS connected to Odoo.

Odoo warehouse management case study: KMF Technologies

An IT hardware distributor in The Gambia replaced manual product tracking with Odoo Inventory, Sales, Purchase and Accounting in an 8-week phased rollout. KMF Technologies supplies IT services, hardware and network infrastructure across West Africa.

Before Odoo, products and categories lived in hand-kept lists. There was no real-time stock view, which caused overstocking and stock-outs, and customers waited while staff checked with sales, purchase and store teams.

We ran a seven-phase project. We defined warehouses, product categories, stock locations and units of measure, set role-based access, imported the full product master with cost and sale prices, and built a chart of accounts for The Gambia.

KMF now runs a purchase-to-delivery flow with real-time stock across warehouses and fewer errors in stock entries. Read the KMF Technologies Odoo inventory case study.

The bottom line on the Odoo warehouse management system

For most distributors, eCommerce sellers and manufacturers, the Odoo warehouse management system is enough, as long as locations, routes and putaway rules match the real floor. Buy a dedicated WMS only for automation, labour optimization or true 3PL billing.

Start with the floor plan, not the software. Switch on only the settings you need, test every route with real orders, and use Odoo 20's suggested reordering levels once you have a few months of demand history.

Ready to map your warehouse in Odoo?

Plan my Odoo warehouse

Bring your floor plan and order profile, and we will show you how they fit in Odoo. Plan your Odoo warehouse setup with our team, call +91-90235-15208, or email business@iventureteam.com.

Frequently Asked Questions

Does Odoo have a warehouse management system?

+

Yes. Odoo Inventory provides WMS features such as locations, putaway rules, multi-step routes, reordering rules and cycle counts. The Barcode app, part of Odoo Enterprise, adds scanning for receipts, picking and counts.

Is Odoo WMS free?

+

Most warehouse features run in Odoo Community, which has no license fee. The Barcode app and some extras need Odoo Enterprise, priced per user. Implementation, scanners and label printers cost extra either way.

How do putaway rules work in Odoo?

+

A putaway rule moves a product or category from an arrival location, such as WH/Stock, to a sub-location, such as WH/Stock/Fruits. Multi-Step Routes must be on, and storage categories can add capacity limits.

What is the difference between batch, wave and cluster picking in Odoo?

+

Batch picking groups whole orders and sorts them after the pick. Wave picking splits order lines and groups them by location or ship time. Cluster picking sorts items into one package per order while picking.

Can Odoo manage multiple warehouses?

+

Yes. One database can hold many warehouses, each with its own routes and locations. The Resupply From field lets shops or depots refill from a central warehouse, and Odoo 20 extends it to other companies.

How do cycle counts work in Odoo?

+

Set an Inventory Frequency in days on a location, then run the first count from Physical Inventory. After each applied count, Odoo schedules the next one. Storage Locations must be enabled.

Can Odoo be used by a 3PL company?

+

Odoo can store stock owned by clients through its consignment feature. Billing clients for storage and handling is not standard, so most 3PLs add a custom billing module or connect a specialist WMS.

Which barcode scanners work with Odoo?

+

Odoo supports USB scanners, Bluetooth scanners paired with a phone or tablet, and mobile computers with a built-in scanner. For RFID, Odoo's docs recommend CipherLab and Zebra RFID devices. Test your model first.

Do warehouse pickers need a full Odoo user license?

+

Not always. Odoo's docs say the Barcode app is available to Light Users, who cannot open the Inventory app. Light Users cost US$8.90 or Rs 195 a month, but you need at least one full user.

What is new for warehouses in Odoo 20?

+

Odoo 20 adds suggested min and max levels for reordering rules, a stock aging report, a new allocation report, location-specific push routes, ZPL location labels and simpler returns.

Ready to put this into action?

Talk to iVentureTeam about Odoo, AI automation, or custom development — get a free, no-obligation consultation.