Every customer sees only what they can buy on every quotation.
Restrict the sales order product dropdown to a per-customer allow-list of categories and specific products, with batch setup, a permission-gated line override, and an audit-ready report.
The problem
In a large, multi-segment catalog, every customer is really only entitled to buy a small subset of your SKUs. Odoo's stock product dropdown does not know that: it offers the whole catalog to every customer on every quotation, so reps waste time scrolling and can accidentally add products a customer is not authorized to buy — a mistake that surfaces later as pricing disputes and order corrections.
The solution
Define an allow-list of categories and specific products right on the customer record, and the sales order product dropdown filters itself to match — enforced server-side, not just hidden client-side. Batch-apply the same rule to many customers at once, let an authorized user override a single line when a real exception is needed, and audit every restriction from one report.
Built for catalog control at scale
Every capability below is implemented in the module.
Category-based visibility
Allow a whole product category, including its sub-categories, so a large catalog can be scoped without listing every SKU by hand.
Specific-product allow-list
Name exact products for tightly controlled or private-label accounts, on top of or instead of any category rule.
Clear, explained precedence
Categories and specific products combine as a union, with inline help on the form so an admin never has to guess how the rule resolves.
Live resolved-set preview
See the exact count and list of products a customer can buy right on the customer form, as you configure the rule — no test order required.
Batch configuration
Select many customers from the customer list and add, remove, or replace their product visibility rules in one action — no repetitive one-by-one setup.
Filtered sales order dropdown
The product fields on quotations and sales orders only offer what the selected customer is allowed to buy, updating live as the customer changes.
Server-side enforcement
A model-level constraint blocks an out-of-scope product from being saved on an order line, so the rule holds beyond the UI dropdown.
Permission-gated line override
An authorized user can add a one-time, out-of-scope product to a single line without dismantling the customer's rule for everyone else.
Audit trail and visibility report
Every override posts a chatter note naming the product, customer, and user, and a dedicated report shows which products are visible to which customers for fast audits.
How it works
Enable and configure
Open a customer's Product Visibility tab, switch the restriction on, and pick allowed categories and/or specific products.
Review the live preview
Check the resolved allowed-product count and list on the same form, before you ever save the record.
Sell with confidence
Create quotations as usual — the product dropdown only offers what this customer is entitled to buy.
Audit and batch update
Review every restriction in the Visibility Report, and use the batch wizard to update many customers at once.
Frequently asked
No sales fog. If your question isn't here, email us and we'll answer it the same way.
The allowed set is the union of both: every product in an allowed category (including its sub-categories) plus any additionally named products. An inline note on the customer form states this explicitly, so you never have to guess.
Buy it on the Odoo App Store
Purchase, download and install directly from the official Odoo Apps Store — you'll always get the latest supported build.
Sales Product Visibility Based On Customer
Restrict the sales order product dropdown to each customer's allowed categories and products, enforced server-side — with batch setup, a permission-gated line override and an audit-ready report.
Buy on Odoo App Store