| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/commission |
| GIT | |
| GIT | https://github.com/OCA/commission.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/commission/tree/18.0/sale_commission_oca_product_criteria |
| VERSION | |
| VERSION | 1.0.0 |
| CATEGORY | |
| CATEGORY | Sales Management |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Ilyas, Ooops404 |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Ilyas, Ooops404 |
| COMMITTERS | |
| COMMITTERS | Weblate, OCA-git-bot, oca-ci, David Bañón |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/commission |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:30:11 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/commission: - sale_commission_oca - account_commission_oca - commission_oca odoo/odoo: - sale - sales_team - base - base_setup - web - bus - web_tour - html_editor - 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 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. |
| 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 | xpath | 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 | button | Inherits sale_commission_oca.view_order_agent_form_inherit |
view_sale_order_line_tree_mod |
sale.order.line.agent.mod | sale.order.line.agent | field | Inherits sale_commission_oca.view_sale_order_line_tree |
applied_commission_item_id
Many2one → commission.item
No public methods.
commission_type
Selection
ondelete={'product': 'set default'}
selection_add=[('product', 'Product criteria')]
item_ids
One2many → commission.item
copy=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)
active
Boolean
default=True
applied_on
Selection
default='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_on
Selection
default='sol'
required=True
args: [('sol', 'Any Sale Order Line')]
categ_id
Many2one → product.category
help='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_id
Many2one → commission
domain=[('commission_type', '=', 'product')]
required=True
string='Commission'
args: 'commission'
commission_type
Selection
default='fixed'
index=True
required=True
args: [('fixed', 'Fixed'), ('percentage', 'Percentage')]
commission_value
Char
compute='_compute_commission_item_name_value'
args: 'Value'
company_id
Many2one → res.company
default=<expr>
readonly=True
args: 'res.company', 'Company'
currency_id
Many2one → res.currency
readonly=True
related='company_id.currency_id'
args: 'res.currency'
fixed_amount
Float
digits='Product Price'
name
Char
compute='_compute_commission_item_name_value'
help='Explicit rule name for this commission line.'
percent_amount
Float
product_id
Many2one → product.product
check_company=True
help='Specify a product if this rule only applies to one product. Keep empty otherwise.'
ondelete='cascade'
args: 'product.product', 'Product Variant'
product_tmpl_id
Many2one → product.template
check_company=True
help='Specify a template if this rule only applies to one product template. Keep empty otherwise.'
ondelete='cascade'
args: 'product.template', 'Product'
sequence
Integer
default=10
create(self, values_list)
validate_values(self, values)
write(self, values)
applied_commission_id
Many2one → commission
readonly=True
args: 'commission'
commission_id
Many2one → commission
comodel_name='commission'
compute='_compute_commission_id'
copy=True
ondelete='restrict'
readonly=False
required=False
store=True
No public methods.
No new fields.
Public methods (0)No public methods.
applied_commission_item_id
Many2one → commission.item
applied_on_name
Char
related='applied_commission_item_id.name'
based_on
Selection
related='applied_commission_item_id.based_on'
commission_type
Selection
related='applied_commission_item_id.commission_type'
discount
Float
related='object_id.discount'
fixed_amount
Float
related='applied_commission_item_id.fixed_amount'
percent_amount
Float
related='applied_commission_item_id.percent_amount'
No public methods.
| STATUS | |
|---|---|
| STATUS | Open migration PR - not merged yet for this version |
| REPOSITORY | |
| REPOSITORY | OCA/commission |
| PULL REQUEST | |
| PULL REQUEST | [19.0][MIG] sale_commission_oca_product_criteria (#682) |