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.

Capabilities

Everything you need to lock down units

Every capability below is implemented in the module.

01

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.

02

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.

03

Variant-Level Overrides

Let a specific variant permit different units than its template, covering catalogs where variants ship in different pack sizes.

04

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.

05

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.

06

Actionable Error Messages

A blocked unit raises a plain-language message naming the disallowed unit and listing every unit that is allowed instead.

07

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.

08

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.

09

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.

Workflow

How it works

1

Set category defaults

Whitelist the units allowed for each product category from the category form.

2

Configure exceptions

Override the whitelist per product or variant where the category default does not fit.

3

Teams transact as usual

Sales, purchasing and warehouse teams keep using Odoo normally — invalid units are blocked or auto-converted automatically.

4

Review the audit trail

Check the log to see who changed which whitelist and when, or review auto-converted lines.

Questions

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.

Get the app

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