Commission Management
Calculate employee commission from products that were actually delivered during the payroll period. Define simple unit-based slabs, connect every sale order with an employee, and let Odoo use completed outgoing deliveries to determine the final commission amount.
Pay Commission for Completed Business, Not Only Confirmed Orders
A confirmed sales order does not always mean that the customer has received the products. A delivery can be delayed, completed in parts, or moved to another payroll period. If commission is calculated only from ordered quantities, the company may pay commission before the related stock has actually left the warehouse.
This module connects sales, inventory, employees, and payroll in one clear process. The salesperson is selected as an employee on the sales order. When Odoo processes a payslip, the calculation looks for completed outgoing stock moves linked to that employee's sale order lines and dated inside the payslip period. It then totals the delivered units and the delivered sales value.
The result is a practical commission value based on delivered quantity multiplied by the sale order line unit price, followed by the percentage configured in the matching global commission slab.
A Simple and Controlled Commission Process
Every part of the calculation uses records that your team already creates in Odoo.
Employee on Sale Order
Select the responsible employee directly on every sales order. Only active employees are available, helping users make a clear and valid assignment.
Delivered Quantity
Count stock moves only when they are completed, outgoing, inside the payslip dates, and linked to a sale order assigned to the employee.
Global Slab Rate
Compare total delivered units with the configured minimum and maximum limits, then apply the percentage from the matching slab.
Complete Working of the Module
From commission setup to the final payslip result.
Create and Maintain the Global Commission Plan
Open the dedicated Commissions menu and access the commission plan. The design keeps one global plan so that all payroll calculations follow the same company-wide structure. Users maintain the existing plan instead of creating several competing plans.
The plan includes an active status and an editable list of slabs. Chatter tracking records changes to important fields, giving managers a useful history when rates or thresholds are updated.
Define Unit Ranges and Commission Percentages
Add the minimum units, maximum units, and commission percentage for every slab. The slabs are automatically ordered by minimum units, which makes the configuration easy to review. A maximum value can be left empty when the slab should remain open-ended.
Assign the Responsible Employee on the Sales Order
A required Sales Person employee field is added to the sales order. This is an HR employee link, separate from the standard Odoo user field, and it is the main connection used by the payroll commission calculation.
The field only allows active employee records. Creating or opening employees from this field is disabled, so the sales user selects from employees that have already been properly maintained by the company.
Complete the Customer Delivery
Continue with the standard Odoo sales and inventory workflow. Confirm the order, prepare the outgoing transfer, enter the delivered quantities, and validate the delivery. The module does not count draft, waiting, ready, or cancelled stock moves.
Because the calculation reads the completed quantity from the delivery move, partial deliveries are naturally handled. Only the quantity completed in the selected payroll date range contributes to that period's total.
Collect Valid Deliveries During Payroll
When the commission salary rule is evaluated for an employee, Odoo searches stock moves connected to sale order lines for that employee. A move must meet all of the following conditions before it is included:
The linked sale order belongs to the employee on the payslip.
The stock move has been fully validated.
The move date is inside the payslip start and end dates.
Only customer-facing outbound shipments are counted.
Calculate Delivered Revenue and Final Commission
For every valid stock move, the system adds the completed quantity to the total units. It also multiplies that quantity by the linked sale order line's unit price and adds the result to delivered revenue. After all valid moves have been processed, total units are compared with the global slab limits.
See the Complete Commission Workflow
Follow these five screens to understand how commission settings, sales orders, customer deliveries, and payroll work together inside Odoo.
Open the Commission Main Menu
After installing the module, a dedicated Commissions application appears on the Odoo main dashboard. Open this menu to access the commission configuration area and manage the Global Sales Commission Plan.
Open the Global Plan and Configure Its Slabs
Open the Global Sales Commission record and define the commission levels in the Slabs tab. For every slab, enter the minimum units, maximum units, and commission percentage. Add or update the lines according to your company's approved sales commission policy.
Find the Delivery-Based Sales Commission Salary Rule
Go to Payroll → Configuration → Rules. The module provides a salary rule named Delivery-Based Sales Commission with the code COMMISSION_DELIVERY. It is initially assigned to the Default Structure Rules Set. Open this rule and assign it to the salary structure used by your employees.
Change the Salary Structure on the Rule
In the salary rule form, find the Salary Structure field. Remove the default structure and select the structure used for your payroll, such as Regular Pay or another custom structure. Save the rule after making the change. This step is important because Odoo computes the rule only on payslips using a structure that contains it.
Compute the Payslip and Review Sales Commission
Create the employee's salary slip with the correct payroll period and salary structure, then click Compute Sheet. Open the Salary Computation tab to see the Sales Commission line. Its amount is calculated automatically from the employee's completed outgoing deliveries, delivered sales value, payslip dates, and applicable global commission slab.
Important setup note: The commission rule is supplied in the default salary structure. Before computing payroll, assign it to the salary structure used on your employees' payslips. Otherwise, the Sales Commission line will not appear in Salary Computation.
Easy Calculation Example
The following example explains the calculation in simple numbers.
Delivered revenue: 30 Ã 100.00 = 3,000.00
Applicable slab: The slab containing 30 delivered units gives a 3% rate.
Final commission: 3,000.00 Ã 3% = 90.00
Key Module Capabilities
- ✓Single Global Plan: Maintain one clear commission policy for the complete operation.
- ✓Flexible Slabs: Configure minimum units, maximum units, and commission percentage.
- ✓Employee-Based Sales: Link an active HR employee directly with each sale order.
- ✓Warehouse Assistance: Apply the current user's configured default warehouse when available.
- ✓Delivery-Based Quantity: Count quantities from completed outgoing stock moves.
- ✓Period Control: Include delivery moves only within the payslip start and end dates.
- ✓Partial Delivery Support: Use the actual completed move quantity in the calculation.
- ✓Tracked Configuration: Follow important plan and slab changes through Odoo chatter.
Designed for a Clear Operational Setup
This implementation is suitable for operations where each showroom or working context processes payroll against the active employee record and all employees follow one global slab structure.
The commission salary rule must be configured in payroll so its result uses the delivered-unit and delivered-revenue calculation. Sale orders must contain the responsible employee, and customer deliveries must be validated correctly for their quantities to be counted.
Accurate source data produces an accurate commission result: maintain slab ranges carefully, select the correct employee on every order, use the correct sale prices, and validate deliveries on the proper date.
Your Technology Partner for Reliable Business Solutions
DeliveryDevs is a global software development company that builds practical digital products and essential business technologies. Our team helps organizations improve daily operations through dependable software, thoughtful implementation, and solutions designed around real business needs.
Odoo Services
Business-focused Odoo implementation, customization, workflow automation, integration, and ongoing technical support.
Software Development
Web, mobile, SaaS, API, AI, machine learning, IoT, and application modernization services for growing organizations.
Technology Operations
DevOps, cybersecurity, staff augmentation, and project consultancy services that support stable and secure operations.
Build Better Business Workflows with DeliveryDevs
Whether you need a focused Odoo module, a complete ERP implementation, or a custom software solution, our team can help turn your operational requirements into a dependable system.
Website: deliverydevs.com | Email: hello@deliverydevs.com
Make Every Delivered Unit Count
Bring sales performance, completed customer deliveries, commission slabs, and payroll calculation together in one straightforward Odoo workflow.
Commission Management for Odoo
Delivery-Based Sales Commission • Employee Assignment • Global Slab Calculation
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Invoicing (account)
• Payroll (hr_payroll) • Sales (sale_management) • Discuss (mail) • Employees (hr) • Employee Contracts (hr_contract) |
| Lines of code | 189 |
| Technical Name |
dd_commission_management |
| License | OPL-1 |
| Website | https://deliverydevs.com/ |
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module