Replenishment in Odoo: The Secret to Never Running Out of Stock
"We ran out of stock again and lost three big orders this week." Sound familiar? You're not alone. Stock outs are one of the most painful and avoidable problems in any business.
If you're using Odoo (or thinking about it), you already have everything you need to never run out of stock again. The feature is called "Replenishment" and once you understand it, you'll wonder how you ever managed without it. Let's break it down in plain language.
What Is Replenishment in Odoo?
Replenishment is Odoo's intelligent system that monitors your stock levels and automatically creates purchase or manufacturing orders before you run out.
Think of it like a smart assistant that:
• Tracks every product in real time
• Alerts you (or acts automatically) when stock is getting low
• Creates the right order from the right supplier at the right time
• Makes sure you're always ready for the next customer
Instead of manually checking every product every day, Odoo does the heavy lifting for you.
Why Replenishment Matters?
Let's be honest — most businesses track stock manually in spreadsheets or rely on "gut feeling." That leads to two very common (and very costly) problems:
Odoo Replenishment solves both problems by keeping stock in the "Goldilocks zone" — not too little, not too much.
Types of Replenishment Strategies
Before we dive into the setup, you need to understand the two core strategies Odoo offers:
1. Make to Stock (MTS)
You keep stock in your warehouse and replenish based on minimum/maximum thresholds.
Best for:
• High-volume, fast-moving products
• Predictable demand (daily, weekly patterns)
• Fast-moving goods (e.g., packaging materials, raw materials, standard products)
How it works:
• Set a Minimum Quantity (trigger point) and a Maximum Quantity (refill target)
• When stock drops below that minimum, Odoo automatically creates a replenishment order
• Automatically refills up to the maximum
2. Make to Order (MTO)
Odoo only triggers a purchase or production order when an actual customer sales order is confirmed.
Best for:
• Custom or configured products
• Expensive items you don't want sitting in stock
• Products with long shelf lives or very slow movement
How it works:
• Customer places an order → Odoo creates a purchase/manufacturing order immediately
• Stock flows directly: Supplier → Warehouse → Customer
Pro Tip: You can also combine both! Odoo supports MTS+MTO — if stock is available, it's used. If not, a new supply order is triggered automatically.
How to Configure Replenishment in Odoo
Let's walk through the actual configuration inside Odoo. This is where it gets practical.
Step 1: Enable the Right Settings
First, make sure your Odoo instance has the right features turned on. Go to: Inventory → Configuration → Settings

Make sure the following are enabled:
Storage Locations
Needed to assign replenishment to specific locations
Multi-Step Routes
For advanced warehouse flows (optional but recommended)
Replenish on Order (MTO)
Under the Logistics section — required for Make to Order strategy
Click Save after enabling.

Also scroll down to find under Advanced Scheduling:
Days to Purchase
Number of days your internal team needs to confirm and send a PO to the supplier
Security Lead Time for Sales
Buffer before committing stock to a customer (applies to outbound delivery, not purchasing)
Click Save after enabling.
Step 2: Configure the Product Routes & Supply Method
Now go to your product: Inventory → Products → Products → [Open a Product]
Click on the Inventory tab inside the product form.

Set the Route
Select which route applies to this product:
Buy → Odoo will create a Purchase Order to replenish
Manufacture → Odoo will create a Manufacturing Order
Make to Order → Triggers only when a sales order is confirmed
Buy + MTO → Uses stock if available, buys if not
Set Vendor (for Buy Route)
Make sure the correct option is checked at the top of the product form and go to the Purchase tab of the product form.

Also go to the Purchase tab and make sure at least one vendor is listed with a price. Without a vendor, Odoo won't know who to buy from!
Step 3: Set Up Reordering Rules (Min/Max)
This is the core of the Make to Stock strategy.
Navigate to: Inventory → Operations → Replenishment

The replenishment dashboard is more visual. You can see On Hand, Forecasted Qty, and To Order all in one row per product. Click "New" to create a rule, or click on an existing product row to edit.

Here's what each field means:
Example in Real Life:
You stock printer cartridges. You never want fewer than 10. You want max 60 at a time (supplier sells in packs of 10).
• Min Qty: 10
• Max Qty: 60
• Qty Multiple: 10
When stock hits 8, Odoo orders 50 more → next pack brings you to 58. Clean and automatic.
Step 4: Understand Lead Times
Lead times are the most misunderstood part of replenishment. Get them wrong, and orders will be created too late and you'll still run out.
There are three layered lead times that work together:

1. Vendor/Supplier Lead Time
Product → Purchase tab → Supplier List
Set on the vendor price list under the Purchase tab of the product. How many days does your supplier take to deliver after you place the order?
2. Days to Purchase
Inventory Settings → Advanced Scheduling
This is the number of days your internal purchasing team needs to review and confirm a PO before sending it to the supplier.
3. Security Lead Time for Sales
Inventory Settings → Advanced Scheduling
This applies to customer delivery only and not to purchasing. It moves the scheduled delivery date earlier to build in a buffer before the customer's promised date.
Step 5: Triggering Replenishment
You have two options in Odoo:
1. Manual Replenishment (On-Demand)
Go to Inventory → Operations → Replenishment

By default, Odoo filters this view to show only products that actually need to be reordered (i.e., their stock is below the minimum, or they have a forecasted shortage). You'll see:
• Current stock
• Forecasted stock
• Suggested order quantity (To Order)
Click "Order" on the row (or select multiple rows and use the bulk action) to trigger a one-time order. If you click "Automate", Odoo will set the rule to run automatically in the background going forward. Odoo instantly creates a Purchase Order or Manufacturing Order for those products.
2. Automatic Replenishment (Scheduler)
Odoo has a built-in background task (cron job) that runs replenishment automatically, usually once a day.
If a rule is set to Automate, Odoo will check stock levels during this background run and silently generate Purchase Orders or Manufacturing Orders without any human intervention.
Step 6: Review and Confirm the Purchase Order
After replenishment runs, the order lands in: Purchase → Orders → Requests for Quotation

Forecasted Demand View
One of the nicest additions in Odoo is the Forecasted Demand view inside the replenishment screen.

This view shows you:
• Current stock level
• Incoming stock (from confirmed POs)
• Outgoing demand (from confirmed Sales Orders)
• Forecasted stock over the next 30/60/90 days
This helps you spot problems before they happen, not after you've already run out.

Multi-Warehouse Replenishment
If your business operates multiple warehouses or retail locations, Odoo handles inter-warehouse replenishment natively.
Go to: Inventory → Configuration → Warehouses → [Select a Warehouse]

Enable "Resupply from [Main Warehouse]" and Odoo will automatically create Internal Transfer orders to move stock from your main warehouse to a branch instead of creating a new purchase order.
This is extremely powerful for:
• Retail chains with a central warehouse
• Manufacturing + distribution setups
• Regional hubs that replenish from a main depot
Real-World Business Example
Company: A medical supply distributor with 2 warehouses
Challenge: Running out of critical items at Branch B while Main warehouse had excess stock
Their Odoo 19 Setup:
• Route on products: Resupply Branch B from Main WH
• Min Qty at Branch B: 50 units
• Max Qty at Branch B: 200 units
• Internal Transfer Lead Time: 1 day
What Happens Now:
• Stock at Branch B drops to 42 units on Tuesday
• Odoo scheduler runs → detects below minimum
• Internal Transfer order auto-created: 158 units from Main WH to Branch B
• Transfer validated next morning → Branch B back to 200 units
Zero stockouts. Zero manual calls between warehouses.
Business Benefits
Operational Efficiency
Eliminate hours of manual stock audits and data entry.
Optimized Cash Flow
Stop over-investing in slow-moving inventory and free up working capital.
Improved Service Levels
Ensure products are always available, leading to higher customer satisfaction and repeat business.
Data-Driven Decisions
Leverage Odoo's forecasting to scale your procurement with actual demand trends.
Enhance Your Workflow with GritXi Odoo Apps
To further optimize your replenishment and inventory management, consider these specialized GritXi modules:
GritXi Secondary UOM: Manage products in multiple units of measure, crucial for complex raw material replenishment.
GritXi Stock Picking Tags: Organize and prioritize your incoming replenishment shipments for faster processing.
GritXi Minimum Product Quantity: Enforce minimum purchase quantities on the website shop, including variant-level controls, useful for supplier pack sizes and replenishment planning.
GritXi Product Low Stock Notification: Get real-time alerts when items hit critical levels, ensuring you never miss a replenishment window.
GritXi Section/Line in Delivery Slip: Improve delivery slip clarity by adding sections and notes to stock transfers, which helps with cleaner warehouse documentation.
Conclusion
Replenishment in Odoo is no longer just a feature, it's a fully automated supply chain safety net.
Once configured:
• You'll never manually check stock again
• Purchase orders appear before you even realize you're running low
• Your team focuses on growth, not firefighting stockouts
Whether you run a single store or a multi-warehouse distribution network, Odoo's replenishment system grows with you — and protects your business every single day.
Set it up once. Let it run forever.
FAQ
Q: Can I use different replenishment rules for different warehouses?
A: Yes, Odoo allows you to set location-specific reordering rules so you can manage stock levels independently for each branch.
Q: What happens if Odoo triggers a replenishment but there is no vendor set?
A: The replenishment will appear in your dashboard, but Odoo cannot generate a Purchase Order. You must ensure at least one vendor is configured in the product form.
Q: Does the scheduler run automatically?
A: Yes, Odoo typically runs a background cron job once a day to check reordering rules, but you can also trigger it manually at any time.
How to Set Up Replenishment in Odoo for Better Stock Control