Delivery Estimated Package Quantity By Weight

delivery_estimated_package_quantity_by_weight
REPOSITORY
REPOSITORYOCA/delivery-carrier
GIT
GIThttps://github.com/OCA/delivery-carrier.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/delivery-carrier/tree/18.0/delivery_estimated_package_quantity_by_weight
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYUncategorized
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), ACSONE SA/NV
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), ACSONE SA/NV
COMMITTERS
COMMITTERSOCA-git-bot, oca-ci, Bhavesh Heliconia
WEBSITE
WEBSITEhttps://github.com/OCA/delivery-carrier
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:16
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - stock_delivery
    - sale_stock
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - html_editor
    - account_payment
    - account
    - onboarding
    - product
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - payment
    - utm
    - stock_account
    - stock
    - barcodes_gs1_nomenclature
    - barcodes
    - delivery
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module computes the amount of packages a picking out should have
depending on the weight of the products and the limit fixed by the
carrier. It's fully independent of the delivery_package_number module.

A warning is given if the number of packages for the picking out is
above what is considered as the theoretical number of packages for this
picking and the chosen carrier. The goal is to minimize the number of
packages billed by the carrier.

The chosen strategy for the theoretical number of packages is as follow:  
- Split the product_weights into as many items as we have
- Try to fit the heaviest product with the lightest. If it does not work
  then the heaviest should have a box for itself
- While the weight of products does not exceed the limit, continue
  adding products in the same package

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
delivery_carrier_form_view delivery.carrier.form (in delivery_number_package_theoretical) delivery.carrier field Inherits delivery.view_delivery_carrier_form
delivery_carrier_tree_view delivery.carrier.tree (in delivery_number_package_theoretical) delivery.carrier field Inherits delivery.view_delivery_carrier_tree
stock_picking_form_view stock.picking.form (in delivery_number_package_theoretical) stock.picking div Inherits stock.view_picking_form
Models touched (2)

New fields (2)
  • maximum_weight_per_package Float
    string='Maximum weight per package'
  • weight_uom_name Char
    compute='_compute_weight_uom_name' string='Weight unit of measure label'
Public methods (0)

No public methods.

New fields (4)
  • is_number_of_packages_outranged Boolean
    compute='_compute_is_number_of_packages_outranged' args: 'Too many packages compared to the theoretical number'
  • is_number_of_packages_visible Boolean
    compute='_compute_is_number_of_packages_visible' args: 'Number of packages visible'
  • number_of_packages_done Integer
    compute='_compute_number_of_packages_done' args: 'Number of packages in a picking out'
  • theoretical_number_of_packages Integer
    compute='_compute_theoretical_number_of_packages' args: 'Theoretical number of packages in a picking out'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/delivery-carrier
GIT
GIThttps://github.com/OCA/delivery-carrier.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/delivery-carrier/tree/17.0/delivery_estimated_package_quantity_by_weight
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYUncategorized
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), ACSONE SA/NV
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), ACSONE SA/NV
COMMITTERS
COMMITTERSOCA-git-bot, oca-ci, Bhavesh Heliconia
WEBSITE
WEBSITEhttps://github.com/OCA/delivery-carrier
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:20:08
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - stock_delivery
    - sale_stock
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - account_payment
    - account
    - onboarding
    - product
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - payment
    - utm
    - stock_account
    - stock
    - barcodes_gs1_nomenclature
    - barcodes
    - delivery
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module computes the amount of packages a picking out should have
depending on the weight of the products and the limit fixed by the
carrier. It's fully independent of the delivery_package_number module.

A warning is given if the number of packages for the picking out is
above what is considered as the theoretical number of packages for this
picking and the chosen carrier. The goal is to minimize the number of
packages billed by the carrier.

The chosen strategy for the theoretical number of packages is as follow:  
- Split the product_weights into as many items as we have
- Try to fit the heaviest product with the lightest. If it does not work
  then the heaviest should have a box for itself
- While the weight of products does not exceed the limit, continue
  adding products in the same package

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
delivery_carrier_form_view delivery.carrier.form (in delivery_number_package_theoretical) delivery.carrier field Inherits delivery.view_delivery_carrier_form
delivery_carrier_tree_view delivery.carrier.tree (in delivery_number_package_theoretical) delivery.carrier field Inherits delivery.view_delivery_carrier_tree
stock_picking_form_view stock.picking.form (in delivery_number_package_theoretical) stock.picking div Inherits stock.view_picking_form
Models touched (2)

New fields (2)
  • maximum_weight_per_package Float
    string='Maximum weight per package'
  • weight_uom_name Char
    compute='_compute_weight_uom_name' string='Weight unit of measure label'
Public methods (0)

No public methods.

New fields (4)
  • is_number_of_packages_outranged Boolean
    compute='_compute_is_number_of_packages_outranged' args: 'Too many packages compared to the theoretical number'
  • is_number_of_packages_visible Boolean
    compute='_compute_is_number_of_packages_visible' args: 'Number of packages visible'
  • number_of_packages_done Integer
    compute='_compute_number_of_packages_done' args: 'Number of packages in a picking out'
  • theoretical_number_of_packages Integer
    compute='_compute_theoretical_number_of_packages' args: 'Theoretical number of packages in a picking out'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/delivery-carrier
GIT
GIThttps://github.com/OCA/delivery-carrier.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/delivery-carrier/tree/16.0/delivery_estimated_package_quantity_by_weight
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYUncategorized
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), ACSONE SA/NV
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), ACSONE SA/NV
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, hda
WEBSITE
WEBSITEhttps://github.com/OCA/delivery-carrier
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:53:52
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - stock
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - barcodes_gs1_nomenclature
    - barcodes
    - digest
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
    - delivery
    - sale_stock
    - sale
    - sales_team
    - account_payment
    - account
    - analytic
    - payment
    - utm
    - stock_account
    - sale_management
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
delivery_carrier_form_view delivery.carrier.form (in delivery_number_package_theoretical) delivery.carrier field Inherits delivery.view_delivery_carrier_form
delivery_carrier_tree_view delivery.carrier.tree (in delivery_number_package_theoretical) delivery.carrier field Inherits delivery.view_delivery_carrier_tree
stock_picking_form_view stock.picking.form (in delivery_number_package_theoretical) stock.picking div Inherits stock.view_picking_form
Models touched (2)

New fields (2)
  • maximum_weight_per_package Float
    string='Maximum weight per package'
  • weight_uom_name Char
    compute='_compute_weight_uom_name' string='Weight unit of measure label'
Public methods (0)

No public methods.

New fields (4)
  • is_number_of_packages_outranged Boolean
    compute='_compute_is_number_of_packages_outranged' args: 'Too many packages compared to the theoretical number'
  • is_number_of_packages_visible Boolean
    compute='_compute_is_number_of_packages_visible' args: 'Number of packages visible'
  • number_of_packages_done Integer
    compute='_compute_number_of_packages_done' args: 'Number of packages in a picking out'
  • theoretical_number_of_packages Integer
    compute='_compute_theoretical_number_of_packages' args: 'Theoretical number of packages in a picking out'
Public methods (0)

No public methods.