Running an HVAC business with Odoo
How do I require manager approval for purchase orders in Odoo?

Set a native Odoo purchase approval threshold and verify below, equal and above cases with purchaser and manager roles.
Alex wants larger purchases to reach a manager before confirmation. Odoo's native setting works with the purchaser's role, while a Purchase Administrator can confirm directly. This example checks both the amount boundary and that role exception.
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 purchase orders and user access. Reuse Demo Supply H10 and H12-FILTER. In this fixture, Demo Office H03 receives Purchase User access while retaining the earlier Sales access; Demo Air Owner already has Purchase Administrator. Use a restorable training database. All four test orders are synthetic; none is sent to the supplier or received.
Step-by-step workflow
Step 1. Save the native approval threshold
As the administrator, open Purchase → Configuration → Settings, enable Purchase Order Approval, set Minimum Amount 106 USD and choose Save. Reopen and check both the setting and amount. The $106 threshold is chosen only to demonstrate exact-limit behavior with the fictional 6% tax.




Step 2. Give the purchaser the intended role
Open Settings → Users & Companies → Users → Demo Office H03 → Access Rights. Keep Role User and the existing Sales access. Choose Purchase → User, then Save manually and reopen. Do not choose Purchase Administrator for the purchaser. Test in that account's separate browser session; an administrator-only demonstration would miss the approval boundary.




Step 3. Confirm a below-limit order as the purchaser
In the purchaser session, open Purchase → New, select Demo Supply H10 and set Vendor Reference DEMO-H31-BELOW. Add actual product H12-FILTER, Quantity 5, Unit Price 7, Units and the existing 6% demo tax. Leave the price field and review $35 + $2.10 = $37.10. Save, wait for P00002, then choose Confirm Order. It becomes Purchase Order and prepares a receipt; stock is not received.






Step 4. Check an above-limit order
As the same purchaser, create DEMO-H31-ABOVE with 20 filters at $7, total $148.40. Save P00003 and choose Confirm Order. Reopen it: the status is To Approve, with no receipt yet. The purchaser's form has no Approve Order button. Review the visible state; this test does not claim coverage of every possible API or edited-order case.





Step 5. Test exactly the threshold
Create DEMO-H31-EQUAL as the purchaser, using one filter at the illustrative $100 price, total $100 + $6 = $106. Save P00004 and confirm. It also stays To Approve with no receipt. In this test, the limit compares the total including tax and includes equality.





Step 6. Approve the waiting orders as the manager
In the Demo Air Owner session, open P00003 and review supplier, quantities, costs and total. Choose Approve Order. Repeat for P00004, then reopen both. Each becomes Purchase Order and gains one pending receipt. Do not validate receipts in this approval lesson.






Step 7. Check the manager exception
The training test also creates DEMO-H31-MANAGER/P00005 as Demo Air Owner with 20 filters at $7 and a $148.40 total. Confirm Order takes it straight to Purchase Order despite exceeding the limit. This verifies the Purchase Administrator exception: the native setting does not guarantee that every purchase has a second person's approval.





Check the result
The purchaser's $37.10 P00002 confirmed directly. Purchaser-created P00003 at $148.40 and P00004 at exactly $106 waited To Approve without receipts; the purchaser had no Approve Order button. The manager approved both, creating pending receipts. Manager-created P00005 at $148.40 confirmed directly. All four are now Purchase Orders with unreceived receipts and no new bill; H12 stock remains five filters, one capacitor and zero condensers.
If your screen differs
Purchase Administrator can confirm above the limit, including a manager's own order. This is a native threshold and role workflow, not a guarantee of two different approvers for every purchase. The tested comparison includes total tax and equality in USD; other currencies, later edits, cancellation/reconfirmation and direct API authorization were not tested. Receipt Quantity can already be filled while its state is Ready; only a validated receipt establishes received stock.
Frequently asked questions
How do I require approval for large Odoo purchase orders?
Enable Purchase Order Approval, save the minimum amount and give ordinary purchasers Purchase User access. In this test, their orders at or above $106 including tax waited To Approve until a Purchase Administrator used Approve Order.Why can my Odoo user approve their own purchase order?
The tested Purchase Administrator confirmed a $148.40 order directly despite the $106 limit. The Purchase User's above-limit order waited and its form had no Approve Order button. Review the actual role; this setting does not enforce a second person for every order.Does Odoo purchase approval need Studio?
This tested workflow uses the shipped Purchase Order Approval setting and native Purchase User/Administrator roles in the stated edition. No Studio, custom field or custom approval rule was used.Continue building the business
Continue with serial-number tracking or the verified partial receipt.
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.