Odoo Inventory Tutorial: Complete Warehouse Setup Guide

Most Odoo Inventory setup errors trace back to one cause. Teams configure things in the wrong order. This odoo inventory tutorial covers the correct sequence, step by step, so your warehouse, locations, routes, put away rules, and reordering rules are ready before your first stock move. Follow each step in order. Skipping ahead creates errors that are difficult to fix once live data is in the system.

📋 Key Takeaways

  • Setup sequence matters. Settings come first, warehouses second, locations third, routes fourth. Reversing this creates errors that are difficult to fix.
  • Enable Storage Locations and Multi Step Routes before you create any sub locations or custom routes.
  • A warehouse and a location are not the same thing. A warehouse is a facility. A location is a shelf, zone, or area inside that facility.
  • Do not choose 3 step shipments if your warehouse does not have a separate packing station. Extra steps without matching physical processes confuse staff.
  • Test every flow including receipt, delivery, and inventory adjustment before the first live stock move.

Who This Odoo Inventory Tutorial Is For

This odoo inventory tutorial is written for finance heads, operations managers, and project leads preparing to go live with Odoo Inventory in a manufacturing, trading, or warehousing business. It assumes a fresh or near fresh database and walks through the order in which settings, warehouses, locations, routes, and rules must be configured. If your team has already started using Odoo Inventory but the setup feels off, use it as a diagnostic checklist to spot which configuration step was skipped or done in the wrong order.


Step 1: Enable the Right Settings Before Touching Anything Else

Settings act as the foundation for every other configuration in Odoo Inventory. Turn on the right options here before you create warehouses, locations, or routes.

Inventory → Configuration → Settings
  • Enable Storage Locations. Required before any sub locations can be created.
  • Enable Multi Step Routes. Activates Storage Locations automatically. Required before custom routes can be configured.
  • Enable Lots and Serial Numbers if your business tracks items by batch or serial. Cannot be added to existing stock moves after the fact.
  • Enable Storage Categories if you need to restrict product types by location, for example cold storage or hazardous goods.
  • Save settings before proceeding. Odoo does not apply changes until saved.
🚨Lots and Serial Numbers cannot be retroactively applied to existing stock. If you think you might need batch tracking in the future, enable it now.

Step 2: Configure Your Warehouse

The warehouse record sits at the top of every stock movement. A clean warehouse setup means clean documents and clean reports.

Inventory → Configuration → Warehouses
  • Rename the default warehouse. Odoo creates "My Company" with short name "WH". Rename it before creating any stock moves.
  • The short name appears on all documents. Keep it to 2 to 5 characters. Examples: WHSRT for Surat, WHPUN for Pune.
  • The Company field must match the correct legal entity. A warehouse assigned to the wrong company cannot be reassigned without recreating it.
  • The Address field should match the physical warehouse address. This appears on delivery orders and goods receipts.
⚠️Do not create stock moves using the default "My Company" warehouse name. Changing it after documents are generated creates inconsistencies across historical records.

Step 3: Set Incoming and Outgoing Shipment Steps

Choose based on your actual warehouse process, not what looks impressive on paper.

Incoming options
  • 1 step. Receive directly to stock.
  • 2 steps. Receive to input, then put away to stock.
  • 3 steps. Receive to input, quality check, then move to stock.
Outgoing options
  • 1 step. Ship directly from stock.
  • 2 steps. Pick from stock, then ship.
  • 3 steps. Pick, pack, then ship.
🚨Do not choose 3 steps if your warehouse does not have a separate packing station. Match the configuration to your physical process.
⚠️Changing shipment steps after stock moves have been recorded creates orphaned operations. Make this decision before go live and test it thoroughly.

Step 4: Understand Location Types Before Creating Any Location

Odoo uses six location types. Understanding each one prevents structural mistakes that are difficult to reverse.

← Scroll to see all columns →

Location TypeWhat It RepresentsIn Your Stock Count?
InternalPhysical storage inside your warehouse, shelves, zones, cold storage.Yes
VendorVirtual location where goods originate before receipt.No
CustomerVirtual location where goods go after delivery.No
TransitInter warehouse or inter company transfers.No
Inventory AdjustmentWhere stock discrepancies are posted during cycle counts.No
ProductionWhere raw materials are consumed in manufacturing.No
💡Only Internal locations hold countable stock. Do not delete the Inventory Adjustment or Production locations.

Step 5: Create and Structure Locations

Locations represent the physical map of your warehouse inside Odoo. A clean structure makes picking faster and reporting more accurate.

Inventory → Configuration → Locations
  • Default structure: Physical Locations contains WH which contains Stock. This is your root internal location.
  • Create sub locations under WH/Stock for each physical area, e.g. WH/Stock/ZoneA, WH/Stock/Shelf01, WH/Stock/ColdStorage.
  • Keep names short. Long names create clutter on warehouse documents.
  • Set the Removal Strategy on each location if products need a specific pick order. Choose FIFO, FEFO for expiry items, or LIFO.
  • Set the Inventory Frequency for cyclic counting. Use 30 for monthly and 90 for quarterly counts.
💡Match your location structure to your physical layout. If warehouse staff cannot find the location on the picking slip by looking at a sign on the shelf, your naming is wrong.

Step 6: Configure Routes

Routes describe how products travel inside your warehouse. Most are auto generated, but a few custom ones may be required for specialised flows.

Inventory → Configuration → Routes
  • Odoo auto generates routes based on the shipment steps configured in Step 3.
  • Do not delete auto generated routes. Removing them breaks inbound or outbound flows.
  • Routes consist of Rules. Each rule has an Action (push or pull), a Source Location, and a Destination Location.

Push and Pull Rules

  • Pull rules trigger on demand. A sales order confirmation pulls stock from WH/Stock to WH/Output to the customer.
  • Push rules trigger on arrival. A goods receipt pushes products from Input to Quality Check to Stock automatically.

Creating Custom Routes

  • Go to Routes and click New.
  • Define where the route applies: warehouse level, product level, or product category level.
  • Apply at product category level for bulk assignments. A route applied to a category applies to every product in it automatically.

Step 7: Set Put Away Rules

Put away rules tell Odoo where to send incoming products without manual intervention.

Inventory → Configuration → Put Away Rules
  • Put away rules send incoming products to the right shelf automatically. No manual location selection needed on receipt.
  • Create rules by product, product category, or package type.
  • Example. A rule sending all "Raw Materials" to WH/Stock/ZoneA runs automatically on every receipt.
  • Put away rules only work with 2 step or 3 step incoming routes. A 1 step receipt sends everything directly to WH/Stock.
💡Test put away rules before go live. Create a test receipt and confirm the product lands in the expected location.

Step 8: Configure Reordering Rules Before Your First Purchase

Reordering rules let Odoo create purchase orders automatically when stock falls below safe levels. Set these up only after products and vendors are fully configured.

Inventory → Operations → Replenishment
  • Create a reordering rule for each product that needs automatic replenishment. Set minimum quantity, maximum quantity, and preferred vendor.
  • The Odoo scheduler runs daily. When stock drops below the minimum, it generates a purchase or manufacturing order automatically.
  • Set Lead Time correctly on the vendor and the product. The scheduler uses lead time to trigger purchases before the minimum is breached.
  • Do not create reordering rules before products and vendors are fully configured. A rule with no vendor assigned generates a procurement error on every scheduler run.
⚠️A reordering rule with no vendor assigned generates a procurement error on every scheduler run. Configure products and vendors completely before activating replenishment rules.

Step 9: Test Before Your First Live Stock Move

Run these tests on your staging environment. Every test must pass before production go live.

✅ Pre go live validation tests
  • Test the receipt. Create a purchase order and validate the receipt. Confirm the product lands in the correct location based on put away rules.
  • Test the delivery. Create a sales order and validate the delivery. Confirm correct pick, pack, and ship operations are generated.
  • Test inventory valuation. Confirm the receipt created the correct accounting journal entries if automated valuation is enabled.
  • Test inventory adjustment. Confirm the discrepancy posts to the Inventory Adjustment location correctly.
  • Check printed documents. Confirm all location names appear correctly on delivery orders and receipts.
Only move to production after every test passes on staging. A failed test on day one creates problems that take weeks to clean up.
Odoo Inventory Setup

Setting Up Odoo Inventory for the First Time?

Tatvamasi Labs reviews and completes Odoo Inventory setup for manufacturing, textile, solar, and chemical businesses before go live.

Book an Inventory Setup Review →

Frequently Asked Questions

Common questions teams ask while working through this odoo inventory tutorial.

Follow this sequence. First, enable Storage Locations and Multi Step Routes in settings. Second, configure your warehouse. Third, create and structure locations. Fourth, set incoming and outgoing shipment steps. Fifth, configure routes, put away rules, and reordering rules. The order matters because each layer depends on the previous one being configured correctly.
A warehouse is a top level organisational unit representing a physical facility with its own shipment configuration. A location is a specific area within a warehouse, like a shelf, zone, or cold storage room. One warehouse contains many locations. Warehouses define how goods move in and out. Locations define where goods are stored inside.
Routes are sequences of push and pull rules that define how products move between locations. Odoo auto generates routes based on your shipment step configuration. Custom routes can be created for special flows like quality inspection, cross docking, or vendor direct delivery.
Enable Multi Step Routes in Inventory settings first. Open your warehouse configuration and set Incoming Shipments to 2 or 3 steps and Outgoing Shipments to 2 or 3 steps. Odoo automatically creates the intermediate locations and routes. Do not change these settings after live stock moves have been recorded.
Pull rules trigger on demand. When a sales order is confirmed, a pull rule moves stock from the storage location to the output location to the customer. Push rules trigger on arrival. When goods are received at the input location, a push rule moves them to quality check or storage automatically.
Go to Inventory, Configuration, Warehouses to create or edit warehouses. Set the name, short code, and address. For locations, go to Inventory, Configuration, Locations. Create sub locations under your warehouse Stock location to represent physical areas. Keep names short because they appear on all warehouse documents.
Test a full receipt by creating a purchase order and validating the receipt. Test a full delivery by creating a sales order and validating the delivery. Test inventory adjustment by posting a discrepancy. Test inventory valuation by checking the journal entries. Confirm location names print correctly on every document. Every test must pass on staging before production go live.