If your business buys product in one unit and sells it in another, you already know how quickly small measurement gaps turn into real money. A steel trader purchases by the ton but invoices by the kilogram. A food manufacturer receives raw material by weight but dispatches finished goods by the carton. When the system cannot convert between these units automatically, someone ends up doing the math by hand, and that is exactly where stock discrepancies and margin leakage start. This is one of the most common problems I solve through Odoo consulting services, and Odoo 19 handles it better than any version before it.
Dual unit of measure is not an add-on you license separately. It lives inside the core product master, which means once you enable it, every product can carry more than one unit and Odoo converts between them across purchasing, inventory, and sales. The goal of this guide is to show manufacturers, traders, and business owners how the weight and carton scenario works in practice, how to configure it correctly the first time, and where the common traps sit so you can avoid an expensive cleanup later.
Why Weight and Carton Tracking Trip Up Growing Businesses
In the early days, a single unit usually works fine. You buy in kilograms, you store in kilograms, you sell in kilograms. The trouble appears when the business scales and the same product starts moving through the warehouse in different shapes. Procurement wants to buy in bulk to reduce cost, so they order by the ton or the pallet. The shop floor needs a consistent internal unit for accurate stock tracking, usually the kilogram. The sales team wants to quote customers in the format they actually order, which might be a carton, a piece, or a box of a fixed count.
Without automatic unit conversion, each handoff between these teams becomes a manual recalculation. The result is overstocking, line stoppages when materials run short, and pricing errors that quietly eat into your margin. A proper dual UoM setup removes that friction by letting one product hold a weight category unit and a carton quantity at the same time, with Odoo doing the conversion every time a document is created.
What Dual Unit of Measure Actually Means in Odoo 19
A unit of measure is simply a standard used to count or weigh a product, such as kilograms, tons, pieces, or cartons. Dual UoM means a single product is tracked in more than one of these units, with a defined relationship between them so the system always knows how to translate one into the other.
The Shift in Odoo 19: UoM Categories, Packagings, and Reference Units
Odoo 19 changed how this is organised. The setting you enable is now called Units of Measure and Packagings, and the concept of UoM categories links more directly to packagings than it did in older versions. In practice this means weight conversions and carton or box conversions are handled through slightly different mechanisms, and knowing which one to reach for is half the battle.
Every unit belongs to a category, and conversions only work between units in the same category. Weight, Unit, Volume, and Length each come preconfigured. Inside a category, one unit is the reference unit of measure, and every other unit is defined by its conversion ratio relative to that reference.
Weight Category vs Unit Category: Knowing Which Conversion You Need
Here is the distinction that matters most for the weight and carton scenario. If you are converting kilograms to tons, both units sit inside the Weight category, and the conversion is a fixed ratio that is true for every product. One ton always equals one thousand kilograms, no matter what the product is.
A carton is different. A carton of one product might weigh five kilograms while a carton of another weighs twenty. Because the relationship changes per product, cartons are usually best handled as product packagings rather than as a generic weight unit. This is the single most important decision in your setup, and getting it wrong is the reason many self-configured systems produce strange numbers on delivery orders.
Real-World Scenarios Where Dual UoM Pays Off
Manufacturers Buying by Weight and Shipping by Carton
Picture a manufacturer who buys raw resin by the ton, consumes it on the production line measured in kilograms, and ships finished packs by the carton. The purchase unit of measure is tons, the inventory unit is kilograms, and the sales side uses cartons defined per finished product. When a purchase order for three tons is received, Odoo posts three thousand kilograms into stock automatically. No one recalculates anything, and the warehouse receipt already shows the converted quantity.
Traders Purchasing in Bulk and Selling in Pieces
A trader faces the same logic from a different angle. They buy a box of twenty-four units from a vendor but sell single pieces to retail customers. By setting the purchase unit as the box and the sales and inventory unit as the piece, the system converts a purchase order of ten boxes into two hundred and forty pieces in stock. Pricing per unit stays accurate because Odoo recalculates the price against the unit actually used on each document.
Configuring Dual Unit of Measure in Odoo 19 Step by Step
Enabling Units of Measure and Packagings
Start in the Inventory app, go to Configuration and then Settings. Under the Products section, activate the Units of Measure and Packagings setting, then save. This single switch unlocks both the multi-UoM behaviour and the product packagings feature you will use for cartons.
Setting the Reference Unit and Conversion Ratio
To create or adjust units, open Configuration and then Units and Packagings inside the Inventory app. Each unit names its category and points to a reference unit. When you add a new unit, you specify whether it is bigger or smaller than the reference and you enter the conversion ratio. For a Box of 6, for example, the unit is bigger than the reference and the ratio is six, because one box equals six individual units. For tons against kilograms, the ratio reflects that one ton is a thousand times the reference unit.
A quick worked example makes this concrete. Say your reference unit is the kilogram and you define a unit called Sack of 25, bigger than the reference with a ratio of twenty-five. A purchase order for forty sacks then posts one thousand kilograms into inventory, and your stock tracking stays in a single consistent unit while procurement keeps ordering in the format the vendor prefers.
Assigning Sales, Purchase, and Inventory Units on the Product
Open the product form and set the main Unit of Measure, which Odoo uses for sales, inventory, and internal transfers. Then open the Purchase tab and set the Purchase Unit of Measure, which only needs to share the same category as the main unit. From this point, every request for quotation and purchase order pulls the purchase unit, while the warehouse receipt and other internal documents show the converted inventory unit.
Getting the master data right at the product level is the foundation everything else rests on, and it is also where production accuracy is won or lost.
If you want to see how clean unit handling connects to broader shop floor control, my guide on how to manage scrap in Odoo 19 manufacturing walks through related territory where accurate quantities and valuation matter just as much.
Using Product Packagings for Cartons and Pallets
For cartons, pallets, and other product specific containers, use product packagings rather than a shared unit. On the product form, define each packaging with the number of base units it holds, for example a carton of twelve or a pallet of four hundred and eighty. Packagings appear on sales orders, purchase orders, and transfers, and they pair nicely with barcode scanning so receiving a scanned carton adds the correct count to inventory automatically.
How Conversions Flow Across Purchase, Inventory, and Sales
Once configured, the conversion runs quietly through the whole transaction lifecycle. A purchase order raised in tons converts to kilograms on the warehouse receipt. Automatic replenishment generates purchase orders in the purchase unit when stock dips below your threshold. A sales order quoted in cartons converts to the inventory unit on the delivery order, so the demand quantity your warehouse picks is already correct.
This is the quiet payoff of a dual UoM workflow. Reports show unified stock quantities in one consistent unit, invoicing reflects the unit the customer actually bought, and landed cost reconciliation has clean numbers to work from. The conversions are invisible day to day, which is exactly the point.
Common Mistakes and How to Avoid Them
The most frequent error is forcing cartons into the Weight category as if a carton always weighed the same. Because carton weight varies by product, this produces conversion ratios that only work for one item and quietly corrupt the rest. Treat variable, product specific containers as packagings.
The second common mistake is mismatched categories. A purchase unit must share a category with the main unit, so you cannot buy in a length unit and stock in a weight unit without first relating them. The third is decimal precision. If your reference unit needs finer rounding than the system default allows, you will see rounding warnings and small discrepancies creep in, so set your decimal accuracy deliberately before going live.
When You Need a Consultant Versus Standard Configuration
For a single product line with one clean conversion, the standard configuration above is genuinely something a capable in-house user can set up. The calculus changes when you have hundreds of SKUs, mixed weight and carton flows, manufacturing consumption, and inventory valuation tied to costing. At that scale, a small modelling error multiplies across every transaction, and the cost of unwinding it later is far higher than getting a second opinion up front.
If you are mapping a multi-UoM setup across a real product mix and want it built right the first time, Book a Consultation and we will walk through your weight and carton flows, your conversion ratios, and the valuation impact before anything is locked into production.
Conclusion
Dual unit of measure in Odoo 19 turns a recurring source of manual recalculation into an automatic background process. By choosing the right mechanism for each case, fixed ratios within the Weight category for tons and kilograms, and product packagings for cartons and pallets, you give procurement, the warehouse, and sales each the unit they prefer while keeping one accurate source of truth for stock. Set the reference units and ratios carefully, assign purchase and sales units on the product, and the rest of the conversion takes care of itself across every document. For growing manufacturers and traders, that accuracy is not a nice to have. It is the difference between clean margins and silent leakage.
Frequently Asked Questions
1. Is dual unit of measure a separate paid module in Odoo 19?
No. Multi-UoM is part of the core product master in both Community and Enterprise editions. You enable Units of Measure and Packagings once in Inventory settings, and it then applies across Purchase, Inventory, Manufacturing, and Sales.
2. Should I use a weight unit or a packaging for cartons?
Use a product packaging whenever the carton weight changes from product to product. Reserve the Weight category for true weight conversions like kilograms to tons, where the ratio is the same for every product.
3. Can the purchase unit be in a different category from the inventory unit?
Not directly. The purchase unit of measure must share the same category as the main unit so Odoo can convert between them. If the units are genuinely unrelated, you would need to create a custom category that relates them with a defined ratio.
4. Does Odoo recalculate price when the unit changes on a sales order?
Yes. When a different unit is selected on a quotation or sales order, the price is recomputed against that unit, so pricing per unit stays consistent with how the customer is ordering.
5. What happens to stock reports when I track in multiple units?
Inventory is held and reported in a single reference unit, so your stock tracking stays consistent. Purchase and sales documents display their own units, but the warehouse and reporting layer always resolve back to that one inventory unit.
6. Why am I getting rounding warnings on weight units?
This usually means the rounding precision you want is finer than the system decimal accuracy. Set your decimal accuracy and unit rounding deliberately before entering live quantities to avoid small conversion discrepancies.