Product Logistics UoM Net Weight Integration
This module solves compatibility issues between product_logistics_uom and product_net_weight when both modules are installed simultaneously and products use different Units of Measure (UoM) for weight.
The problem occurs because:
- product_logistics_uom stores weight values converted to the system's base UoM
- product_net_weight assumes all weight fields use the same UoM for validation
- This causes ValidationError when comparing net weight vs gross weight in different UoM
This integration module provides:
- A new product_net_weight field that displays net weight in the product's configured UoM
- Proper UoM conversion between product-specific and system UoM
- Maintains compatibility with existing data through a migration hook
- Preserves all functionality from both original modules
- Automatic installation when both dependency modules are present
Auto-Installation Behavior
This module is configured for automatic installation when both product_logistics_uom and product_net_weight are installed in the same database. This ensures seamless compatibility without manual intervention, preventing ValidationError issues from occurring.
The validation logic is corrected to compare weights in the same UoM, preventing false validation errors while maintaining data integrity.
auto_awesome What this module does
AI-generated from the code · Odoo 16.0When both the logistics UoM and net weight modules are installed, this module shows and lets you edit a product's net weight directly in the product's own weight unit, instead of the system's base unit.
This is a compatibility bridge between two modules: one that lets each product use its own weight unit of measure, and one that manages net weight (weight without packaging). Without it, entering net weight in a product-specific unit could cause errors.
What changes for users: - On the product and product variant forms, the old net weight field is hidden and replaced by a new "Net Weight" field that is expressed in the product's own weight unit. - When you type a net weight in that unit, Odoo automatically converts and stores it in the system's base weight unit behind the scenes, and converts it back for display. No manual conversion is needed. - On product templates with a single variant, the value is shared with that variant; when a new variant is created, the template's net weight is passed to it. - For templates with several variants, the template-level field is only shown when relevant, and it stays at zero unless there is exactly one variant.
The module installs automatically when both dependency modules are present. A one-time data migration copies existing net weight values into the new field so no data is lost. It touches product.product and product.template and the product form views.
Depends on
Models and fields (2)
- product.product · extends an existing modelnet_weight, product_net_weight (Net Weight)
- product.template · extends an existing modelproduct_net_weight (Net Weight in product UOM)
Text generated by AI (DeepSeek) from reading the Odoo 16.0 code on GitHub; it may contain mistakes, so check the code before deciding. View the code on GitHub
Availability by version
Reviewed: 2026-11-03Confirmation status: 1 confirmed, 8 with no information of 9 versions.
Sources · Odoo 16.0
Confirmed on 2026-11-03 in branch 16.0 of OCA/product-attribute.
terminal Installation and usage
OCA documentation · Odoo 16.0Installation
Source · Odoo 16.0This module includes a pre-installation hook that migrates existing net_weight data to the new product_net_weight field.
Migration Process
The hook performs the following operations:
1. **Database Schema**: Creates the new ``product_net_weight`` columns
2. **Data Migration**: Copies existing ``net_weight`` values to ``product_net_weight``
3. **No UoM Conversion**: Direct value copy is safe because existing ``net_weight`` data
is already stored in the system's base UoM
Why No UoM Conversion is NeededThe migration performs a direct copy without UoM conversion due to architectural analysis:
1. Impossibility of Different UoM Data
Before this integration module, it was impossible to have net_weight values in a UoM different from the system's base UoM:
- Without product_logistics_uom: Products always use system UoM for weight
- With product_logistics_uom: Only display UoM changes, storage remains in system UoM
- The compatibility bug: Prevented users from successfully entering net_weight with custom UoM
2. Data Integrity Guarantee
Existing net_weight values are guaranteed to be in the system's base UoM, making direct migration both safe and correct.
3. Post-Installation Behavior
After installation, computed fields automatically handle proper UoM conversions for new data entry and display, ensuring future data consistency.
4. Performance Optimization
Direct SQL migration is significantly faster than computed field recalculation for databases with many existing products.
This approach ensures data consistency while maintaining optimal performance during the migration process.
Configuration
Source · Odoo 16.0No additional configuration is required. This module installs automatically when dependencies are met.
Auto-Installation
This module is configured with ``auto_install=True`` and will be automatically
installed when both dependencies are present:
* ``product_logistics_uom``
* ``product_net_weight``
Manual installation is not required - the system will automatically detect when
both modules are installed and provide the compatibility layer seamlessly.
System Requirements- Enable "Manage Multiple Units of Measure" in Inventory settings
- Ensure proper weight UoM categories are configured in your system
The integration works automatically once dependencies are met.
Usage
Source · Odoo 16.0This module automatically integrates product_logistics_uom and product_net_weight functionality. It installs automatically when both dependency modules are present in your system.
After automatic installation, you can:
- Configure different weight UoM per product in the Inventory tab
- Set net weight values that will be properly converted and validated
- View net weight in the product's configured UoM while maintaining system consistency
Example scenario:
- System UoM: kg (kilograms)
- Product UoM: g (grams)
- Product weight: 1000 g → stored as 1 kg in system
- Net weight: 800 g → displayed as 800 g, stored as 0.8 kg, validated correctly
The module ensures that weight comparisons are made in the same UoM, preventing validation errors that occurred when using both modules independently.
Note: Existing net weight values are migrated automatically during installation. The migration assumes existing data is in the system's base UoM, which is the standard behavior before this integration module.
Installation instructions, the distribution package, dependencies and configuration steps are not shown because they have not yet been verified in the module documentation for any version.
Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.