Every unit of measure, enforced — not just suggested
Whitelist which units each category, product and variant may use, and block invalid quantities on sales, purchase and inventory documents before they cause a picking or valuation error.
The problem
Odoo lets any product be transacted in any unit that shares its UoM category, so a sales rep can pick grams for a product that only makes sense in each, or a buyer can enter pallets where only boxes are valid. The native UoM domain is just a UI hint — imports, RPC calls and automations sail straight past it, and the error only surfaces once a shipment, invoice or valuation is already wrong.
The solution
Allowed Product UOM adds a hierarchical whitelist — category, then product, then variant — backed by a hard server-side constraint on every sales, purchase and inventory line. A blocked unit shows exactly which alternatives are allowed, and an optional auto-convert setting can silently correct a wrong-but-convertible entry instead of stopping the user.
Everything you need to lock down units
Every capability below is implemented in the module.
Category-Level Defaults
Whitelist the units allowed for an entire product category in one place, so a large catalog inherits sane defaults without touching every product.
Product-Level Whitelist
Set a product to Custom and choose exactly which units it may be transacted in, on top of its own base unit.
Variant-Level Overrides
Let a specific variant permit different units than its template, covering catalogs where variants ship in different pack sizes.
Category → Product → Variant Precedence
A single, predictable hierarchy: a variant's own rule overrides the product's, and the product's overrides the category default, so admins always know where a rule comes from.
Hard Enforcement Everywhere
Sales order lines, purchase order lines, stock moves and move lines all validate the unit server-side — imports, RPC calls and automations cannot bypass it.
Actionable Error Messages
A blocked unit raises a plain-language message naming the disallowed unit and listing every unit that is allowed instead.
Optional Auto-Convert
Turn on auto-convert and a disallowed-but-convertible unit is silently converted to the product's base unit and quantity instead of blocking the line.
Bulk Setup Wizard
Assign allowed units to multiple categories at once and reset matching products to inherit the new defaults — configure a catalog in minutes.
Full Audit Trail
Every change to a category, product or variant whitelist, plus every auto-conversion, is logged with who, when and the before/after values.
How it works
Set category defaults
Whitelist the units allowed for each product category from the category form.
Configure exceptions
Override the whitelist per product or variant where the category default does not fit.
Teams transact as usual
Sales, purchasing and warehouse teams keep using Odoo normally — invalid units are blocked or auto-converted automatically.
Review the audit trail
Check the log to see who changed which whitelist and when, or review auto-converted lines.
Frequently asked
No sales fog. If your question isn't here, email us and we'll answer it the same way.
Sales order lines, purchase order lines, stock moves and stock move lines all validate the chosen unit server-side, so the restriction holds even outside the form view — including imports, RPC calls and automated flows.
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.
Allowed Product UOM — Hierarchical UoM Restrictions
A category, product and variant whitelist of permitted units of measure backed by a hard server-side constraint that imports, RPC calls and automations cannot slip past — with actionable errors, optional auto-convert and an audit trail.
Buy on Odoo App Store