Require partners to be approved before thay can be used on Sales 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.0Adds a 'Can Sell To' flag on contacts and a 'Approved for Sales' flag on partner stages, so only approved customers can be selected on sales orders. Two optional blocking rules can stop sales orders that use non-approved customers or invoice addresses.
This module controls which contacts are allowed to be used as customers on sales orders. On each contact form you get two new fields in the Sales section: 'Candidate to Sell To' (visible while the contact is still in a draft stage) and 'Can Sell To' (read-only). A contact becomes sellable only when it is marked as a candidate and its current stage is flagged as 'Approved for Sales'.
On the contact stage configuration screen a new 'Approved for Sales' checkbox is added, so you decide which stages mean the partner is approved for selling.
When a contact is created or its stage is changed to a non-draft stage, Odoo automatically recalculates the 'Can Sell To' flag. Contacts linked to a parent company inherit the parent's sellable status.
On sales orders, the Customer and Invoice Address fields are filtered so only contacts with 'Can Sell To' enabled can be chosen.
Two exception rules are provided for the sale exception mechanism: 'Customer is Approved' and 'Invoicing Address is Approved'. They block a sales order when the customer or the invoice address is not approved for sales. Both rules are installed inactive, so you must enable them to enforce the block.
On installation, all existing contacts are set as sellable and candidates, to avoid disruption.
Depends on
Models and fields (3)
- sale.order · extends an existing modelpartner_id, partner_invoice_id
- res.partner · extends an existing modelsale_ok (Can Sell To), candidate_sale (Candidate to Sell To)
- res.partner.stage · extends an existing modelapproved_sale (Approved for Sales)
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/sale-workflow.
terminal Installation and usage
OCA documentation · Odoo 14.0Configuration
Source · Odoo 14.0The Sales Order validation rules are configurable. By default Sale Order confirmation is prevented is the Customer or Invoice Address is not approvaed to be used in sales.
To configure Sales Order validations navigate to Sales / Configuration / Sales Orders / Sale Exception Rules. You need to belong to the Exception Manager security group to see this menu option.
For new customer 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 Sales"
- Edit the "Draft" stage: check "Default Stage" and uncheck "Approved for Sales"
Usage
Source · Odoo 14.0To approve a Partner to be used in sales:
- Edit the Partner form, and in the "Sales & Purchase" tab check the "Candidate to Sell" box.
- Make sure the Parter is in a Stage that has the "Approved for Sales" checkbox enabled. If this is the case, the Partner will automatically have enabled the "Can Sell To" checkbox. found next to the "Candidate to Sell" checkbox.
The "Candidate to Sell" checkbox is only available in a draft/to approve Stage. The "Can Sell 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 Sell To". This means that removing from Can Sale state also needs to go through an approval.
On a Sales Order:
- The "Customer" and "Invoice Address" selection lists only propose partners you "Can Sell To".
- The CONFIRM button will show a blocking exception message if the selected Customeror Invoice Address do not have the "Can Sell 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.