Part of our Supply Chain & Procurement series
Read the complete guideOdoo Inventory and Warehouse Management Deep Dive
Inventory is where cash goes to hide. Excess stock ties up capital; insufficient stock loses sales. Most businesses operate somewhere between these extremes, managing the tension manually with spreadsheets and gut instinct — and paying for it in stockouts, write-offs, and carrying costs. Odoo 19 Enterprise Inventory replaces that guesswork with a rules-driven warehouse management system that handles everything from basic stock tracking to complex multi-warehouse operations with serial number traceability.
This deep dive covers the full spectrum of Odoo Inventory capabilities: initial warehouse setup, routing and putaway strategies, reordering rules, lot and serial tracking, and the reporting tools that give you real-time visibility into your entire supply chain.
Key Takeaways
- Configure multi-warehouse and multi-location hierarchies that mirror your physical layout
- Use putaway rules and storage categories to direct items to optimal bin locations automatically
- Implement reordering rules with min/max or make-to-order logic to automate replenishment
- Track products by lot number or serial number for full forward and backward traceability
- Set up push and pull routes for make-to-stock and make-to-order manufacturing flows
- Use cycle counts and perpetual inventory adjustments to maintain accuracy
- Integrate inventory with Purchase, Manufacturing, and Sales for seamless supply chain visibility
- Leverage landed costs to get true inventory valuation including freight and customs
Warehouse Architecture and Location Hierarchy
Odoo Inventory models your physical warehouse as a hierarchical tree of locations. Understanding this hierarchy is essential before configuring anything else.
Location types: Odoo uses five location types. Internal locations are physical places inside your warehouse — aisles, bins, shelves, and areas. Input, Output, and Packing zones are special internal locations that support multi-step receiving and shipping operations. Virtual locations (like "Inventory Adjustments" or "Customers") handle the accounting side of stock movements. External locations represent your suppliers and customers.
Warehouse setup: Navigate to Inventory > Configuration > Warehouses. Each warehouse automatically creates a set of standard locations: WH/Input (receiving dock), WH/Quality Control, WH/Stock (main storage), WH/Packing Zone, and WH/Output (shipping dock). You can rename these to match your actual facility terminology.
Sub-locations: Create sub-locations within your stock area to represent aisles, bays, and bins. A typical structure might be WH/Stock > Aisle A > Bay 01 > Bin A1-01. This granularity enables bin-level stock management and dramatically improves picker efficiency — instead of "check the warehouse," a picker knows exactly where to go.
Multi-warehouse: Large organizations with distribution centers in multiple cities or countries create a separate warehouse for each facility. Stock can be transferred between warehouses via inter-company routes, and each warehouse has its own replenishment rules. Reporting can be consolidated or viewed per-warehouse.
Receiving Operations and Multi-Step Receiving
How you receive goods determines your data quality for everything downstream. Odoo supports 1-step, 2-step, and 3-step receiving workflows.
1-step receiving: Goods arrive and go directly to stock in a single operation. Best for small businesses with simple stock flows. Navigate to Inventory > Configuration > Warehouses, select your warehouse, and set "Incoming Shipments" to "1 step."
2-step receiving (Input + Store): Goods arrive at the Input location first, where they're counted and verified. A second operation moves them to their final storage location. This allows quality checks or sorting before items enter available stock.
3-step receiving (Input + Quality + Store): Adds a quality control checkpoint. Items move from Input to the Quality Control location where they're inspected, then moved to stock upon approval. Failed items are moved to a separate rejection location and trigger a return process automatically.
Barcode scanning in receiving: Odoo's Barcode module (included in Enterprise) transforms receiving into a scan-based process. Warehouse staff scan the delivery order QR code on arrival, then scan each product barcode as it's unloaded. Quantities are auto-filled, and the system flags discrepancies between the purchase order and actual delivery. This process typically reduces receiving errors by 80% and cuts processing time in half.
Vendor-managed serials: For products tracked by serial number, the receiving process prompts for individual serial number scans. Odoo validates each serial number against your expected format and flags duplicates automatically — critical for warranty management and regulatory compliance.
Putaway Rules and Storage Optimization
Random putaway — stocking items wherever there's space — is one of the most expensive habits in warehouse management. Every item placed in the wrong location costs time on every subsequent pick. Odoo's putaway rules enforce systematic storage strategies automatically.
Simple putaway rules: Navigate to Inventory > Configuration > Putaway Rules. Create rules that specify: when a product (or product category) arrives at a particular location, direct it to a specific sub-location. For example: when "Electronic Components" arrive at WH/Input, direct them to WH/Stock/Aisle-C/Electronics. Putaway rules apply automatically during the receiving process, directing warehouse staff to the correct bin without any guesswork.
Storage categories: For more sophisticated operations, define storage categories that describe bin capabilities: temperature range, maximum weight, allowed product categories. Assign storage categories to bins. When a product arrives with a specific storage requirement, Odoo matches it to an appropriate bin automatically, preventing refrigerated items from being placed in ambient storage or heavy pallets from being stored in light-duty racking.
FEFO and FIFO strategies: Configure removal strategies per location to enforce First Expired First Out (FEFO) for perishables or First In First Out (FIFO) for standard goods. When a picker receives a pick order, Odoo automatically selects the correct lot based on your strategy — no manual date checking required.
Capacity planning: Use storage category capacity constraints to prevent over-filling locations. When a bin reaches capacity, Odoo's putaway engine automatically directs overflow to the next appropriate location, preventing the physical chaos that makes cycle counts inaccurate.
Reordering Rules and Replenishment
Automated replenishment is one of the highest-ROI features in Odoo Inventory. Instead of manually checking stock levels and placing purchase orders, reordering rules trigger replenishment automatically when stock falls below threshold.
Min/Max reordering rules: Navigate to Inventory > Operations > Replenishment. Create a rule for each product specifying the minimum quantity (reorder point), maximum quantity (order-up-to level), and preferred vendor. When stock falls below the minimum, Odoo automatically generates a purchase order (or manufacturing order) to bring stock back to the maximum.
Route-based replenishment: For products manufactured in-house, set the replenishment route to "Make to Stock" — Odoo generates manufacturing orders instead of purchase orders. For products that are both purchased and manufactured, configure priority rules to determine when each source is used (e.g., manufacture when demand exceeds X units).
Make to Order (MTO): MTO routes generate purchase or manufacturing orders only when a sales order is confirmed, without holding buffer stock. This is ideal for custom products, high-value items, or products with unpredictable demand. Connect MTO and purchase routes on the product to fully automate the procurement-to-fulfillment chain.
Lead time management: Accuracy in reordering depends on accurate lead times. Set vendor lead times on each vendor pricelist entry, security lead times (buffer for uncertainty) in Inventory settings, and manufacturing lead times in the Manufacturing module. Odoo combines these to calculate the date by which a reorder must be triggered to meet upcoming demand.
Demand forecasting: Odoo 19 Enterprise includes a demand forecasting engine that analyzes sales history, seasonal patterns, and open sales orders to recommend reorder quantities. Rather than fixed min/max levels, the system adapts to your actual demand patterns — reducing both stockouts and excess inventory simultaneously.
Lot and Serial Number Tracking
Traceability is non-negotiable in regulated industries, and a competitive advantage in many others. Odoo's lot and serial tracking provides complete forward and backward traceability for every product unit.
Configuring tracking: On each product form, set the "Tracking" field to "By Lot" (for batches of multiple identical units) or "By Serial Number" (for unique individual items). Lots are typically used for food products, chemicals, and pharmaceuticals. Serial numbers are used for electronics, machinery, and warranty-tracked items.
Lot assignment at receiving: During receiving, warehouse staff assign lot numbers to incoming goods either by manual entry or barcode scan. Odoo validates lot number format against configurable patterns (e.g., LOT-YYYY-MM-NNNN). Lot numbers from vendor documents can be entered directly, maintaining continuity with your supplier's tracking system.
Traceability reports: Navigate to Inventory > Products > Lot/Serial Numbers, select any lot, and click "Traceability." The report shows every movement this lot has made: received from which supplier, stored in which location, picked for which sales order, and delivered to which customer. This full chain of custody is generated in seconds — critical for product recalls.
Expiry date management: For lot-tracked products with shelf life, enable expiry date tracking on the product. When a lot is received, enter its expiry date. The FEFO removal strategy then automatically prioritizes lots expiring soonest on outgoing picks. Odoo can also generate alerts when lots approach their expiry date, giving you time to discount or redistribute goods before they become write-offs.
QR code labels: Print lot-specific QR code labels directly from Odoo for use on physical stock. Scanning these labels in any operation (move, pick, inventory count) automatically fills the lot field, eliminating manual entry errors.
Shipping Operations and Delivery Customization
Efficient outbound operations require careful configuration of picking, packing, and shipping workflows.
1-step, 2-step, and 3-step shipping: Like receiving, Odoo supports configurable outbound flows. 1-step: pick from stock and ship directly. 2-step: pick to packing zone, then ship. 3-step: pick to output, pack into shipping boxes, then ship. The right choice depends on your order volume and complexity. High-volume operations often benefit from 3-step shipping with batch picking.
Batch picking: Enable batch transfers under Inventory > Configuration > Settings. Batch picking groups multiple pick orders into a single warehouse tour. A picker pulls all items for 10 orders in one pass through the warehouse, dramatically reducing walking time. The batch picking wizard considers product locations to optimize the picking route.
Wave picking: Wave picking adds scheduling to batch picking — grouping pick batches by carrier cut-off time, customer priority, or product zone. This ensures time-sensitive orders are always picked first without requiring constant manual intervention.
Carrier integration: Odoo integrates with major carriers including FedEx, UPS, DHL, and national postal services. After packing, the system calculates shipping rates, generates shipping labels, and transmits tracking numbers to customers automatically. The delivery order is marked as "Done" and the customer receives a shipping notification email with their tracking link.
Inventory Valuation and Landed Costs
Accurate inventory valuation is critical for financial reporting and pricing decisions. Odoo supports multiple costing methods and provides tools to capture the full cost of goods in inventory.
Costing methods: Odoo supports three costing methods. FIFO (First In, First Out) values inventory at the cost of the oldest units, reducing distortion from cost fluctuations. AVCO (Average Cost) values inventory at the weighted average of all purchase prices, smoothing cost volatility. Standard Price uses a manually set cost per unit, useful for budgeting and variance analysis.
Landed costs: The purchase price of goods rarely represents their true cost. Freight, customs duties, insurance, and port handling fees all contribute to the real cost of inventory. Odoo's Landed Costs feature allows you to allocate these additional costs to specific received shipments, spreading them proportionally across the items received based on quantity, weight, or value. This gives you accurate COGS (Cost of Goods Sold) for more reliable gross margin calculations.
Inventory valuation reporting: Navigate to Inventory > Reporting > Inventory Valuation. This report shows the current value of all stock by location, product category, or warehouse. Filter by date to reconstruct historical inventory values for period-end reporting. The report ties directly to your general ledger, eliminating the manual reconciliation required with separate inventory and accounting systems.
Cycle Counting and Physical Inventory
Inventory accuracy is not a one-time achievement — it requires ongoing maintenance. Odoo supports both full physical inventory counts and continuous cycle counting approaches.
Physical inventory (Annual count): Inventory > Operations > Physical Inventory generates a count sheet listing all products in all locations. Warehouse staff count actual quantities and enter them. Odoo calculates variances and allows you to review and validate them before updating system quantities. Discrepancies post automatically to the Inventory Adjustments account.
Cycle counting: Rather than counting everything once a year, cycle counting divides your inventory into groups and counts a portion each week or month. Fast-moving A-category items might be counted monthly; slow-moving C-category items annually. Configure cycle count schedules under Inventory > Configuration > Cycle Counting. The system generates count tasks automatically on schedule, distributing the workload across your team.
Barcode-based cycle counts: The Odoo Barcode app streamlines cycle counting. Staff scan a location QR code, scan each product barcode, enter the quantity, and move to the next location. The app guides them through the assigned count systematically, reducing the time required for each count.
Frequently Asked Questions
How does Odoo handle stock across multiple warehouses for sales orders?
When a sales order is confirmed, Odoo checks stock availability across all warehouses based on the routes configured on each product. If the primary warehouse is out of stock, you can configure an alternate warehouse as a fallback. For manual control, the salesperson can specify the source warehouse on the delivery order. Inter-warehouse transfers are handled automatically by the route configuration, generating a transfer order between warehouses when needed.
Can Odoo Inventory integrate with third-party WMS systems like Manhattan or SAP WM?
Odoo is designed as a complete WMS, so most businesses replace their third-party WMS with Odoo rather than integrating alongside it. However, Odoo's REST API and XML-RPC interface allow integration with external warehouse systems for specialized operations. ECOSIRE has built custom connectors for several enterprise WMS platforms. For most SMB and mid-market use cases, Odoo's built-in WMS capabilities are sufficient.
What's the best approach for a product recall when using lot tracking?
Navigate to Inventory > Products > Lot/Serial Numbers and search for the affected lot number. The traceability report shows every sale order fulfilled with this lot. From the lot record, trigger a reverse transfer to recall goods and a vendor return for supplier notification. Customer notification can be automated by creating an email template linked to the affected sales orders. This process that takes weeks with manual systems can be completed in Odoo in under an hour.
How does Odoo handle kitting and bill of materials in inventory?
Kits in Odoo are products with a Bill of Materials (BoM) set to type "Kit." When a kit is sold, the picking operation breaks it into components, picking each component individually from stock. The kit itself has no stock; only the components are tracked. This allows you to sell assembled kits without pre-assembling them, maintaining component-level stock visibility and flexibility.
Can we manage vendor-owned (consignment) stock in Odoo?
Yes. Odoo supports consignment stock through a combination of location types and inventory ownership tracking. Create a dedicated "Consignment" location and track vendor-owned stock there separately from your owned inventory. Consignment stock doesn't affect your balance sheet until it's consumed. The consignment module available through the Odoo App Store extends this with vendor billing and consignment agreement management.
How do reordering rules interact with sales forecasts?
In Odoo 19 Enterprise, the replenishment screen can incorporate forecasted demand from open sales orders and historical patterns. When calculating whether to trigger a reorder, Odoo considers not just current stock but also incoming stock (purchase orders en route) and outgoing commitments (confirmed sales orders). This "virtual stock" calculation prevents false triggers and ensures you're ordering based on true net need rather than just current on-hand quantity.
What reports should I review weekly to maintain inventory health?
Three reports form the core of weekly inventory management: Inventory Forecasted Report (stock levels vs. demand over next 30 days), Inventory Valuation (total investment in stock with aging), and Stock Move Analysis (high-velocity items to ensure replenishment adequacy). Additionally, review the "Scheduled Activities" list for any overdue transfers or receiving confirmations that need follow-up.
Next Steps
Odoo Inventory is one of the most configurable warehouse management systems available, but that flexibility requires careful design to implement correctly. Poor location hierarchies, misconfigured routes, and missing reordering rules are the most common causes of inventory implementation failures.
ECOSIRE's Odoo Inventory implementation practice includes warehouse design workshops, barcode infrastructure assessment, data migration from your current inventory system, staff training, and a 90-day stabilization period with dedicated support.
Review our Odoo services for inventory and warehouse management implementation packages, or explore our marketplace modules for inventory extensions including advanced putaway optimization, cross-docking automation, and carrier rate shopping tools built for Odoo 19 Enterprise.
Written by
ECOSIRE TeamTechnical Writing
The ECOSIRE technical writing team covers Odoo ERP, Shopify eCommerce, AI agents, Power BI analytics, GoHighLevel automation, and enterprise software best practices. Our guides help businesses make informed technology decisions.
ECOSIRE
Transform Your Business with Odoo ERP
Expert Odoo implementation, customization, and support to streamline your operations.
Related Articles
How to Add a Custom Button to an Odoo Form View (2026)
Add custom action buttons to Odoo 19 form views: Python action method, view inheritance, conditional visibility, confirmation dialogs. Production-tested.
How to Add a Custom Field in Odoo Without Studio (2026)
Add custom fields via custom module in Odoo 19: model inheritance, view extension, computed fields, store/non-store decisions. Code-first, version-controlled.
How to Add a Custom Report in Odoo Using External Layout
Build a branded PDF report in Odoo 19 using web.external_layout: QWeb template, paperformat, action binding. With print logo + footer overrides.
More from Supply Chain & Procurement
Odoo 19 Inventory: Putaway, Removal, and Replenishment Deep-Dive
Master Odoo 19 inventory: new putaway strategies, FEFO/LIFO/FIFO removal logic, dynamic replenishment, multi-step routes, and barcode flows.
AI for Supply Chain Optimization: Visibility, Prediction & Automation
Transform supply chain operations with AI: demand sensing, supplier risk scoring, route optimization, warehouse automation, and disruption prediction. 2026 guide.
How to Write an ERP RFP: Free Template & Evaluation Criteria
Write an effective ERP RFP with our free template, mandatory requirements checklist, vendor scoring methodology, demo scripts, and reference check guide.
Machine Learning for Demand Planning: Predict Inventory Needs Accurately
Implement ML-powered demand planning to predict inventory needs with 85-95% accuracy. Time series forecasting, seasonal patterns, and Odoo integration guide.
Odoo Purchase & Procurement: Complete Automation Guide 2026
Master Odoo 19 Purchase and Procurement with RFQs, vendor management, 3-way matching, landed costs, and reorder rules. Full automation guide.
Power BI Supply Chain Dashboard: Visibility & Performance Tracking
Build a Power BI supply chain dashboard tracking inventory turns, supplier lead times, order fulfillment, demand vs supply, logistics costs, and warehouse utilization.