Odoo Inventory is the Odoo app that tracks every product you buy, store, move and ship, and keeps the value of that stock in step with your accounts. AzkaTech sets it up around the way your warehouse actually works.

The short answer
Odoo Inventory records every stock movement as a transfer from one location to another, so a product never simply appears or disappears. A receipt moves goods from a vendor location into your stock, a delivery moves them from stock to a customer, and a count moves any difference to an adjustment location. Because every move has a source and a destination, you can always explain why a quantity changed, when, and who validated it.
Inventory basics
Most companies hold more than one kind of inventory, and each one needs slightly different treatment in the system.
| Type | What it is | How Odoo handles it |
|---|---|---|
| Raw materials | Inputs bought to make a product: fabric, steel, flour, electronic components. | Goods with inventory tracking on, bought through Purchase and consumed by manufacturing orders through a bill of materials. |
| Work in progress | Products that have been started but are not finished yet. | Open manufacturing orders, where components have been consumed but the finished product has not been produced. |
| Finished goods | Products ready to sell. | Goods sold through Sales, Point of Sale or eCommerce, reserved when the order is confirmed and delivered from stock. |
| MRO supplies | Maintenance, repair and operating items: spare parts, tools, cleaning supplies. | Often goods with inventory tracking off, used without stock levels. Expensive spare parts are tracked like any other product. |
Features
These are the features we configure most often for distributors, retailers and manufacturers. Most are switched on in Inventory settings; scanning needs the Barcode app.
Purchase orders create receipts and sales orders create deliveries on their own. Validate them, and both the quantity and its value update at once.
Split each warehouse into zones, racks and shelves. Putaway rules send incoming goods to the right shelf, so nobody has to decide on the loading dock.
Set a minimum and a maximum per product. When forecasted stock falls below the minimum, Odoo creates or suggests the purchase or manufacturing order.
Trace a batch back to its supplier, or a single unit to the customer who bought it. With expiry dates, Odoo picks the first lot to expire first.
Storekeepers receive, pick, move and count stock by scanning products, lots and shelves from a phone, tablet or handheld scanner.
Group pickings so one person collects several orders in a single walk through the warehouse, then sorts them at the packing station.
Count fast-moving or high-value locations every 30 days and the rest once a year. Odoo schedules the next count when you apply the last one.
Run several sites in one database, see stock per warehouse, and let one warehouse resupply another on a route you define.
Add freight, insurance and customs duties to the cost of the goods they belong to, split by quantity, current cost, weight or volume.
Operations
Each warehouse chooses how many checkpoints goods pass through. More steps give you more control, but also more validations for your team.
| Flow | Receiving | Shipping | Best for |
|---|---|---|---|
| One step | Vendor → stock | Stock → customer | Small warehouses and fast-moving, low-risk products. |
| Two steps | Vendor → input area → stock | Stock → output area → customer | Larger warehouses that unpack and check goods before shelving, or consolidate orders before dispatch. |
| Three steps | Input → quality control → stock | Pick → pack → ship | Large sites with strict quality checks and separate picking and packing teams. |
Quality checks and packages do not require the three-step flow. Both can be switched on separately, which keeps validations to a minimum.
Replenishment
Odoo replenishes stock in three main ways, and most companies use a mix of them depending on the product.
Traceability
Traceability decides how quickly you can answer a recall, a warranty claim or an auditor.

Removal strategies decide which stock leaves first. They are set per location or per product category, and the category setting wins.
| Strategy | Picks first | Typical use |
|---|---|---|
| FIFO | The oldest stock received | General goods. It is Odoo’s default. |
| LIFO | The most recently received stock | Bulk materials where the newest layer sits on top. |
| FEFO | The stock closest to its removal date | Food, cosmetics and pharmaceuticals. |
| Closest location | Stock in the first location by name order | Shorter walks in large warehouses. |
| Least packages | The package quantity that best matches the demand | Fewer opened packages. |
Valuation
The costing method decides what each unit is worth on your balance sheet and what reaches cost of goods sold when you sell it.
| Method | How unit cost works | Suits |
|---|---|---|
| Standard cost | A fixed cost you set and update yourself. | Manufacturers with stable, known costs. |
| Average cost (AVCO) | Recalculated as a weighted average after every receipt. | Distributors and retailers buying often at changing prices. |
| FIFO | Each sale is costed at the oldest remaining purchase price. | Companies that need cost by purchase layer. |
Example: you receive 8 units at $10 and then 4 units at $16. Under average cost, every unit is now worth $12, because (8 × 10 + 4 × 16) ÷ 12 = 12. Under a standard cost of $10, all 12 units stay at $10.
Accuracy
An inventory system is only useful while its numbers match the shelves. These are the tools that keep them aligned.
For graphs, pivots and dashboards on this data, see our Odoo Reporting page and our article on advanced inventory reports.
Inventory metrics
Both sides of these ratios already live in Odoo: cost of goods sold in Accounting, inventory value in the stock valuation report.
| Metric | Formula | What it tells you |
|---|---|---|
| Inventory turnover | Cost of goods sold ÷ average inventory value | How many times stock is sold and replaced in a period. Low turnover points to overstock. |
| Days sales of inventory | (Average inventory ÷ cost of goods sold) × 365 | How many days of sales your current stock would cover. |
| Stockout rate | Order lines delayed by missing stock ÷ total order lines | How often a lack of stock costs you a sale or a deadline. |
| Carrying cost | Storage, insurance, handling and tied-up capital as a share of inventory value | What it costs you to keep goods on the shelf. |
Built by AzkaTech
When a client needs something standard Odoo does not do, we build it and publish it on the Odoo App Store for every Odoo user.
Material RequisitionTakes a project manager’s material request through stock, purchasing and delivery in one flow.View on the Odoo App Store ↗See all of them on our Odoo apps page.
Why AzkaTech
AzkaTech is the first and biggest Odoo Gold Partner in Lebanon. A warehouse goes live smoothly when the floor is mapped before anyone opens Odoo, so this is how we work.
Industry guides: distribution · retail · manufacturing · food and beverage
Related services: Odoo implementation · Odoo customization · Odoo training · Odoo POS · Odoo hosting
FAQ
It can be. Odoo Community, the open-source edition, includes Inventory with no licence fee, although you host and maintain it yourself. On Odoo Online, the One App Free plan lets a company use a single app with unlimited users at no cost, so Inventory on its own is free. As soon as you add a second app, such as Sales or Purchase, you move to a paid plan.
For most small and mid-sized companies, yes. Odoo handles multiple warehouses, lots and serial numbers, barcode scanning, reordering rules and stock valuation in the same database as sales, purchasing and accounting, so nothing is typed twice. Very large automated warehouses that run conveyors or robots usually connect Odoo to a specialist system rather than replace it.
Odoo Enterprise is licensed per user per month, and the Standard plan includes every app, Inventory among them. The price depends on your country, the plan you choose and whether you pay yearly or monthly, so check odoo.com/pricing for the current figure. Implementation is a separate cost that depends on how many warehouses, products and integrations you have. AzkaTech can give you both numbers after a short call.
On hand is what is physically in your locations right now. Forecasted adds confirmed incoming receipts and subtracts confirmed deliveries and manufacturing needs. Reordering rules work on the forecasted quantity, which is why Odoo can reorder before the shelf is actually empty.
Yes. Each warehouse has its own locations, routes and operation types. You can see stock per warehouse or across all of them, and set one warehouse to resupply another.
Yes, through the Odoo Barcode app, which is part of Odoo Enterprise. Staff scan products, lots, serial numbers, packages and shelves to receive, pick, move and count stock from a phone, tablet or handheld scanner.
Average cost suits most distributors and retailers, because purchase prices change often. FIFO fits companies that need cost by purchase layer. Standard cost fits manufacturers with stable, known costs. The method is set in Accounting settings and can be changed per product category, so you can use more than one.
Yes. Turn on lots and serial numbers and expiration dates in Inventory settings, and Odoo stores the expiration, best before, removal and alert dates for each lot. With the FEFO removal strategy, it picks the lot that expires first.
Yes. Products, locations, lots and opening quantities are imported from spreadsheets. We clean and test the files in a copy of your database before the real import, then check the opening stock value against your accounts.