Require partners to be approved before thay can be used on Purchase Orders.
This does not require, but was designed to be used with Partner Tier Validation (partner_tier_validation module).
Using that module, rules can be configured on who must approve, before the Partner Stage can be changed to an apptoved one.
auto_awesome What this module does
AI-generated from the code · Odoo 14.0Control which partners can be used as vendors on purchase orders by marking them as approved for purchase. Vendors must be approved before they can be selected on a purchase order.
This module adds an approval step for vendors (suppliers) so that only approved contacts can be used on purchase orders.
On each contact form, in the Purchase tab, you now see two checkboxes: 'Candidate Purchase To' (visible while the contact is still in a draft stage) and 'Can Purchase To' (read-only, set automatically). A contact becomes 'Can Purchase To' only when it is in a stage marked as 'Approved for Purchase' and the 'Candidate Purchase To' box is ticked. Child contacts inherit the approval of their parent company.
On the contact stage configuration screen, a new 'Approved for Purchase' checkbox lets you decide which stages count as approved. By default it is ticked.
When creating a purchase order, the vendor field and the drop-ship address field only show contacts that are approved for purchase. Two optional blocking rules are installed but disabled by default: 'Vendor is Approved' and 'Drop Ship Address is Approved'. When enabled, they prevent confirming a purchase order that uses a non-approved vendor or drop-ship address.
Upon installation, all existing contacts are automatically set as approved so that current purchasing keeps working without disruption.
Depends on
Models and fields (3)
- res.partner · extends an existing modelpurchase_ok (Can Purchase To), candidate_purchase (Candidate Purchase To)
- purchase.order · extends an existing modelpartner_id, dest_address_id
- res.partner.stage · extends an existing modelapproved_purchase (Approved for Purchase)
Text generated by AI (DeepSeek) from reading the Odoo 14.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: 1 confirmed, 8 with no information of 9 versions.
Sources · Odoo 14.0
Confirmed on 2026-11-03 in branch 14.0 of OCA/purchase-workflow.
terminal Installation and usage
OCA documentation · Odoo 14.0Configuration
Source · Odoo 14.0The Purchase Order validation rules are configurable. By default Purchase Order confirmation is prevented is the Vendor or Drop Ship Address is not approvaed to be used in Purchase.
To configure Purchase Order validations navigate to Purchase / Configuration / Purchase Exception Rules. You need to belong to the Exception Manager security group to see this menu option.
For new vendor to require approval before being sold to, configure the Contact Stages appropriately. For example:
- Navigate to Contacts / Configuration / Contact Stages
- Edit the "Active" stage: uncheck "Default Stage" and check "Approved for Purchase"
- Edit the "Draft" stage: check "Default Stage" and uncheck "Approved for Purchase"
Usage
Source · Odoo 14.0To approve a Partner to be used in purchase:
- Edit the Partner form, and in the "Sales & Purchase" tab check the "Candidate to Purchase" box.
- Make sure the Parter is in a Stage that has the "Approved for Purchase" checkbox enabled. If this is the case, the Partner will automatically have enabled the "Can Purchase To" checkbox. found next to the "Candidate to Purchase" checkbox.
The "Candidate to Purchase" checkbox is only available in a draft/to approve Stage. The "Can Purchase To" will only be set when moving to a Stage that is not draft/to approve. Moving from an approved Stage to a draft one will not automatically reset the "Can Purchase To". This means that removing from Can Purchase state also needs to go through an approval.
On a Purchase Order:
- The "Vendor" and "Drop Ship Address" selection lists only propose partners you "Can Purchase To".
- The CONFIRM button will show a blocking exception message if the selected Customeror Drop Ship Address do not have the "Can Purchase To" flag checked (this may vary depending how the exception rules are configured).
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.