Supply Chain

Odoo Inventory

Community + Enterprise

Manage your stock and logistics activities

Odoo Ready Partner
★★★★★4.9 on Clutch
Calgary, in-house team
Odoo Inventory logo
What it does

What Odoo Inventory does

Odoo Inventory is the app that tracks what stock you have, where it sits, and where it needs to go next. Every receipt from a supplier, every internal move between bins, and every shipment out the door is a stock movement against a specific location, so the on-hand number you see is the number that's actually on the shelf. Multi-warehouse, multi-zone, lots, serial numbers, and expiry dates are all built in, not add-ons.

Odoo warehouse management sits underneath everything else you sell or make. A confirmed sales order queues a pick. A confirmed purchase order queues a receipt. A finished production run lands its parts back into stock. One ledger, one set of numbers. You can test Odoo Inventory free on the Odoo trial; pricing kicks in only if you install more than one Odoo app.

For Odoo's own product overview, see Odoo's product listing.

How it works

The day-to-day flow

A warehouse manager's day in Odoo inventory usually starts on the Operations board. Each warehouse zone (receiving, internal moves, deliveries, returns) has its own column with the open transfers grouped by date and status. The team works the receipts first. A truck arrives, the receiver opens the matching transfer, scans or types in what came off the pallet, and if a putaway rule is set for that product the bin location is suggested automatically. Anything tracked by lot or serial number gets that number captured at the receipt, along with an expiry date if the product type asks for one.

From there the same transfer screen drives internal moves and customer deliveries. A sales order for a case of widgets creates a pick. If the warehouse is set to one-step, the picker grabs the case, confirms the quantity, and the shipment is closed. If it's set to two- or three-step (pick to a packing zone, then pack, then ship), Odoo creates each step as its own transfer in the right order, and the next step only opens when the prior one is done. Removal strategies decide which units leave first (FIFO, FEFO for expiring goods, LIFO, or closest bin).

Replenishment runs in the background. Reordering rules sit on a product at a location with a min, a max, and a lead time. Once a day the procurement scheduler walks the open demand, looks at what's on hand and what's already on order, and proposes the right buy, transfer, or build to keep you above the minimum. Stock valuation posts in the same ledger your accountant uses, on FIFO, average cost, or standard cost, whichever you set per product category.

Calibre configures Odoo Inventory for Alberta businesses: step by step, in writing.

Speak to an Implementation Specialist
In this module

What's inside Odoo Inventory

Multi-Warehouse and Multi-Zone Locations
Run several warehouses and break each one into as many zones, aisles, and bins as you need. Each location carries its own on-hand count, its own putaway and removal rules, and its own cycle-count frequency, so a third-party warehouse, a retail back room, and a main DC can all sit in the same Odoo inventory.
Lot and Serial Number Tracking
Tag a product as tracked by lot or by serial number and Odoo asks for that number on every receipt, transfer, and delivery. The full chain of custody is searchable from any number, so a recall starts with one lookup instead of a week of spreadsheet work.
Expiry Date and FEFO Removal
For perishable goods, the lot carries its own expiry, best-before, removal, and alert dates. The removal strategy on the location can be set to first-expired-first-out, so the lots closest to their date are picked first without the warehouse team checking labels by hand.
Reordering Rules With Min and Max
Set a minimum and a maximum quantity on a product at a specific location, plus a lead time. Once a day the procurement scheduler checks what's on hand against open demand and proposes a purchase, internal transfer, or manufacturing order to bring stock back up, so nobody is watching levels by hand.
Putaway and Removal Strategies
Putaway rules direct an incoming product or category to a specific bin or zone the moment it's received. Removal strategies (FIFO, LIFO, closest location, and least packages by default, plus FEFO once expiry tracking is enabled) decide which units leave first on the way out. Both run automatically once configured, so day-to-day picking does not depend on tribal knowledge.
One, Two, and Three-Step Delivery
Pick a delivery flow per warehouse. One-step pulls and ships from the same transfer. Two-step picks first, then ships. Three-step picks, packs, then ships. Each step is its own queued transfer for the right team, and Odoo will not let a step start until the prior one is closed.
Packages and Storage Categories
Group units into a package (a box, a pallet, a tote) and move the whole package as one in a transfer. Storage categories cap what a location can hold (by weight, by package type, or by product mix), so a pallet rack does not get assigned more than it can physically hold.
Cycle Counts and Inventory Adjustments
Set a cycle-count frequency per location so a slice of the warehouse gets counted every week instead of one chaotic year-end count. Adjustments are made on the same screen as the count, with the variance posted to the right valuation account so the books and the shelves stay aligned.
Landed Cost Allocation
Add freight, duty, insurance, and broker fees to a receipt after the fact and Odoo spreads those costs across the units received (by weight, by volume, by quantity, by current cost, or split equally). The product cost on stock reflects what the goods actually cost to get to your door, not just the supplier invoice.
Stock Valuation in FIFO, Average, or Standard
Pick a costing method per product category. Odoo posts the journal entries for every receipt, delivery, and adjustment in the background, so the stock value on your balance sheet matches the units on the shelf without a separate month-end reconciliation.
Built for

Is Odoo Inventory right for your team?

Outgrowing the entry-level tools

SMBs whose data lives in QuickBooks, HubSpot Free, or Excel spreadsheets that were set up when the business was smaller. The team now spends hours building reports by hand and reconciling between tools every month-end.

Operations across multiple tools

Retail, manufacturing, mechanical, or professional services businesses with 10 to 200 employees running on a patchwork of point tools. The team wants one database for the whole company instead of Zapier holding it together.

At a glance Community + Enterprise Cloud, Odoo.sh, or self-host iOS + Android app 15-day free trial CSV migration from current tool Odoo Ready Partner support
Bundle

Apps people often run with Odoo Inventory

Confirmed Sales orders queue picks in Odoo Inventory automatically, and the team works them off the same transfer board they use for everything else. Confirmed Purchase orders queue receipts so the dock knows what is coming in and when. Manufacturing reserves components on order confirmation and lands finished goods back in stock when the run closes. The Website storefront draws from the same on-hand count so it never oversells a unit the shop already sold. Inline Quality checks (Enterprise) block a transfer that fails inspection until someone resolves it. The Odoo Barcode handheld (Enterprise) drives picking, receiving, and cycle counts off the same screens, with no second interface to learn.

Comparison

Odoo Inventory vs the alternatives

List-price comparison against the inventory tools Calibre most commonly migrates customers off. The deciding factor is usually integration, not the line-item price. Odoo Inventory sits on the same database as every other Odoo app you install, so the data flows between modules without separate bridges.

Tool Per month (annual plan) What you get
Odoo Inventory CA$35.20/user/mo All Odoo apps included, free 15-day trial
Cin7 Core Pro US$599/flat/mo Inventory only
inFlow Small Business US$349/flat/mo Inventory only
Zoho Inventory Professional US$79/flat/mo Inventory only
Sortly Ultra US$119.2/flat/mo Inventory only

Annual-commitment rate where published; monthly list rate otherwise. Sourced from vendor pricing pages, 2026-05. Plans and regions vary. Full cost calculator on the Odoo overview page.

Pricing

What Odoo Inventory costs

One App Free
CA$0
forever
  • One app, unlimited users
  • Multi-company allowed
  • Odoo Online hosting
  • Dependent apps included free
If Odoo Inventory is the only Odoo app you install
Custom
CA$55
/user/month, billed yearly
  • Everything in Standard
  • Studio (no-code customizer)
  • Multi-company management
  • Hosting: Online, Odoo.sh, or on-premise
  • External API access
Choose this when you need custom layouts or multi-company management.
Calibre Implementation
Quote
phase-by-phase, in writing
  • Scoping, configuration, training
  • Data migration from your current tool
  • Named engineer through go-live and support
Book the call →
Free 45-minute scoping call. Quote in writing before any code ships.

Pricing source: Odoo's published Standard and Custom plans as of 2026-05. Calibre quotes in CAD; conversion from Odoo's local pricing in your region may vary.

Questions

Common questions about Odoo Inventory

Is Odoo Inventory free?
You can test Odoo Inventory free on the Odoo 15-day trial. Beyond the trial, Odoo's one-app-free rule means it runs free for unlimited users, forever, but only if it is the only Odoo app you install. If Odoo Inventory is the only app you install, you pay nothing for the software no matter how many warehouse staff you have. The free version covers multi-warehouse, locations, lots and serial numbers, reordering rules, putaway and removal strategies, landed costs, the procurement scheduler, and stock valuation in FIFO, average, or standard cost. The moment you add a second app (Sales, Purchase, Manufacturing, anything else), the setup moves to the paid plan, which is around CA$35.20 per user per month billed annually for the full suite.
What's the difference between Odoo Inventory in Community and Enterprise?
The core warehouse engine is the same. Multi-warehouse, multi-zone locations, lots, serials, expiry, reordering rules, putaway and removal strategies, multi-step picking, landed costs, cycle counts, and FIFO/average/standard valuation all work in the free Community edition. Enterprise adds three meaningful pieces. The Barcode app gives you the touch-friendly scanner screen warehouse staff actually use on a handheld. The shipping carrier connectors (UPS, FedEx, DHL, USPS, Sendcloud, and similar) generate electronic shipping labels and pull tracking numbers back in. The polished dashboards, the mobile app, and Studio (the no-code customizer for warehouse screens) are Enterprise as well. Most warehouses we work with move to Enterprise on day one because the Barcode app is how a real picking floor wants to work.
Can we move our existing stock counts, products, and warehouse layout into Odoo?
Yes. Odoo accepts CSV and Excel imports for the product catalog, opening stock balances per location, the bin and zone layout of each warehouse, lot and serial number history, supplier price lists, and reordering rules. The work is rarely the upload itself. It is mapping your existing SKUs, units of measure, and bin codes to Odoo cleanly so you do not import garbage. Calibre always starts a migration by auditing the source data and quoting the cleanup as its own phase. Once that's done, the import itself runs in hours, and we usually keep your old system live as a read-only reference for the first month so a picker can always check what was on the shelf before the cutover.
Does Odoo Inventory connect with shipping carriers like UPS or FedEx?
Yes, through the Enterprise carrier connectors. There is a separate connector per carrier (UPS, FedEx, DHL, USPS, Sendcloud, Bpost, and several others), plus the EasyPost connector which aggregates many additional carriers including Canada Post under a single integration. You install only the ones you actually ship with. Once a carrier is wired in, the delivery on a sales order can fetch a live rate from the carrier, generate the shipping label as a PDF (or ZPL for a label printer), and store the tracking number on the order so the customer portal shows real shipping status. Without the connectors you can still record a carrier name and a tracking number by hand, which is enough for small volumes.
Can my warehouse team pick and pack from a phone or tablet?
Yes. The Odoo inventory web interface is fully responsive, so the receipts, transfers, and delivery screens work on a phone or tablet browser for basic picking, counting, and confirming. For a real picking floor with handheld scanners, the touch-friendly Barcode app (Enterprise) is the right tool. It is laid out for thumb taps and trigger scans, supports scanning a location, scanning a product, scanning a lot or serial, and confirming the quantity in one motion, and works on rugged Android devices and standard tablets. If you are running more than a few transfers a day, the Barcode app pays for itself in pick speed.
How does Odoo handle multiple warehouses and zones inside one warehouse?
Each warehouse is its own top-level container with its own receipts, internal transfers, deliveries, and sometimes its own returns queue. Inside a warehouse, you build a tree of locations as deep as you need: receiving, quality hold, a row, an aisle, a rack, a bin. On-hand quantities, reservations, and valuation are tracked per location, not just per warehouse, so a count for bin A-12-03 is a real number, not a guess. A stock transfer between two warehouses is the same kind of document as a delivery to a customer, so the team uses one screen instead of learning a second flow. Each warehouse can run its own delivery steps (one, two, or three) and its own picking rules, so a small showroom and a main DC do not have to work the same way.
Can Odoo track expiry dates and trigger first-expired-first-out picking?
Yes. On a product tracked by lot, you can turn on expiry tracking and Odoo will ask for four dates on every new lot: the expiry date, the best-before date, the removal date, and the alert date. Set the removal strategy on the location (or the product category) to first-expired-first-out, and the next time a picker confirms a transfer Odoo proposes the lots closest to their date first. The alert date can be wired to a daily activity, so a manager gets a list of lots about to expire before they actually do. This is the setup we use for food, beverage, cosmetics, pharma, and any product where the lot on the shelf has a clock on it.

Working with Calibre

How long does a Calibre implementation typically take?
Single-module rollouts on an existing Odoo setup run 2-6 weeks depending on data migration scope. Greenfield Odoo with a multi-module rollout runs 4-16 weeks. Calibre commits to a written, phase-by-phase timeline after the free scoping call before any code is written.
How much does a Calibre implementation cost?
Cost depends on module scope, user count, custom work, and migration complexity. Calibre's posture is a written fixed-phase quote after the scoping call rather than an hourly engagement, so the cost is committed in writing before the first commit.
What happens to our data if we ever want to leave Odoo?
Everything exports. CSV, XML, or a full PostgreSQL database dump, yours on day one. Migrating off Odoo has been done before and it's not a one-way door.
Speak to an Implementation Specialist

Talk to Calibre about Odoo Inventory.

Written, phase-by-phase quote before any code is written. Odoo Ready Partner, Calgary. In-house team, no offshore handoffs.

Speak to an Implementation Specialist Try the 15-day free trial

What you get

  • Free 45-minute scoping call with an Odoo-certified engineer
  • Module-by-module fit/gap assessment
  • Written, phase-by-phase quote
  • Named engineer for implementation and support
  • Data-export commitment in writing