| 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_unit_price_calculator |
| VERSION | |
| VERSION | 1.0.0 |
| CATEGORY | |
| CATEGORY | Product |
| LICENSE | |
| LICENSE | AGPL-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 | Weblate, OCA-git-bot, oca-ci, Khôi (Kiên Kim) |
| 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: - product - base - base_setup - web - bus - web_tour - html_editor - uom |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | This module adds a wizard that allows the user to compute a unit price by selecting a specific product.packaging related to the product and the price of that package. The computation is done based on the quantity qty of product set on the packaging. The wizard is accessible via buttons located in a few different places in the UI - Next to the sale price of the product on the product form - Next to the price of a product supplier info form - Next to the price of price list item in the tree view - Below the fixed price of a price list item When the wizard is saved the value of the unit price located next to the button is updated by the computed unit price of the wizard. The sale price of a product.packaging is displayed in the packaging list on the Inventory page of the product form. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
product_packaging_tree_view2 |
product.packaging.list.view2 | product.packaging | field | Inherits product.product_packaging_tree_view2 |
product_pricelist_item_form_view |
product.pricelist.item.form.inherit | product.pricelist.item | group | Inherits product.product_pricelist_item_form_view |
product_pricelist_item_tree__view_from_product |
product.pricelist.item.list.inherit | product.pricelist.item | field | Inherits product.product_pricelist_item_tree_view_from_product |
product_supplierinfo_form_view |
product.supplierinfo.form.inherit | product.supplierinfo | field | Inherits product.product_supplierinfo_form_view |
product_template_form_view |
product.template.form | product.template | button | Inherits product.product_template_form_view |
view_product_package_price_form |
Product Package Price | product.package.price.wizard | form | New |
current_unit_price
Float
compute='_compute_current_unit_price'
digits='Product Price'
packaging_ids
One2many → product.packaging
compute='_compute_packaging_ids'
string='Product Packages'
args: 'product.packaging'
packaging_price
Float
default=0.0
digits='Product Price'
args: 'Package Price'
product_id
Many2one → product.product
default=<expr>
args: 'product.product'
product_pricelist_item_id
Many2one → product.pricelist.item
default=<expr>
args: 'product.pricelist.item'
product_supplierinfo_id
Many2one → product.supplierinfo
default=<expr>
args: 'product.supplierinfo'
product_tmpl_id
Many2one → product.template
default=<expr>
args: 'product.template'
product_variant_ids
One2many → product.product
related='product_tmpl_id.product_variant_ids'
args: 'product.product', 'product_tmpl_id'
selected_packaging_id
Many2one → product.packaging
domain="[('product_id', 'in', product_variant_ids)]"
args: 'product.packaging'
unit_price
Float
compute='_compute_unit_price'
digits='Product Price'
warning_message
Char
default=' '
readonly=True
action_set_price(self)
reset_unit_price(self)
packaging_wizard_price
Float
digits='Product Price'
store=False
sale_price
Float
compute='_compute_sale_price'
digits='Product Price'
unit_price
Float
related='product_id.list_price'
No public methods.
No new fields.
Public methods (1)open_packaging_price(self)
No new fields.
Public methods (1)open_packaging_price(self)
No new fields.
Public methods (1)open_packaging_price(self)
No new fields.
Public methods (1)open_packaging_price(self)
| 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/14.0/product_packaging_unit_price_calculator |
| VERSION | |
| VERSION | 1.1.1 |
| CATEGORY | |
| CATEGORY | Product |
| LICENSE | |
| LICENSE | AGPL-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 | Sébastien Alix, oca-travis, Weblate, OCA-git-bot, Dũng (Trần Đình) |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/product-attribute |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:41:01 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - product - base - base_setup - web - bus - web_tour - uom |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
product_packaging_tree_view2 |
product.packaging.tree.view2 | product.packaging | field | Inherits product.product_packaging_tree_view2 |
product_pricelist_item_form_view |
product.pricelist.item.form.inherit | product.pricelist.item | group | Inherits product.product_pricelist_item_form_view |
product_pricelist_item_tree__view_from_product |
product.pricelist.item.tree.inherit | product.pricelist.item | field | Inherits product.product_pricelist_item_tree_view_from_product |
product_supplierinfo_form_view |
product.supplierinfo.form.inherit | product.supplierinfo | field | Inherits product.product_supplierinfo_form_view |
product_template_form_view |
product.template.form | product.template | button | Inherits product.product_template_form_view |
view_product_package_price_form |
Product Package Price | product.package.price.wizard | form | New |
current_unit_price
Float
compute='_compute_current_unit_price'
digits='Product Price'
packaging_ids
One2many → product.packaging
compute='_compute_packaging_ids'
string='Product Packages'
args: 'product.packaging'
packaging_price
Float
default=0.0
digits='Product Price'
args: 'Package Price'
product_id
Many2one → product.product
default=<expr>
args: 'product.product'
product_pricelist_item_id
Many2one → product.pricelist.item
default=<expr>
args: 'product.pricelist.item'
product_supplierinfo_id
Many2one → product.supplierinfo
default=<expr>
args: 'product.supplierinfo'
product_tmpl_id
Many2one → product.template
default=<expr>
args: 'product.template'
product_variant_ids
One2many → product.product
related='product_tmpl_id.product_variant_ids'
args: 'product.product', 'product_tmpl_id'
selected_packaging_id
Many2one → product.packaging
domain="[('product_id', 'in', product_variant_ids)]"
args: 'product.packaging'
unit_price
Float
compute='_compute_unit_price'
digits='Product Price'
readonly=True
args: 'Unit Price'
warning_message
Char
default=' '
readonly=True
action_set_price(self)
reset_unit_price(self)
packaging_wizard_price
Float
digits='Product Price'
store=False
sale_price
Float
compute='_compute_sale_price'
digits='Product Price'
unit_price
Float
related='product_id.list_price'
No public methods.
No new fields.
Public methods (1)open_packaging_price(self)
No new fields.
Public methods (1)open_packaging_price(self)
No new fields.
Public methods (1)open_packaging_price(self)
No new fields.
Public methods (1)open_packaging_price(self)
| 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/13.0/product_packaging_unit_price_calculator |
| VERSION | |
| VERSION | 1.0.2 |
| CATEGORY | |
| CATEGORY | Product |
| LICENSE | |
| LICENSE | AGPL-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 | OCA Transbot, Thierry Ducrest, João Marques, oca-travis, Weblate, OCA-git-bot, Carlos Roca |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/product-attribute |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:34:14 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - product - base - base_setup - web - bus - web_tour - uom |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
product_packaging_tree_view2 |
product.packaging.tree.view2 | product.packaging | field | Inherits product.product_packaging_tree_view2 |
product_pricelist_item_form_view |
product.pricelist.item.form.inherit | product.pricelist.item | group | Inherits product.product_pricelist_item_form_view |
product_pricelist_item_tree__view_from_product |
product.pricelist.item.tree.inherit | product.pricelist.item | field | Inherits product.product_pricelist_item_tree_view_from_product |
product_supplierinfo_form_view |
product.supplierinfo.form.inherit | product.supplierinfo | field | Inherits product.product_supplierinfo_form_view |
product_template_form_view |
product.template.form | product.template | button | Inherits product.product_template_form_view |
view_product_package_price_form |
Product Package Price | product.package.price.wizard | form | New |
current_unit_price
Float
compute='_compute_current_unit_price'
digits='Product Price'
packaging_ids
One2many → product.packaging
compute='_compute_packaging_ids'
string='Product Packages'
args: 'product.packaging'
packaging_price
Float
default=0.0
digits='Product Price'
args: 'Package Price'
product_id
Many2one → product.product
default=<expr>
args: 'product.product'
product_pricelist_item_id
Many2one → product.pricelist.item
default=<expr>
args: 'product.pricelist.item'
product_supplierinfo_id
Many2one → product.supplierinfo
default=<expr>
args: 'product.supplierinfo'
product_tmpl_id
Many2one → product.template
default=<expr>
args: 'product.template'
product_variant_ids
One2many → product.product
related='product_tmpl_id.product_variant_ids'
args: 'product.product', 'product_tmpl_id'
selected_packaging_id
Many2one → product.packaging
domain="[('product_id', 'in', product_variant_ids)]"
args: 'product.packaging'
unit_price
Float
compute='_compute_unit_price'
digits='Product Price'
readonly=True
args: 'Unit Price'
warning_message
Char
default=' '
readonly=True
action_set_price(self)
reset_unit_price(self)
packaging_wizard_price
Float
digits='Product Price'
store=False
sale_price
Float
compute='_compute_sale_price'
digits='Product Price'
unit_price
Float
related='product_id.list_price'
No public methods.
No new fields.
Public methods (1)open_packaging_price(self)
No new fields.
Public methods (1)open_packaging_price(self)
No new fields.
Public methods (1)open_packaging_price(self)
No new fields.
Public methods (1)open_packaging_price(self)