| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/sale-workflow |
| GIT | |
| GIT | https://github.com/OCA/sale-workflow.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/sale-workflow/tree/17.0/sale_pricelist_global_rule |
| VERSION | |
| VERSION | 1.0.2 |
| CATEGORY | |
| CATEGORY | Sales Management |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA) |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA) |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, Carlos Lopez, Weblate, OCA-git-bot, oca-ci |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/sale-workflow |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:20:05 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - sale - sales_team - base - base_setup - web - bus - web_tour - account_payment - account - onboarding - product - uom - analytic - portal - web_editor - http_routing - auth_signup - digest - resource - payment - utm |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | This module allows configured pricelists to be applied to a sales order by considering cumulative quantities across all lines. **Global by Product Template** If a pricelist rule has a min_quantity = 15, and a sales order contains: - Line 1: Variant 1, quantity = 8 - Line 2: Variant 2, quantity = 8 **Global by Product Category** Similarly, if a pricelist rule has a min_quantity = 20 for products within a category, and a sales order includes: - Line 1: Product 1, quantity = 10 - Line 2: Product 2, quantity = 10 In standard Odoo, pricelist rules would not apply since no single line meets the minimum quantity. With this module, however, cumulative quantities across lines allow the pricelist rule to apply, as they meet the minimum threshold (16 in the product template example and 20 in the product category example). |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
view_product_pricelist_item_form |
view.product.pricelist.item.form | product.pricelist.item | xpath | Inherits product.product_pricelist_item_form_view |
view_sale_order_form |
view.sale.order.form | sale.order | xpath | Inherits sale.view_order_form |
applied_on
Selection
ondelete={'3_1_global_product_template': 'set default', '3_2_global_product_category': 'set default'}
selection_add=[('3_1_global_product_template', 'Global - Product template'), ('3_2_global_product_category', 'Global - Product category')]
global_categ_id
Many2one → product.category
ondelete='cascade'
args: 'product.category', 'Product Category'
global_product_tmpl_id
Many2one → product.template
check_company=True
ondelete='cascade'
args: 'product.template', 'Product'
create(self, vals_list)
write(self, values)
has_pricelist_global
Boolean
compute='_compute_has_pricelist_global'
need_recompute_pricelist_global
Boolean
button_compute_pricelist_global_rule(self)
No new fields.
Public methods (0)No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/sale-workflow |
| GIT | |
| GIT | https://github.com/OCA/sale-workflow.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/sale-workflow/tree/15.0/sale_pricelist_global_rule |
| VERSION | |
| VERSION | 1.0.3 |
| CATEGORY | |
| CATEGORY | Sales Management |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA) |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA) |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, Carlos Lopez, OCA-git-bot, oca-ci |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/sale-workflow |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:46:34 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - sale - sales_team - base - base_setup - web - bus - web_tour - payment - account - product - uom - analytic - portal - web_editor - http_routing - auth_signup - digest - resource - utm |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
view_product_pricelist_item_form |
view.product.pricelist.item.form | product.pricelist.item | xpath | Inherits product.product_pricelist_item_form_view |
view_sale_order_form |
view.sale.order.form | sale.order | xpath | Inherits sale.view_order_form |
No new fields.
Public methods (0)No public methods.
applied_on
Selection
ondelete={'4_global_product_template': 'set default', '5_global_product_category': 'set default'}
selection_add=[('4_global_product_template', 'Global - Product template'), ('5_global_product_category', 'Global - Product category')]
global_categ_id
Many2one → product.category
ondelete='cascade'
args: 'product.category', 'Product Category'
global_product_tmpl_id
Many2one → product.template
check_company=True
ondelete='cascade'
args: 'product.template', 'Product'
create(self, vals_list)
write(self, values)
has_pricelist_global
Boolean
compute='_compute_has_pricelist_global'
need_recompute_pricelist_global
Boolean
button_compute_pricelist_global_rule(self)
| STATUS | |
|---|---|
| STATUS | Open migration PR - not merged yet for this version |
| REPOSITORY | |
| REPOSITORY | OCA/sale-workflow |
| PULL REQUEST | |
| PULL REQUEST | [18.0][MIG] sale_pricelist_global_rule: Migration to 18.0 (#4065) |
| STATUS | |
|---|---|
| STATUS | Open migration PR - not merged yet for this version |
| REPOSITORY | |
| REPOSITORY | OCA/sale-workflow |
| PULL REQUEST | |
| PULL REQUEST | [16.0][MIG] sale_pricelist_global_rule (#3533) |