TIP: You can type at any time to perform a new search.
Sale Commission Product Criteria
sale_commission_oca_product_criteria · OCA/commission
- Repository
- OCA/commission · module folder · Try on Runboat
- Module version
- 1.0.0
- Category
- Sales Management
- Folder size
- 0.17 MB
- License
- AGPL-3
- Application
- No
- Auto-installable
- No
- Website
- https://github.com/OCA/commission
- Last tracking update
- 2026-08-07 08:42:54
- Authors
- Odoo Community Association (OCA), Ooops404, Ilyas
- Maintainers
- Odoo Community Association (OCA), Ooops404, Ilyas
- Committers
- Weblate, OCA-git-bot, oca-ci, David Bañón
- Odoo dependencies
- Python dependencies
- None
- System dependencies
- None
- Required by
- sale_commission_oca_product_criteria_semaphore
- Description
This module allows to set in the same Commission Type different commission rates according to the product on SO/invoice line. This is made possible since this module adds a new "Product criteria" type to Commission Type and applies commission rates with the same logic of sale pricelist items. For example, such a Commission Type can grant: 10% on a specific Product A, 10\$ on Product B, 4% on products in Category 1 and 5\$ on all other products. In SO/invoice, system will apply different commissions based on variant/product/category or global, applied hierarchically. This means that for the example above, if product A is assigned to Category 1, commission assigned is 10%, as per variant/product/category/global rule application order. Furthermore, these commission type items can be accessed and created by a specific menu, to facilitate their management in environments with lots of records. The form for commission type item can be extended by future modules with further conditions to decide when to apply a specific item.
Code Analysis ⓘ
Views touched (7)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
commission_item_form_view |
commission.item.form | commission.item | form | New |
commission_item_search |
commission.item.search.view | commission.item | search | New |
commission_item_tree_view |
commission.item.list | commission.item | list | New |
report_settlement_document |
report_settlement_document | ir.ui.view | qweb | Inherits commission_oca.report_settlement_document |
sale_commission_form_lines_mod |
commission.form.view.inherit | commission | form | Inherits commission_oca.commission_form |
view_order_agent_form_inherit_sale_commission_oca_product_criteria_mod |
sale.agent.order.inherit.form.sale_commission_oca_product_criteria.mod | sale.order | form | Inherits sale_commission_oca.view_order_agent_form_inherit |
view_sale_order_line_tree_mod |
sale.order.line.agent.mod | sale.order.line.agent | tree | Inherits sale_commission_oca.view_sale_order_line_tree |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (6)
New fields (1)
-
applied_commission_item_idMany2one → commission.itemargs: 'commission.item'
No public methods.
New fields (2)
-
commission_typeSelectionondelete={'product': 'set default'}selection_add=[('product', 'Product criteria')] -
item_idsOne2many → commission.itemcopy=True args: 'commission.item', 'commission_id'
-
action_unarchive(self) -
check_type_change_allowed_moves(self) -
check_type_change_allowed_sale(self) -
onchange_commission_type(self)@api.onchange('commission_type')
New fields (15)
-
activeBooleandefault=True -
applied_onSelectiondefault='3_global'help='Commission Item applicable on selected option'required=True args: [('3_global', 'All Products'), ('2_product_category', 'Product Category'), ('1_product', 'Product'), ('0_product_variant', 'Product Variant')], 'Apply On' -
based_onSelectiondefault='sol'required=True args: [('sol', 'Any Sale Order Line')] -
categ_idMany2one → product.categoryhelp='Specify a product category if this rule only applies to products belonging to this category or its children categories. Keep empty otherwise.'ondelete='cascade' args: 'product.category', 'Product Category' -
commission_idMany2one → commissiondomain=[('commission_type', '=', 'product')]required=Truestring='Commission' args: 'commission' -
commission_typeSelectiondefault='fixed'index=Truerequired=True args: [('fixed', 'Fixed'), ('percentage', 'Percentage')] -
commission_valueCharcompute='_compute_commission_item_name_value' args: 'Value' -
company_idMany2one → res.companydefault=<expr>readonly=True args: 'res.company', 'Company' -
currency_idMany2one → res.currencyreadonly=Truerelated='company_id.currency_id' args: 'res.currency' -
fixed_amountFloatdigits='Product Price' -
nameCharcompute='_compute_commission_item_name_value'help='Explicit rule name for this commission line.' -
percent_amountFloatargs: 'Percentage Amount' -
product_idMany2one → product.productcheck_company=Truehelp='Specify a product if this rule only applies to one product. Keep empty otherwise.'ondelete='cascade' args: 'product.product', 'Product Variant' -
product_tmpl_idMany2one → product.templatecheck_company=Truehelp='Specify a template if this rule only applies to one product template. Keep empty otherwise.'ondelete='cascade' args: 'product.template', 'Product' -
sequenceIntegerdefault=10
-
create(self, values_list)@api.model_create_multi -
validate_values(self, values) -
write(self, values)
New fields (2)
-
applied_commission_idMany2one → commissionreadonly=True args: 'commission' -
commission_idMany2one → commissioncomodel_name='commission'compute='_compute_commission_id'copy=Trueondelete='restrict'readonly=Falserequired=Falsestore=True
No public methods.
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (7)
-
applied_commission_item_idMany2one → commission.itemargs: 'commission.item' -
applied_on_nameCharrelated='applied_commission_item_id.name' -
based_onSelectionrelated='applied_commission_item_id.based_on' -
commission_typeSelectionrelated='applied_commission_item_id.commission_type' -
discountFloatrelated='object_id.discount' -
fixed_amountFloatrelated='applied_commission_item_id.fixed_amount' -
percent_amountFloatrelated='applied_commission_item_id.percent_amount'
No public methods.
- Status
- Open migration PR — not merged yet for this version
- CI status
- green — ready to merge
- Open since
- 28 days ago
- Last activity
- 6 days ago
- Repository
- OCA/commission
- Pull request
- [19.0][MIG] sale_commission_oca_product_criteria: Migration to 19.0 (#683)