The evolution of enterprise resource planning (ERP) systems like Odoo is driven by a constant quest for efficiency and simplicity. With Odoo 19 Units of Measure, we witness a significant leap forward in product definition and inventory management. This change isn’t just about a minor tweak; it’s a strategic consolidation that promises cleaner data, more intuitive workflows, and a more robust foundation for your business operations. Understanding this transformation is key to leveraging the full potential of Odoo 19.
The Challenge: Units of Measure and Packaging Before Odoo 19
To truly appreciate the advancements in Odoo 19 Units of Measure, let’s first understand the landscape in previous versions, such as Odoo 18 and earlier. In those iterations, Units of Measure (UOM) and Product Packaging were treated as two distinct and separate entities within the system.
Imagine you’re selling bottled water. You would define “Bottle” as a base Unit of Measure. However, if you also sold this water in “Boxes of 12” and “Pallets of 100,” these would be managed as separate packaging records. This architectural separation, while functional, introduced several complexities and inefficiencies:
-
Duplication of Information: The most prominent issue was redundancy. If you sold items in various configurations like individual pieces, boxes, or pallets, you often had to manage corresponding records in both the UOM and the Packaging models. This meant entering similar data twice, leading to potential inconsistencies and an increased risk of error. A box of 12, for instance, represented a quantity that needed to be understood by both systems, yet resided separately.
-
Increased Complexity and Confusion: For both developers and end-users, this separation often led to confusion. When configuring a new product or updating existing ones, the question frequently arose: “Should I update the packaging, the UOM, or both?” This cognitive load slowed down configuration processes and increased the likelihood of errors, especially for new users or complex product catalogs.
-
Limited Flexibility and Customization: Extending or customizing packaging logic was not always straightforward. Because packaging lived in a separate model, any deep integration or custom business rule that involved both UOM and packaging required more intricate development efforts. This could make it harder to adapt Odoo to unique business requirements without significant code changes.
-
Inconsistent Data: The separation created avenues for data inconsistencies. A change in a product’s UOM might not always be perfectly mirrored in its packaging definitions, leading to discrepancies in stock counts, sales orders, and procurement processes. This could cause operational headaches and inaccurate reporting.
While the older approach worked, it was not the cleanest or most Pythonic design. It added unnecessary layers of complexity to what should be a straightforward aspect of inventory management. Many Odoo experts and consulting firms, including Serpent Consulting Services and Much Consulting, identified this as an area ripe for improvement, advocating for a more unified approach. You can explore more about Odoo’s inventory principles on their official documentation portal, typically found at https://www.odoo.com/documentation/.
The Revolutionary Approach: Odoo 19 Units of Measure Unification
Now, let’s pivot to the game-changing improvement delivered by Odoo 19 Units of Measure. In a move lauded by the Odoo community, Odoo 19 has merged UOM and packaging into a single, unified model. This means that the separate packaging model is no longer part of the core system. Packaging is now handled directly through the Odoo 19 Units of Measure model itself, making everything consistent and incredibly streamlined.
This fundamental shift aligns perfectly with Odoo’s long-term vision of simplifying core models and enhancing user experience. Instead of juggling separate packaging records, you define everything directly within the Odoo 19 Units of Measure framework.
How does this manifest in practice?
Consider our bottled water example from before:
-
Base Unit: You would define “Bottle” as a primary
Odoo 19 Units of Measure. -
Secondary Unit (Box): Instead of a separate packaging record, “Box of 12” is now simply another
Odoo 19 Units of Measure, configured to represent 12 individual bottles. -
Tertiary Unit (Pallet): Similarly, “Pallet of 100” becomes another
Odoo 19 Units of Measure, equivalent to 100 bottles or a specified number of boxes.
All these different ways of quantifying your product – individual units, boxes, pallets – are managed in one central place, under the umbrella of Odoo 19 Units of Measure. This consolidated approach is not only cleaner and more Pythonic but also dramatically simplifies configuration and management for everyone involved. For a deeper understanding of UOM in general, external resources like https://www.iso.org/ provide standards on units of measurement.
Step-by-Step Guide to Understanding and Applying Odoo 19’s Unified UOM
This unified model isn’t just a backend change; it profoundly impacts how you interact with Odoo daily. Here’s a step-by-step guide to grasp and leverage this powerful new feature:
Step 1: Recognize the Shift in Paradigm
-
The Core Idea: Forget the old mental model of UOM and Packaging as separate entities. In Odoo 19, every way you buy, sell, or manage a product’s quantity is considered a Unit of Measure.
-
Implication: This means “a dozen” or “a carton of 24” are no longer just packaging descriptors but fully-fledged UOMs linked to your base product unit.
Step 2: Configure Your Product’s Units of Measure
-
Navigate: Go to
Inventory -> Configuration -> Units of Measure -> Units of Measure. -
Define Base Unit: Every product needs a base UOM (e.g., “Units”, “Each”, “Kg”, “Meter”). This is your fundamental counting unit.
-
Add Conversion Units: For each product, you will define additional UOMs that represent common packaging sizes.
-
Example: For a product with a base UOM of “Each”:
-
Create a UOM for “Box of 12” with a ratio of 12 to the base UOM.
-
Create a UOM for “Pallet of 100” with a ratio of 100 to the base UOM (or a ratio based on how many boxes make a pallet).
-
-
-
Key Fields: When defining these new UOMs, you’ll specify:
-
Unit Name: “Box of 12”, “Pallet of 100”.
-
Category: Link it to the base UOM’s category.
-
Ratio: This is crucial. If “Box of 12” has a ratio of 12, Odoo understands it equals 12 “Each” units.
-
Rounding Precision: How quantities are rounded for this UOM.
-
Step 3: Update Product Information
-
Product Master: On your product form (
Sales -> Products -> Products), ensure your default sales and purchase UOMs are correctly set from your newly defined list. -
Sales/Purchase Lines: When creating sales orders or purchase orders, the UOM selection field will now seamlessly display all your configured options (e.g., “Each”, “Box of 12”, “Pallet of 100”). The system will automatically convert the quantity based on the selected UOM.
Step 4: Streamline Inventory Operations
-
Stock Moves: All internal stock transfers, receipts, and deliveries will now consistently reference the same UOM model, ensuring clarity and reducing conversion errors.
-
Reporting: Inventory reports will be more accurate and easier to interpret, as all quantities are derived from a single, unified source of truth – the
Odoo 19 Units of Measuremodel. -
Procurement Rules: Configuring reordering rules or minimum stock rules becomes simpler, as you only need to specify the desired UOM and quantity, knowing all packaging variations are already accounted for within the UOM framework.
Step 5: Leverage for Customization and Integration
-
Developer Benefits: For developers, extending UOM now inherently extends packaging functionalities, making customization significantly easier. Logic that once spanned two models can now be concentrated in one, simplifying code and reducing maintenance efforts.
-
API Consistency: Integrations with external systems will also benefit from this unified model, as data exchange regarding product quantities can rely on a single, consistent structure. If you previously developed custom modules, consider how this change impacts your existing UOM logic, as outlined in our previous Odoo 18 inventory guide [internal-link: /blog/odoo-18-inventory-management-guide].
Undeniable Benefits of This Unified Model
The merging of Odoo 19 Units of Measure and packaging delivers a cascade of benefits that impact every facet of your business:
-
Cleaner Database Structure: This is a fundamental architectural improvement. Having one table instead of two for product measurement and packaging data significantly reduces redundancy, streamlines database queries, and makes the system more robust and efficient. It’s a testament to Odoo’s commitment to clean, maintainable design.
-
Simpler Configuration: Users no longer need to differentiate between configuring a UOM and configuring packaging. They simply define all relevant
Odoo 19 Units of Measurefor a product, drastically reducing setup time and the potential for configuration errors. This simplicity makes Odoo more accessible to new users and speeds up product onboarding. -
More Intuitive Workflows: Sales, purchases, inventory moves – all these critical business processes now reference the same unified model. This consistency ensures that whether you’re selling a single item or buying a pallet, the system understands the quantities seamlessly. It eliminates the cognitive friction that previously existed, making day-to-day operations smoother and more logical.
-
Better for Developers: This change is a boon for the developer community. Extending UOM functionality now implicitly extends packaging, meaning less code to write, fewer places to maintain, and easier customization. Complex business logic involving product quantities becomes more manageable, fostering quicker development cycles and more stable custom solutions.
-
Error Reduction: With data consolidated into a single model, the chances of inconsistent data between “packaging” and “UOM” are drastically minimized. This leads to more accurate stock counts, precise order fulfillment, and fewer discrepancies in financial reporting, directly impacting your bottom line.
-
Enhanced Scalability: A cleaner, more unified model is inherently more scalable. As your product catalog grows and your business expands, Odoo 19 can handle the increased complexity of
Odoo 19 Units of Measurewith greater efficiency and less administrative overhead.
Why You Should Care: Impact on Your Business
This seemingly small technical change is, in fact, a massive quality-of-life improvement that makes Odoo easier to use for everyone. It’s exactly the kind of innovation that delivers tangible value across your organization:
-
For Users: It translates directly into fewer clicks, less confusion, and a more intuitive experience when managing products, sales, and purchases. This boosts productivity and reduces frustration.
-
For Developers: It means less boilerplate code, easier maintenance, and a more enjoyable development experience. This allows them to focus on delivering value-added customizations rather than grappling with architectural complexities.
-
For Businesses: This unification means fewer mistakes in stock management, more accurate purchase orders, and optimized inventory levels. Ultimately, it leads to cost savings, improved operational efficiency, and a more reliable supply chain. Accurate inventory management is crucial for profitability, and
Odoo 19 Units of Measureprovides a robust foundation.
To summarize, Odoo 19 has decisively simplified Odoo 19 Units of Measure and packaging into a single, cohesive model. It’s cleaner, more consistent, and much easier to work with within real business flows. This powerful enhancement is poised to redefine your approach to inventory, making your operations more efficient and error-free.
Your Thoughts and Next Steps
What do you think of this significant change in Odoo 19 Units of Measure? Will it make your inventory workflows easier and more intuitive? We would love to hear your insights and experiences! Drop your thoughts and questions in the comments below. Your feedback helps us understand how these updates impact your day-to-day use of Odoo.
As always, if you enjoyed this detailed breakdown and found it valuable, don’t forget to like, share, and subscribe to Odoistic for more Odoo deep dives and practical tutorials. For Odoo customizations, full implementations, or expert consultation, reach out to us at contact@odoistic.co.uk. And if you would like to support the channel and our mission to provide high-quality Odoo content, you can donate via PayPal at farukq.aidrash@gmail.com.
Thanks for watching, and we look forward to seeing you in the next video. Take care of yourself and your family!
Discover more from teguhteja.id
Subscribe to get the latest posts sent to your email.

