| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Inventory (stock)
• Discuss (mail) • Invoicing (account) |
| Lines of code | 727 |
| Technical Name |
trdo_variant_uom_management |
| License | LGPL-3 |
| Website | https://truodo.com |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Inventory (stock)
• Discuss (mail) • Invoicing (account) |
| Lines of code | 727 |
| Technical Name |
trdo_variant_uom_management |
| License | LGPL-3 |
| Website | https://truodo.com |
Standard Odoo — The Gap That Costs You
- One UoM forced across all product variants
- No per-variant Unit of Measure assignment
- Zero automatic base quantity conversion
- Different pack sizes = constant manual math
- Stock errors from manual UoM calculations
Separate Variant UoM — Problem Solved
- Separate UoM for every product variant
- Different product UoM per variant, auto-linked to base
- Real-time stock conversion — zero manual effort
- Automatic parent stock aggregation in base UoM
- Sales order deduction synced across all variants
Here's a problem every growing business hits in standard Odoo: you sell Rice in 3kg bag, 5kg bag, and 10kg bag — but Odoo only lets you assign one Unit of Measure to the entire product. That means every variant shares the same UoM, making it impossible to track or convert stock by pack size without doing the math yourself. Every. Single. Time.
Separate Variant UoM breaks that limitation. It lets you assign a separate product UoM for each variant — so Rice (3kg bag) gets its own UoM of 3kg bag, Rice (5kg bag) gets 5kg bag, and so on. Each variant UoM is linked to the product's base UoM (e.g., kg), and all stock is automatically converted and aggregated in real time. No formulas. No spreadsheets. No guesswork.
Think of it this way: you add 10 bags of the 3kg variant — the module instantly knows that's 30kg. Add 6 bags of 5kg and 3 bags of 10kg, and your parent product automatically shows 90kg total stock. When a sales order goes out, the variant quantities are deducted and the base UoM total updates on its own.
This is what per-variant Unit of Measure management should look like — intelligent, automatic, and deeply integrated with Odoo Inventory and Sales. Whether you're managing a warehouse, a distribution center, or an eCommerce store with different product UoM per SKU, this module handles it all without a single manual calculation.
If you've been searching for a way to set different UoM for product variants in Odoo, or looking for an Odoo variant-wise UoM module that actually works end-to-end — you've found it.
Separate UoM per Variant
Assign a completely different Unit of Measure to each product variant — independently, without affecting other variants.
Automatic UoM Stock Conversion
Each variant's stock quantity is converted to the base UoM in real time — the moment stock is added or sold.
Live Quantity Calculation
No stale data. Parent product stock always reflects current totals from all variants in the base UoM.
Automatic Parent Stock Aggregation
All variant quantities — regardless of their individual UoM — roll up automatically into one unified parent product stock total.
Sales Order Variant UoM Deduction
Sold variant quantities are automatically converted and deducted in base UoM — keeping stock accurate after every delivery.
Simple One-Time Setup
Enable Variants and Units of Measure in Inventory Settings — and the entire variant UoM management system is ready to use.
FMCG & Food Distribution
Sell rice, flour, sugar, or edible oil in 1kg bag, 5kg bag, and 25kg bag — each with its own separate variant UoM and unified kg-based stock view.
Manufacturing & Wholesale
Track raw materials and finished goods with different product UoM per variant — without losing visibility into your total base-unit inventory.
Retail & eCommerce
List the same product in multiple pack sizes online — and let variant-wise UoM management keep every SKU's stock accurate automatically.
Enable Settings
Activate Variants and Units of Measure in Inventory Settings — a one-time step.
Set Base UoM
Create your product and set a base Unit of Measure (e.g. kg) — this is the common measurement all variants convert into.
Assign Variant UoM
Give each variant its own separate UoM (3kg bag, 5kg bag, 10kg bag) with a conversion factor tied to the base UoM.
Watch It Auto-Aggregate
Add stock per variant — quantities are instantly converted and the parent product total updates in base UoM automatically.
The Only Odoo Module with True Per-Variant UoM Control
Fully compatible with Odoo 19 Community and Enterprise. Assign different product UoM per variant, automate stock conversion, and get real-time accuracy — all without a single manual calculation.
Enable Inventory Settings
Enable Variants and Units of Measure & Packagings from Inventory Settings before creating products.
Inventory Settings → Enable Variants and Units of Measure
User Settings → Confirm UoM is active
Create Product with Base UoM
Create a new product and configure the base Unit of Measure as kg. This UoM will be used for automatic stock conversion and quantity calculations across all variants.
Product Form → Set base Unit of Measure to kg
Create Product Variants
Add a weight attribute with values 3kg bag, 5kg bag, and 10kg bag in the product's Variants tab.
Variants Tab → Add weight attribute with 3kg bag, 5kg bag, 10kg bag values
Configure Variant-wise UoM
Configure each variant with its own Unit of Measure. Each variant UoM is linked to the base UoM for automatic conversion.
Rice (3kg bag)
Rice (5kg bag)
Rice (10kg bag)
Each variant configured with its own Unit of Measure
Add Variant Stock
Add stock for each variant. The module automatically converts each variant quantity into the base UoM and aggregates the total product stock.
- 10 bags of 3kg bag variant = 30kg
- 6 bags of 5kg bag variant = 30kg
- 3 bags of 10kg bag variant = 30kg
Product stock automatically aggregated as 90kg
Create Sales Order
Create a sales order using the product variants. Each line item quantity is automatically converted to the base UoM during delivery and stock deduction.
- 5 bags of Rice (3kg bag)
- 4 bags of Rice (5kg bag)
- 2 bags of Rice (10kg bag)
Sales order confirmed and stock transfer validated
Remaining Stock Calculation
After the sales order is delivered, the remaining stock per variant is automatically recalculated and the parent product total is updated in the base UoM.
| Variant | Initial Qty | Sold Qty | Remaining Qty | Converted Qty |
|---|---|---|---|---|
| Rice (3kg bag) | 10 bags | 5 bags | 5 bags | 15kg |
| Rice (5kg bag) | 6 bags | 4 bags | 2 bags | 10kg |
| Rice (10kg bag) | 3 bags | 2 bags | 1 bag | 10kg |
| Final Remaining Stock | 35kg | |||
Final remaining stock displayed as 35kg on the product
Please log in to comment on this module