Integration module for product_logistics_uom and product_net_weight compatibility
Project description
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.
Table of contents
Installation
This 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:
Database Schema: Creates the new product_net_weight columns
Data Migration: Copies existing net_weight values to product_net_weight
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 Needed
The 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
No 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
This 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.
Bug Tracker
Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed feedback.
Do not contact contributors directly about support or help with technical issues.
Credits
Contributors
Adrián Cifuentes <adrian.cifuentes@gmail.com>
Maintainers
This module is maintained by the OCA.
OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.
Current maintainer:
This module is part of the OCA/product-attribute project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file odoo_addon_product_logistics_uom_net_weight-16.0.1.0.0.2-py3-none-any.whl.
File metadata
- Download URL: odoo_addon_product_logistics_uom_net_weight-16.0.1.0.0.2-py3-none-any.whl
- Upload date:
- Size: 36.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
077d6b8bc880dcaabd168386108f2ec36a31df436afa327e11c6352174ada349
|
|
| MD5 |
e0ba980e68757d6b64606ae85660731f
|
|
| BLAKE2b-256 |
f8c0f24ea5c2af869865a869e42444433531b8cbc7d55ca3598220725d7407a5
|