v 8.0 v 9.0 v 10.0 v 11.0 v 12.0 Third Party 12033
Download for v 11.0 Deploy on Odoo.sh
Required Apps Sales Management (sale_management)
Invoicing Management (account_invoicing)
Lines of code 1486
Technical Name sale_commission
Also available in version v 15.0 v 13.0 v 14.0 v 9.0 v 10.0 v 8.0 v 12.0 v 16.0
You bought this module and need support? Click here!

Sales commissions

Mature License: AGPL-3 OCA/commission Translate me on Weblate Try me on Runbot

This module allows to define sales agents with their commissions and assign them in customers and sales orders.

You can then make the settlements of these commissions, and generate the corresponding supplier invoices to pay their commissions fees.

You can define which base amount is going to be taken into account: net amount (based on margin) or gross amount (line subtotal amount)

Table of contents


For adding commissions:

  1. Go to Sales > Commission Management > Commission types.
  2. Edit or create a new record.
  3. Select a name for distinguishing that type.
  4. Select the percentage type of the commission:
    • Fixed percentage: all commissions are computed with a fixed percentage. You can fill the percentage in the field “Fixed percentage”.
    • By sections: percentage varies depending amount intervals. You can fill intervals and percentages in the section “Rate definition”.
  5. Select the base amount for computing the percentage:
    • Gross Amount: percentage is computed from the amount put on sales order/invoice.
    • Net Amount: percentage is computed from the profit only, taken the cost from the product.
  6. Select the invoice status for settling the commissions:
    • Invoice Based: Commissions are settled when the invoice is issued.
    • Payment Based: Commissions are settled when the invoice is paid.

For adding new agents:

  1. Go to Sales > Commission Management > Agents. You can also access from Contacts > Contacts or Sales > Orders > Customers.

  2. Edit or create a new record.

  3. On “Sales & Purchases” page, mark “Agent” check. It should be checked if you have accessed from first menu option.

  4. There’s a new page called “Agent information”. In it, you can set following data:

    • The agent type, being in this base module “External agent” the only existing configuration. It can be extended with hr_commission module for setting an “Employee” agent type.
    • The associated commission type.
    • The settlement period, where you can select “Monthly”, “Quaterly”, “Semi-annual” or “Annual”.

    You will also be able to see the settlements that have been made to this agent from this page.


For setting default agents in customers:

  1. Go to Sales > Orders > Customers or Contacts > Contacts.
  2. Edit or create a new record.
  3. On “Sales & Purchases” page, you will see a field called “Agents” where they can be added. You can put the number of agents you want, but you can’t select specific commission for each partner in this base module.

For adding commissions on sales orders:

  1. Go to Sales > Orders > Quotations.
  2. Edit or create a new record.
  3. When you have selected a partner, each new quotation line you add will have the agents and commissions set at customer level.
  4. You can add, modify or delete these agents discretely clicking on the icon with several persons represented, next to the “Commission” field in the list. This icon will be available only if the line hasn’t been invoiced yet.
  5. If you have configured your system for editing lines in a popup window, agents will appear also in this window.
  6. You have a button “Recompute lines agents” on the bottom of the page “Order Lines” for forcing a recompute of all agents from the partner setup. This is needed for example when you have changed the partner on the quotation having already inserted lines.

For adding commissions on invoices:

  1. Go to Invoicing > Sales > Customer Invoices.
  2. Follow the same steps as in sales orders.
  3. The agents icon will be in this ocassion visible when the line hasn’t been settled.
  4. Take into account that invoices sales orders will transfer agents information when being invoiced.

For settling the commissions to agents:

  1. Go to Sales > Commissions Management > Settle commissions.
  2. On the window that appears, you should select the date up to which you want to create commissions. It should be at least one day after the last period date. For example, if you settlements are monthly, you have to put at least the first day of the following month.
  3. You can settle only certain agents if you select them on the “Agents” section. Leave it empty for settling all.
  4. Click on “Make settlements” button.
  5. If there are new settlements, they will be shown after this.

For invoicing the settlements (only for external agents):

  1. Go to Sales > Commissions Management > Create commission invoices.
  2. On the window that appears, you can select following data:
    • Product. It should be a service product for being coherent.
    • Journal: To be selected between existing purchase journals.
    • Date: If you want to choose a specific invoice date. You can leave it blank if you prefer.
    • Settlements: For selecting specific settlements to invoice. You can leave it blank as well for invoicing all the pending settlements.
  3. If you want to invoice a specific settlement, you can navigate to it in Sales > Commissions Management > Settlements, and click on “Make invoice” button.

Known issues / Roadmap

  • Make it totally multi-company aware.
  • Allow to calculate and pay in other currency different from company one.
  • Allow to group by agent when generating invoices.
  • Set agent popup window with a kanban view with richer information and mobile friendly.
  • When contacts are created as part of the insertion data for the creation of the parent company; the parent company’s agents don’t be passed to the contacts because it is a multi-valued field.

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us smashing it by providing a detailed and welcomed feedback.

Do not contact contributors directly about support or help with technical issues.



  • Tecnativa



This module is maintained by the OCA.

Odoo Community Association

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

Current maintainer:


This module is part of the OCA/commission project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

Please log in to comment on this module

  • The author can leave a single reply to each comment.
  • This section is meant to ask simple questions or leave a rating. Every report of a problem experienced while using the module should be addressed to the author directly (refer to the following point).
  • If you want to start a discussion with the author, please use the developer contact information. They can usually be found in the description.
Please choose a rating from 1 to 5 for this module.
Odoo 12
Damien Soitout
on 10/22/18, 5:29 PM

Awesome module! Any chance you can update for odoo 12?

More options please
Abbas Poonawala
on 8/15/18, 11:14 AM

Please include an option to specify the agent commission in each customer so that the same sales agent can get different commissions for different customers

Error while trying to generate Commission Invoice
Raheem Azeez
on 7/12/18, 10:13 AM

Hello, I got an error message while trying to create an Invoice for Commission Settlement. The error message was: "The operation cannot be completed, probably due to the following: - deletion: you may be trying to delete a record while other records still reference it - creation/update: a mandatory field is not correctly set [object with reference: currency_id - currency.id]" I have tried to activate Multi-Currency, yet that did not solve the problem and on the screen that generated the error message there was no field for inputting any Currency. Thanks

I got error in Odoo11 in windows 10
Jose C
on 7/9/18, 12:09 AM

Traceback (most recent call last): File "C:\Program Files (x86)\Odoo 11.0\server\odoo\models.py", line 982, in _validate_fields check(self) File "C:\Program Files (x86)\Odoo 11.0\server\odoo\addons\base\ir\ir_ui_view.py", line 330, in _check_xml view_def = view.read_combined(['arch']) File "C:\Program Files (x86)\Odoo 11.0\server\odoo\addons\base\ir\ir_ui_view.py", line 714, in read_combined arch = self.apply_view_inheritance(arch_tree, root.id, self.model) File "C:\Program Files (x86)\Odoo 11.0\server\odoo\addons\base\ir\ir_ui_view.py", line 664, in apply_view_inheritance source = self.apply_view_inheritance(source, view_id, model, root_id=root_id) File "C:\Program Files (x86)\Odoo 11.0\server\odoo\addons\base\ir\ir_ui_view.py", line 663, in apply_view_inheritance source = self.apply_inheritance_specs(source, specs_tree, view_id) File "C:\Program Files (x86)\Odoo 11.0\server\odoo\addons\base\ir\ir_ui_view.py", line ............................................................................................................. ............................................................................................................. Contexto del error: Vista `product.template_procurement` [view_id: 530, xml_id: stock.product_template_form_view_procurement_button, model: product.template, parent_id: 404] None" while parsing file:/c:/program files (x86)/odoo 11.0/server/odoo/addons/sale_commission/views/product_template_view.xml:3, near product.template.common.form.commission product.template