Flectic
/learn · Odoo Inventory module

Odoo Inventory, explained for SMEs evaluating ERP stock and warehouse management

Odoo Inventory is the stock and warehouse application inside the Odoo suite — covering receipts, internal transfers, deliveries, routes, putaway, replenishment, and real-time valuation. This guide walks through the module's structure, daily operations, and how it maps to the Microsoft Dynamics 365 inventory equivalent when you are comparing platforms.

What Odoo Inventory actually is

Odoo Inventory is the inventory and warehouse management application within Odoo. It covers stock moves, lead times, and automated replenishment, and it functions both as an inventory application and a warehouse management system in a single app.

The defining design choice is the double-entry stock model. Every operation in Odoo Inventory is a stock move between two locations — there is no separate stock input, output, or transformation document. Stock is always traceable and nothing disappears, because every change in on-hand quantity is a debit from one location and a credit to another.

For an SME migrating from spreadsheets or a basic POS, this matters: you get enterprise-style traceability without configuring separate input/output/transit journals. For teams coming from Dynamics 365, it is closer to how Business Central models item ledger entries than how the SCM Warehouse Management module models directed work.

Warehouses, locations, quants, and stock moves

Odoo Inventory structures the stock domain around four nested concepts:

Warehouses handle the broader organization and distribution of stock across different physical sites. Warehouses and their child locations are configured under Inventory app > Configuration > Warehouses. Each warehouse carries default incoming, outgoing, and stock locations.

Locations represent specific physical or logical storage areas within a warehouse — or partner and customer sites. To view stock at a single location, go to Inventory app > Configuration > Locations, select the location, and use the Products smart button.

Storage Locations must be enabled under Configuration > Settings to model granular bin-level locations within a warehouse. The Multi-Step Routes feature must also be enabled to unlock routes and putaway rules.

Stock Quants are the on-hand quantities per product, lot, package, and location — the double-entry ledger. Stock Moves are the atomic operation: every receipt, transfer, and delivery is a move between two locations, so traceability is inherent rather than bolted on.

  • Warehouse — the physical site plus default in/out/stock locations.
  • Location — configurable child of a warehouse, enabled via the Storage Locations setting.
  • Stock Quant — on-hand quantity per product/lot/package/location.
  • Stock Move — the atomic operation; receipts, transfers, and deliveries are all moves.

Daily operations: receipts, transfers, deliveries

Daily operations in Odoo Inventory are grouped into three document types surfaced on the Inventory app dashboard: Receipts (incoming stock, typically purchase-order driven), Internal Transfers (moves between locations or warehouses), and Deliveries (outgoing stock, typically sales-order driven).

Each warehouse supports configurable multi-step workflows for both receiving and shipping. One-step routes move goods directly between source and destination. Two-step receipts route incoming goods through an input location before stock, and two-step deliveries pick then ship — separating receiving and quality from put-away or shipping. Three-step receipts add an explicit quality step between input and storage, and three-step deliveries add a pack step between pick and ship.

These flows are configurable per warehouse under Inventory > Configuration > Warehouses, which means a single Odoo database can run a lean one-step flow for a small distribution site alongside a three-step quality-gated flow for a regulated warehouse — without custom code.

Odoo Inventory receipt and delivery step options
FlowReceipt stepsDelivery stepsBest for
One-stepReceive to stockShip from stockSimple sites, low-volume receiving
Two-stepInput → stockPick → shipQuality check before put-away or dispatch
Three-stepInput → quality → stockPick → pack → shipRegulated goods, audit-heavy operations

Routes, putaway rules, and replenishment

Routing and replenishment in Odoo Inventory are layered, and this is where the module earns its warehouse-management credentials.

Routes are pre-configured per warehouse and govern how stock moves through locations — buy, make, Make To Order (MTO), and manufacture. Routes are composed of push and pull rules, and are edited under Inventory > Configuration > Warehouses on the warehouse form.

Putaway rules automatically direct products to specific storage locations on receipt. They require the Multi-Step Routes feature and are configured under Inventory > Configuration > Putaway Rules. Functionally they are the Odoo equivalent of directed put-away logic in a dedicated WMS.

Odoo provides three replenishment mechanisms, selectable per product: reordering rules (min/max), the Make To Order (MTO) route, and the Master Production Schedule for manufacturing. Inter-warehouse replenishment lets one warehouse resupply another using reordering rules combined with the 'X: Supply Product from Y' route on the product form.

  • Reordering rules — min/max triggers that generate draft purchase or manufacturing orders.
  • MTO route — order-triggered replenishment that pulls stock through the supply chain.
  • Master Production Schedule — manufacturing-facing demand planning.
  • Inter-warehouse resupply — one warehouse feeds another via the 'Supply Product from' route.

Valuation, landed costs, and reporting

Stock valuation in Odoo 19 was redesigned, so the behavior teams upgrading should expect is materially different from earlier releases. The Odoo 19 valuation cheat sheet is explicit: before Odoo 19, the Perpetual accounting method was implemented by posting real-time accounting entries at each stock movement, which created a lot of journal entries. Odoo 19 replaces that with two accounting methods — Periodic (at closing) and Perpetual (at invoicing) — and no longer posts a journal entry on every individual stock move. Under Perpetual (at invoicing), vendor bills are posted as assets (stock valuation) and cost of goods sold is recognized when goods are sold.

This is an important correction to the legacy mental model many teams carry. If you read older Odoo tutorials, they describe 'automated inventory valuation creates real-time journal entries on every stock move' — that was the pre-19 behavior. On a current Odoo 19 database, do not expect per-move journal entries; expect valuation to settle at invoicing/closing under the new accounting-method toggle.

Landed Costs allocates additional costs — freight, insurance, customs duties — to product valuation. It is enabled under Inventory > Configuration > Settings in the Valuation section, and is especially relevant for import-heavy distributors who need true landed cost of goods rather than vendor-invoice-only valuation.

Stock and on-hand inventory are viewed under Inventory > Reporting > Stock. The Inventory Valuation documentation hub links to the Stock report, Locations report, Moves history report, Inventory dashboards, Landed costs, and Valuation by lots and serial numbers — so reporting is centralized rather than scattered across submenus.

The Dynamics 365 inventory equivalent

Because Flectic implements both Odoo and Microsoft Dynamics 365, the inventory mapping is a question we get on nearly every evaluation. The equivalent depends on which D365 tier you are comparing against.

On Dynamics 365 Business Central — the SME-tier ERP most directly comparable to Odoo for mid-market and wholesale — inventory is managed at the Item level, with Item Variants and Stock Keeping Units per Location, under the Inventory module. Warehouses are modeled as Locations, and stock is moved between them via Transfer Orders, with goods tracked as 'in transit' during the move. Business Central distinguishes basic Inventory (item ledger entries, simple receive and ship) from Warehouse Management (directed pick, put-away, and ship with bins and zones) — a similar split to Odoo's stock moves versus advanced routes and putaway.

On Dynamics 365 Supply Chain Management — the enterprise tier — the equivalent is split across two distinct modules that together cover what Odoo Inventory does in a single app. The Inventory management module covers inbound operations, quality assurance, inventory activities (counting, transfers, journals), and outbound operations. The Warehouse management module covers directed receiving, put-away, picking, packing, shipping, wave processing, and cycle counting, driven through the Warehouse Management mobile app.

The architectural observation — not a quality judgment — is that Odoo bundles inventory and warehouse management into one application, while D365 SCM splits the same scope across two coordinated modules. D365 SCM also offers capabilities Odoo does not natively match, including advanced Transportation Management, a standalone Landed Cost module, and Product Information Management as its own domain. Business Central's finance depth is enterprise-grade. Odoo's advantage is integrated app-suite modularity and faster SME setup, not superior warehousing depth.

Odoo Inventory concepts mapped to Dynamics 365 equivalents
Odoo InventoryBusiness CentralSupply Chain Management
WarehouseLocationSite + Warehouse
LocationLocation (basic)Warehouse + Bin (WMS)
Stock MoveItem journal / transfer orderInventory journal / WMS work
Putaway RuleDirected put-away (WMS)Location directives
Routes / MTOOrder planningCoverage planning / coverage groups

When each platform fits an SME

As a dual-platform implementation partner, Flectic does not default to one stack. The decision usually comes down to three factors: existing Microsoft licensing, the depth of finance-ops integration required, and how much of the broader app suite you want from a single vendor.

Odoo Inventory fits SMEs that want a single integrated suite — inventory alongside accounting, CRM, manufacturing, barcode, HR, and expenses — without licensing a separate WMS module. It is particularly strong when the goal is rapid rollout across multiple warehouses with consistent routing logic.

Business Central fits SMEs already invested in the Microsoft ecosystem, especially where deep Dynamics 365 finance integration, Power Platform extensibility, or regulatory depth in finance matter more than warehouse-management sophistication.

Supply Chain Management fits distribution or manufacturing organizations whose warehouse processes are complex enough to justify a directed WMS with mobile execution, wave processing, and advanced costing — and who have the enterprise budget and change-management capacity to match.

If you are evaluating either path, an ERP Readiness Call is the fastest way to map your warehouse flows to the right platform — and our AI-accelerated delivery model is designed to deliver up to 3x faster than a traditional ERP rollout.

Frequently asked questions

Is Odoo Inventory a warehouse management system or just stock tracking?

Both. Odoo Inventory functions as an inventory application and a warehouse management system in a single app. It covers stock moves, lead times, automated replenishment, routes, putaway rules, multi-step receipts and deliveries, and valuation — without requiring a separate WMS module.

How does Odoo Inventory keep stock traceable?

Odoo uses a double-entry stock model. Every operation is a stock move between two locations — there is no separate stock input, output, or transformation document. Every change in on-hand quantity is a debit from one location and a credit to another, so stock is always traceable and nothing disappears.

What is the Dynamics 365 equivalent of Odoo Inventory?

It depends on the tier. On Business Central, the equivalent is the Inventory module plus optional Warehouse Management, with warehouses modeled as Locations and stock moved via Transfer Orders. On Supply Chain Management, the equivalent is split across the Inventory management module and the Warehouse management module, which together cover what Odoo Inventory does in one app.

Does Odoo Inventory support real-time accounting valuation?

Odoo 19 changed how this works. Before Odoo 19, perpetual valuation posted a real-time journal entry at every stock move. Odoo 19 replaced that with two accounting methods — Periodic (at closing) and Perpetual (at invoicing) — and no longer posts a journal entry per stock move. Under Perpetual (at invoicing), vendor bills are posted as stock assets and cost of goods sold is recognized when goods are sold. Landed Costs can additionally allocate freight, insurance, and customs duties to product valuation.

Which replenishment methods does Odoo Inventory support?

Odoo provides three mechanisms: reordering rules (min/max), the Make To Order (MTO) route, and the Master Production Schedule for manufacturing. Inter-warehouse replenishment is also supported via the 'X: Supply Product from Y' route on the product form.

How many warehouse steps can Odoo Inventory handle for receiving and shipping?

Three. One-step routes receive directly to stock and ship directly from stock. Two-step routes route receipts through an input location before stock, and deliveries through a pick step before shipping. Three-step routes add a quality step for receipts (input → quality → stock) and a pack step for deliveries (pick → pack → ship). These are configurable per warehouse under Inventory > Configuration > Warehouses.

Map your warehouse flows to the right ERP

Flectic implements both Odoo Inventory and Microsoft Dynamics 365, so we will not force you toward one stack. Book an ERP Readiness Call and we will walk your receipts, transfers, deliveries, routes, and valuation requirements against both platforms — then deliver through an AI-accelerated model designed to deliver up to 3x faster than a traditional rollout.

Book an ERP Readiness Call
Response within one business day

Sources