| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/product-attribute |
| GIT | |
| GIT | https://github.com/OCA/product-attribute.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/product-attribute/tree/18.0/product_packaging_level |
| VERSION | |
| VERSION | 1.1.0 |
| CATEGORY | |
| CATEGORY | Product |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Camptocamp |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Camptocamp |
| COMMITTERS | |
| COMMITTERS | Thierry Ducrest, Weblate, OCA-git-bot, oca-ci, trisdoan |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/product-attribute |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:30:12 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - stock - product - base - base_setup - web - bus - web_tour - html_editor - uom - barcodes_gs1_nomenclature - barcodes - digest - portal - web_editor - http_routing - auth_signup - resource |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
openupgradelib |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | This module binds a product packaging to a packaging level. There are usually 3 levels: - The primary: it is the closest to the product, also called the retail packaging - The secondary: it allows to ship the products already in the primary packaging, like a box - The tertiary: it allows to ship large quantities in warehousing, like a pallet This differentiates from the odoo standard package type that is typing the packaging in a more precise way and that can serve for put-away routing in the warehouse. For example a small box and a large box, or an EPAL pallet and CHEP pallet. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
product_packaging_tree_view |
product.packaging.tree (in product_packaging_level) | product.packaging | field | Inherits stock.product_packaging_tree_view |
stock_package_type_form |
stock.package.type.form | stock.package.type | field | Inherits stock.stock_package_type_form |
view_product_packaging_add_type_form |
product.packaging.form | product.packaging | xpath | Inherits stock.product_packaging_form_view |
view_product_packaging_level_form |
product.packaging.level.form | product.packaging.level | form | New |
view_product_packaging_level_list |
product.packaging.level.list | product.packaging.level | list | New |
view_product_packaging_level_search |
product.packaging.level.search | product.packaging.level | search | New |
barcode_required_for_gtin
Boolean
compute='_compute_barcode_required_for_gtin'
readonly=True
name
Char
compute='_compute_name'
readonly=False
store=True
name_policy
Selection
related='packaging_level_id.name_policy'
packaging_level_id
Many2one → product.packaging.level
default=<expr>
ondelete='restrict'
required=True
args: 'product.packaging.level'
qty_per_level
Char
compute='_compute_qty_per_level'
string='Qty per package level'
sequence
Integer
compute='_compute_sequence'
readonly=False
store=True
default_packaging_level_id(self)
active
Boolean
default=True
code
Char
required=True
default_lang_id
Many2one → res.lang
default=<expr>
required=True
string='Default Language'
args: 'res.lang'
has_gtin
Boolean
is_default
Boolean
name
Char
required=True
translate=True
name_policy
Selection
default='by_package_level'
help="config to set name of product packaging. Three options:- The package level name (default)- The package type name (if groups='stock.group_tracking_lot')- user defined: free text value defined"
selection=[('by_package_level', 'Package Level Name'), ('by_package_type', 'Package Type Name'), ('user_defined', 'User Defined')]
sequence
Integer
required=True
No public methods.
packaging_level_id
Many2one → product.packaging.level
default=<expr>
args: 'product.packaging.level'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/product-attribute |
| GIT | |
| GIT | https://github.com/OCA/product-attribute.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/product-attribute/tree/17.0/product_packaging_level |
| VERSION | |
| VERSION | 1.0.0 |
| CATEGORY | |
| CATEGORY | Product |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Camptocamp |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Camptocamp |
| COMMITTERS | |
| COMMITTERS | Ruchir Shukla, OCA-git-bot, oca-ci |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/product-attribute |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:20:05 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - product - base - base_setup - web - bus - web_tour - uom - stock - barcodes_gs1_nomenclature - barcodes - digest - portal - web_editor - http_routing - auth_signup - resource |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
openupgradelib |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | This module binds a product packaging to a packaging level. There are usually 3 levels: - The primary: it is the closest to the product, also called the retail packaging - The secondary: it allows to ship the products already in the primary packaging, like a box - The tertiary: it allows to ship large quantities in warehousing, like a pallet This differentiates from the odoo standard package type that is typing the packaging in a more precise way and that can serve for put-away routing in the warehouse. For example a small box and a large box, or an EPAL pallet and CHEP pallet. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
product_packaging_tree_view |
product.packaging.tree (in product_packaging_level) | product.packaging | field | Inherits stock.product_packaging_tree_view |
stock_package_type_form |
stock.package.type.form | stock.package.type | field | Inherits stock.stock_package_type_form |
view_product_packaging_add_type_form |
product.packaging.form | product.packaging | field | Inherits stock.product_packaging_form_view |
view_product_packaging_level_form |
product.packaging.level.form | product.packaging.level | form | New |
view_product_packaging_level_search |
product.packaging.level.search | product.packaging.level | search | New |
view_product_packaging_level_tree |
product.packaging.level.tree | product.packaging.level | tree | New |
barcode_required_for_gtin
Boolean
compute='_compute_barcode_required_for_gtin'
readonly=True
name
Char
compute='_compute_name'
readonly=False
store=True
name_policy
Selection
related='packaging_level_id.name_policy'
packaging_level_id
Many2one → product.packaging.level
default=<expr>
ondelete='restrict'
required=True
args: 'product.packaging.level'
qty_per_level
Char
compute='_compute_qty_per_level'
string='Qty per package level'
sequence
Integer
compute='_compute_sequence'
readonly=False
store=True
default_packaging_level_id(self)
active
Boolean
default=True
code
Char
required=True
default_lang_id
Many2one → res.lang
default=<expr>
required=True
string='Default Language'
args: 'res.lang'
has_gtin
Boolean
is_default
Boolean
name
Char
required=True
translate=True
name_policy
Selection
default='by_package_level'
help="config to set name of product packaging. Three options:- The package level name (default)- The package type name (if groups='stock.group_tracking_lot')- user defined: free text value defined"
selection=[('by_package_level', 'Package Level Name'), ('by_package_type', 'Package Type Name'), ('user_defined', 'User Defined')]
sequence
Integer
required=True
No public methods.
packaging_level_id
Many2one → product.packaging.level
default=<expr>
args: 'product.packaging.level'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/product-attribute |
| GIT | |
| GIT | https://github.com/OCA/product-attribute.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/product-attribute/tree/16.0/product_packaging_level |
| VERSION | |
| VERSION | 1.2.1 |
| CATEGORY | |
| CATEGORY | Product |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Camptocamp |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Camptocamp |
| COMMITTERS | |
| COMMITTERS | Denis Roussel, Miquel Raïch, Weblate, OCA-git-bot, oca-ci, Telmo Santos, sonhd91, Bastian Guenther, Hoang Diep |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/product-attribute |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:53:48 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - product - base - base_setup - web - bus - web_tour - uom - stock - barcodes_gs1_nomenclature - barcodes - digest - portal - web_editor - http_routing - auth_signup - resource |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
openupgradelib |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
product_packaging_tree_view |
product.packaging.tree (in product_packaging_level) | product.packaging | field | Inherits stock.product_packaging_tree_view |
stock_package_type_form |
stock.package.type.form | stock.package.type | field | Inherits stock.stock_package_type_form |
view_product_packaging_add_type_form |
product.packaging.form | product.packaging | field | Inherits stock.product_packaging_form_view |
view_product_packaging_level_form |
product.packaging.level.form | product.packaging.level | form | New |
view_product_packaging_level_search |
product.packaging.level.search | product.packaging.level | search | New |
view_product_packaging_level_tree |
product.packaging.level.tree | product.packaging.level | tree | New |
barcode_required_for_gtin
Boolean
compute='_compute_barcode_required_for_gtin'
readonly=True
name
Char
compute='_compute_name'
readonly=False
store=True
name_policy
Selection
related='packaging_level_id.name_policy'
packaging_level_id
Many2one → product.packaging.level
default=<expr>
ondelete='restrict'
required=True
args: 'product.packaging.level'
qty_per_level
Char
compute='_compute_qty_per_level'
string='Qty per package level'
sequence
Integer
compute='_compute_sequence'
readonly=False
store=True
default_packaging_level_id(self)
active
Boolean
default=True
code
Char
required=True
default_lang_id
Many2one → res.lang
default=<expr>
required=True
string='Default Language'
args: 'res.lang'
has_gtin
Boolean
is_default
Boolean
name
Char
required=True
translate=True
name_policy
Selection
default='by_package_level'
help="config to set name of product packaging. Three options:- The package level name (default)- The package type name (if groups='stock.group_tracking_lot')- user defined: free text value defined"
selection=[('by_package_level', 'Package Level Name'), ('by_package_type', 'Package Type Name'), ('user_defined', 'User Defined')]
sequence
Integer
required=True
name_get(self)
packaging_level_id
Many2one → product.packaging.level
default=<expr>
args: 'product.packaging.level'
No public methods.