Skip to main content

Sales commissions

Project description

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

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.

For commission analysis based on invoices:

  • Go to Accounting > Reporting > Commission Analysis

For commission analysis (forecast) based on sale orders:

  • Go to Sales > Reporting > Commission Analysis

Please note that this analysis can produce distorted forecast, because final settlements depend on invoices, not on sales orders.

Known issues / Roadmap

  • Make it totally multi-company aware.

  • Be multi-currency aware for settlements.

  • 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.

  • Add scheduled action (cron) for automatic settling. See for more details.

  • Add a new commission type called “Flat Rate”. See for more details.

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 to smash 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

Project details

Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page