TIP: You can type at any time to perform a new search.
Sale pricelist global rule
sale_pricelist_global_rule · OCA/sale-workflow
Security findings
- Repository
- OCA/sale-workflow · module folder · Try on Runboat
- Module version
- Category
- Sales Management
- Folder size
- 0.1 MB
- License
- AGPL-3
- Application
- No
- Auto-installable
- No
- Website
- https://github.com/OCA/sale-workflow
- Last tracking update
- 2026-09-03 17:37:00
- Authors
- Odoo Community Association (OCA), Tecnativa
- Maintainers
- Odoo Community Association (OCA), Tecnativa
- Committers
- Carlos Lopez, OCA-git-bot, oca-ci, Adasat Torres de León
- Odoo dependencies
- Python dependencies
- None
- System dependencies
- None
- Required by
- None
- 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).
Code Analysis
Views touched (2)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
view_product_pricelist_item_form |
view.product.pricelist.item.form | product.pricelist.item | form | Inherits product.product_pricelist_item_form_view |
view_sale_order_form |
view.sale.order.form | sale.order | form | Inherits sale.view_order_form |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (3)
New fields (4)
-
applied_onSelectionondelete={'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')] -
display_applied_onSelectionondelete={'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_idMany2one → product.categoryondelete='cascade' args: 'product.category', 'Product Category' -
global_product_tmpl_idMany2one → product.templatecheck_company=Trueondelete='cascade' args: 'product.template', 'Global Product'
-
create(self, vals_list)@api.model_create_multi -
write(self, values)
New fields (2)
-
has_pricelist_globalBooleancompute='_compute_has_pricelist_global' -
need_recompute_pricelist_globalBoolean
-
button_compute_pricelist_global_rule(self)
New fields (0)
No new fields.
Public methods (0)No public methods.
Loading…
Loading…
- Status
- Open migration PR — not merged yet for this version
- CI status
- green — ready to merge
- Open since
- 298 days ago
- Last activity
- 38 days ago
- Repository
- OCA/sale-workflow
- Pull request
- [18.0][MIG] sale_pricelist_global_rule: Migration to 18.0 (#4065)