This module extends the functionality of purchases adding a new state Approved in purchase orders before the Purchase Order state. Additionally add the possibility to set back to draft a purchase order in all the states previous to Purchase Order. From a user point of view, this change introduces a two-step validation process of the purchase order.
In this new Approved state:
- You cannot modify the purchase order.
- However, you can go back to draft and pass through the workflow again.
- The incoming shipments are not created. You can create them by clicking the Convert to Purchase Order button, also moving to state Purchase Order.
The new state diagram is depicted below:
auto_awesome What this module does
AI-generated from the code · Odoo 19.0Adds an extra 'Approved' stage to purchase orders before they become real Purchase Orders, so a second person can validate them. You can also send an approved order back to draft or release it to create the incoming shipments.
This module adds a two-step validation to purchase orders. After a request for quotation is confirmed, the order can land in a new 'Approved' stage instead of going straight to 'Purchase Order'.
- Whether this extra stage is used can be set per company in the Purchase settings ('Use Approved Stage'), and per supplier on the partner form ('purchase_requires_second_approval': Never, Based on company policy, or Always).
- When the company policy is on and the supplier is set to 'Based on company policy', confirming an order moves it to 'Approved'. If the supplier is set to 'Always', it always goes to 'Approved'.
- In the 'Approved' stage the order lines and main fields (supplier, dates, currency, company, delivery address, warehouse operation type, source document) become read-only, so the order cannot be changed.
- A 'Convert to Purchase Order' button appears on the order; clicking it moves the order to 'Purchase Order' and creates the incoming shipments.
- From 'Approved' you can still send the order back to draft and run the workflow again, or cancel it.
- A new 'Approved Orders' filter is available in the purchase order list, and the main Purchase Orders menu now shows approved, purchase and done orders.
- The printed purchase order report also treats the 'Approved' stage like the earlier draft/sent/to approve stages.
Depends on
Required by other modules
Models and fields (4)
- res.company · extends an existing modelpurchase_approve_active (Use State 'Approved' in Purchase Orders)
- res.partner · extends an existing modelpurchase_requires_second_approval
- purchase.order · extends an existing modelstate
- res.config.settings · extends an existing modelpurchase_approve_active (Use 'Approved' Stage)
Text generated by AI (DeepSeek) from reading the Odoo 19.0 code on GitHub; it may contain mistakes, so check the code before deciding. View the code on GitHub
Availability by version
Reviewed: 2026-11-03Confirmation status: 8 confirmed, 1 with no information of 9 versions.
Sources · Odoo 17.0
Confirmed on 2026-11-03 in branch 17.0 of OCA/purchase-workflow.
terminal Installation and usage
OCA documentation · Odoo 19.0Configuration
Source · Odoo 19.0This new workflow can be activated by company and by supplier.
To activate the new workflow by company:
- Go to 'Purchase \> Configuration \> Settings'.
- In the Orders section you can set the State 'Approved' in Purchase Orders.
To activate the new workflow by supplier:
- Open the supplier form view.
- In the Purchase section in the Sales & Purchases tab the field Purchase requires second approval allows you to select the policy to apply for the current supplier. 'Never' \| 'Always' \| 'Based on company policy'
Usage
Source · Odoo 19.0To use this module, you need to:
- Go to a Request for Quotation.
- Click Confirm Order. The state is now Approved (if no order approval is not set).
- To move forward to the state Purchase Order and release the creation of the deliveries, click on Convert to Purchase Order.
No verified information in OCA: Installation.
Installation instructions, the distribution package, dependencies and configuration steps are not shown because they have not yet been verified in the module documentation for any version.
Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.