Running an HVAC business with Odoo

How do I automate parts replenishment in Odoo?

Workflow overview: How do I automate parts replenishment in Odoo?
Workflow overview. Instructional screenshots show the actual demo interface.

Set a native Odoo Auto reordering rule, generate a supplier RFQ from its shortage, and check that a repeated scheduler run does not add another proposal.

Alex wants Odoo to calculate the parts needed to restore a reviewed stock level and prepare a supplier request. This example uses one capacitor rule, checks the native scheduler's result, and leaves the RFQ for purchasing review.

Alex Rivera and Demo Air HVAC are fictional training examples. Prices, dates, quantities and business situations in this guide are illustrative.

Before you begin

Tested in stock Odoo 20.0-20260926 Community as the demo owner administrator, with official modules and standard configuration. Complete partial receiving, supplier setup and user access. Use an administrator in a training database with a restorable checkpoint and one known reordering rule. H12-CAP has one Unit in WH/Stock. This local demo has background cron processing disabled; the shipped procurement scheduler is run manually to test the Auto rule. Unattended clock execution is not verified.

Step-by-step workflow

Step 1. Save the part's vendor pricing

Open Inventory → Products → Products → Demo Run Capacitor H12 → Purchase. Choose Add a line, select existing Demo Supply H10, and set Quantity 1, Unit Units, Unit Price 12 and Lead Time 1 day. Save and reopen. The existing Purchase and inventory tracking remain enabled. This adds one reviewed supplier-price entry; the earlier PO price alone had not created one.

Action 1: Vendor pricing:1 Unit at $12 with1day lead time. The actual target is highlighted in gold.
Vendor pricing:1 Unit at $12 with1day lead time.
Action 2: Save the capacitor supplier-price entry once. The actual target is highlighted in gold.
Save the capacitor supplier-price entry once.
Action 3: Reopen and verify the saved supplier price. The actual target is highlighted in gold.
Reopen and verify the saved supplier price.

Step 2. Create one Auto rule

On the product, open Reordering Rules and choose New if this part/location has no rule. Keep Location WH/Stock and Trigger Auto. Set Min 2 and Max 5, then save the edited row and leave the blank new-row entry. Reopen and verify only one rule for that product/location. In this runtime the native list can begin another blank row; discard that empty entry rather than saving a duplicate.

Action 4: One Auto rule at WH/Stock: Min2, Max5. The actual target is highlighted in gold.
One Auto rule at WH/Stock: Min2, Max5.
Action 5: Save this one edited rule. The actual target is highlighted in gold.
Save this one edited rule.
Action 6: Reopen the one saved product/location rule. The actual target is highlighted in gold.
Reopen the one saved product/location rule.

Step 3. Check the calculated shortage

The saved row shows On Hand 1, Forecast 1, Min 2, Max 5 and To Order 4 Units. The reviewed forecast is below minimum, and four restores the target five. The existing vendor/default warehouse buying path worked without a separate rule Route selection. No stock adjustment or artificial sale is needed to create this shortage.

Action 6: Reopen the one saved product/location rule. The actual target is highlighted in gold.
Reopen the one saved product/location rule.
Action 7: To Order4 restores the forecast from1 to the target5. The actual target is highlighted in gold.
To Order4 restores the forecast from1 to the target5.

Step 4. Run the shipped scheduler in the training check

As the administrator, open Settings and choose Activate the developer mode. Open Technical → Scheduled Actions, search Procurement: run scheduler, and open that exact action. Confirm its Model is Stock Rule, then choose Run Manually. Keep the shipped code and configuration. This action evaluates the database's Auto rules; the test has only this one. The old Inventory Run Scheduler menu was not visible in this runtime, so this guide uses the available native control.

Action 8: Activate developer mode to reach native Scheduled Actions. The actual target is highlighted in gold.
Activate developer mode to reach native Scheduled Actions.
Action 9: Select the exact Procurement: run scheduler action. The actual target is highlighted in gold.
Select the exact Procurement: run scheduler action.
Action 10: Open the native procurement scheduler. The actual target is highlighted in gold.
Open the native procurement scheduler.
Action 11: Confirm Model is Stock Rule; keep the shipped action unchanged. The actual target is highlighted in gold.
Confirm Model is Stock Rule; keep the shipped action unchanged.
Action 12: Run Manually once to test this single Auto rule. The actual target is highlighted in gold.
Run Manually once to test this single Auto rule.

Step 5. Review the generated RFQ

Open Purchase → Orders → Requests for Quotation and inspect the generated request for Demo Supply H10. The scheduler's saved example is P00008, with source OP/00001, four H12-CAP Units at $12, Immediate Payment and $48 + $2.88 fictional tax = $50.88. It remains an RFQ, with no receipt or invoice. Review supplier, quantity, price, dates and approval policy before confirming or sending.

Action 13: Review the generated draft RFQ P00007. The actual target is highlighted in gold.
Review the generated draft RFQ P00007.
Action 14: Four H12-CAP Units at $12, with6% fictional tax. The actual target is highlighted in gold.
Four H12-CAP Units at $12, with6% fictional tax.
Action 15: Review $48 plus $2.88 tax: $50.88 total. The actual target is highlighted in gold.
Review $48 plus $2.88 tax: $50.88 total.
Action 16: Source OP/00001 links this draft proposal to its rule. The actual target is highlighted in gold.
Source OP/00001 links this draft proposal to its rule.

Step 6. Repeat and inspect the covered condition

Return to the same Procurement: run scheduler action and choose Run Manually again. Reopen the saved rule and RFQ. The rule now shows On Hand 1, Forecast 5 and To Order 0 because the pending RFQ covers four Units. P00008 still contains the same one four-unit line; the repeated run creates no additional active capacitor proposal in this test. Physical stock is still one, and the product's ordinary Forecast view remains one until a confirmed movement exists.

Action 17: Run Manually again to check the already covered shortage. The actual target is highlighted in gold.
Run Manually again to check the already covered shortage.
Action 18: The saved rule now has Forecast5, with physical On Hand1. The actual target is highlighted in gold.
The saved rule now has Forecast5, with physical On Hand1.
Action 19: To Order is now0: the pending RFQ covers four Units. The actual target is highlighted in gold.
To Order is now0: the pending RFQ covers four Units.
Action 20: P00007 retains the same one four-unit capacitor line. The actual target is highlighted in gold.
P00007 retains the same one four-unit capacitor line.
Action 21: The product Forecasted remains1; no stock has arrived. The actual target is highlighted in gold.
The product Forecasted remains1; no stock has arrived.

Step 7. Keep scheduled execution separate from this result

The action's native interval is one day, but this demo's runtime has max_cron_threads 0. Its Active checkbox alone does not establish scheduled execution. The test verifies the shipped Auto-rule function through Run Manually, not a later unattended run. Review the host's scheduling operation separately before relying on it in a working business.

Action 22: Review the native one-day interval without changing it. The actual target is highlighted in gold.
Review the native one-day interval without changing it.
Action 23: Active alone does not prove the host executes the job. The actual target is highlighted in gold.
Active alone does not prove the host executes the job.

Check the result

Auto rule OP/00001 uses H12-CAP at WH/Stock with minimum two and maximum five. A native procurement scheduler run created draft P00008 for four Units at $12, total $50.88, with its orderpoint link. A repeated run retained that one active proposal and quantity; rule Forecast is five and To Order zero while physical stock stays one. The earlier manual Order probe P00007 is canceled and retained. No new receipt, bill or external supplier message was created.

If your screen differs

Only one rule, vendor and buying path were tested. The scheduler evaluates all applicable Auto rules, so the single-rule training scope matters. The native rule's Forecast includes the pending RFQ here, while the product's ordinary Forecast remains one; neither means stock physically arrived. Repetition did not add a proposal in this case, but quantity overrides, changed demand, multiple vendors/routes, currency conversion and every retry scenario remain untested. Calendar-triggered execution is still unverified because background processing is disabled.

Frequently asked questions

How do I set automatic reordering rules in Odoo? Save vendor pricing and one product/location rule with Trigger Auto and reviewed Min/Max quantities. This test runs Odoo's shipped procurement scheduler manually and verifies its RFQ. Unattended execution also depends on the host's scheduler, which is disabled in this demo.
Why is an Odoo reordering rule not creating an RFQ? Check the rule's location, forecast, Min/Max, buying path and saved vendor pricing, then whether its actual scheduler executes. Here, a pending four-unit RFQ raised the rule Forecast to five and To Order to zero, so another run did not add a proposal.
Does an Odoo replenishment proposal approve the purchase? The tested scheduler creates a draft RFQ with the supplier, quantities, price and native rule link. It creates no receipt or bill. Supplier, dates, price and purchase approval remain office decisions before confirmation.

Continue building the business

Continue with the verified inventory count or review the purchase-order workflow before confirming a replenishment proposal.

Talk to an Odoo partner

Bring your current process and the result you need to Onward to plan your Odoo workflow. Talk to an Odoo partner.