Odoo Inventory Tutorial: Complete Warehouse Setup Guide

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. The rest of this odoo inventory tutorial walks through each phase in the exact order it must be done.


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. Skipping this step forces you to redo work later.

Inventory → Configuration → Settings
  • Enable Storage Locations. This option is required before any sub locations can be created. Without it, only the default WH/Stock location is available.
  • Enable Multi Step Routes. This automatically activates Storage Locations if not already enabled. It is required before any custom routes can be configured.
  • Enable Lots and Serial Numbers if your business tracks items by batch or serial. This setting cannot be added to existing stock moves after the fact.
  • Enable Storage Categories if you need to restrict what product types go to which location. Examples include cold storage, hazardous goods, or high value segregation.
  • 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. Adding it later requires re entering all affected inventory.

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. Get this right before you create any stock moves.

Inventory → Configuration → Warehouses
  • Rename the default warehouse. Odoo creates "My Company" with short name "WH" on installation. Rename it to your actual warehouse name before creating any stock moves.
  • The short name appears on all documents. Keep it to 2 to 5 characters. Examples include WHSRT for Surat, WHPUN for Pune, and WHMUM for Mumbai.
  • 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. Once documents are generated with a warehouse name, changing it later creates inconsistencies across historical records.

Step 3: Set Incoming and Outgoing Shipment Steps

After enabling Multi Step Routes, the warehouse form shows shipment step configuration. 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, run a 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. The additional transfers create confusion for staff. 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 what each one means prevents structural mistakes that are difficult to reverse later.

← Scroll to see all columns →

Location TypeWhat It RepresentsIn Your Stock Count?
InternalPhysical storage inside your warehouse, including shelves, zones, and 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. Products here are in transit.No
Inventory AdjustmentWhere stock discrepancies are posted during cycle counts.No
ProductionWhere raw materials are consumed in manufacturing. Connects to MRP.No
💡Only Internal locations hold countable stock. All other types are virtual and exist to make Odoo double entry inventory system work. 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 location structure makes picking faster and reporting more accurate.

Inventory → Configuration → Locations
  • Default structure after enabling Storage Locations. Physical Locations contains WH which contains Stock. This is your root internal location.
  • Create sub locations under WH/Stock for each physical area, for example WH/Stock/ZoneA, WH/Stock/Shelf01, or WH/Stock/ColdStorage.
  • Keep names short. Location hierarchy displays as a path. Long names create clutter on warehouse documents.
  • Set the Removal Strategy on each location if products need to be picked in a specific order. Choose FIFO, FEFO for expiry date items, or LIFO.
  • Set the Inventory Frequency for cyclic counting per location. Use 30 for monthly counts and 90 for quarterly counts.
💡Match your location structure to your physical warehouse layout. If warehouse staff cannot find the location printed 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 and across your supply chain. Most routes 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 you configured in Step 3. Examples include "Receive in 2 steps" and "Deliver in 2 steps".
  • Do not delete auto generated routes. They are referenced by the warehouse configuration. Removing them breaks inbound or outbound flows.
  • Routes consist of Rules. Each rule has an Action that is 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, either at warehouse level, product level, or product category level.
  • Apply routes at the product category level for bulk assignments. A 3 step delivery 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. They save time at the receiving dock and reduce mistakes by warehouse staff.

Inventory → Configuration → Put Away Rules
  • Put away rules send incoming products to the right shelf automatically. No manual location selection is needed on receipt.
  • Create rules by product, by product category, or by package type.
  • Example. A rule that sends all "Raw Materials" category items 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 without put away logic.
💡Test put away rules before go live. Create a test receipt and confirm the product lands in the expected location. Fix misrouted rules now, not after 500 receipts have been processed.

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 the minimum quantity, maximum quantity, and preferred vendor.
  • The Odoo scheduler runs daily. When stock drops below the minimum, it automatically generates a purchase order or a manufacturing order.
  • Set Lead Time correctly on the vendor and the product. The scheduler uses lead time to determine when to trigger the purchase so stock arrives 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, no exceptions. Treat this final step of the odoo inventory tutorial as a hard gate, not a recommendation.

✅ 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 the correct pick, pack, and ship operations are generated based on outgoing routes.
  • 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. Fix naming issues before live documents reach customers or vendors.
Only move to production after every test passes on staging. A failed test on day one creates problems that take weeks to clean up. Spend the time on staging now.
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 that represents 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. Each route contains rules with a source location, a destination location, and a trigger action.
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. Routes combine both types to create complete flows.
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.