Odoo 17 Community & Enterprise
v17.0
This module enables commission tracking for Point of Sale orders. Assign agents to orders, configure product-level commissions, and manage settlements with automatic payment registration and PDF reports.
- ✅ Agent Selection in POS - Assign commission agents directly from the POS interface
- ✅ Product Commission Config - Fixed or percentage-based commissions per product
- ✅ Automatic Settlements - Auto-generated per agent per session
- ✅ Payment Registration - Single or batch payments with journal selection
- ✅ Auto-Reopen Settlements - Automatically reopens when balance changes
- ✅ Refund Handling - Commission reversal on POS refunds
- ✅ PDF Reports - Multi-language settlement reports
- ✅ Payment Widget - Visual payment tracking on settlements
- ✔ Community
-
✔
Enterprise
(On-premises) - ✔ Odoo.sh
- ✘ Online
📦 Dependencies
- • Point of Sale (point_of_sale)
- • Employees (hr)
- • Accounting (account)
💻 Technical
- • OWL Components (POS frontend)
- • QWeb PDF Reports
- • Multi-language (i18n)
- • License: LGPL-3
Commission Settlement
View settlement details, commission lines, payments, and generate PDF reports.
The module defines 3 security groups with hierarchical permissions:
👤 Cashier
Read-only access to commission lines and settlements. Can view but not modify.
📝 Admin
Read/Write/Create access. Can confirm settlements and register payments. Auto-assigned to POS Managers.
👑 Manager
Full access including delete. Can manage all commission data and configurations.
Enable commissions per POS terminal:
✅ Enable Agent Commissions
Go to Point of Sale > Configuration > Settings. Enable "Agent Commissions" checkbox.
👤 Select Allowed Agents
Choose which employees can be assigned as commission agents in this POS.
⚠ Require Agent
Optional: Force cashiers to select an agent before validating orders with commission products.
Configure commission rules per product:
✅ Enable Commission
On product form, check "POS Commission" in the options area. A new tab "Comisión POS" appears.
💵 Fixed Commission
Set a fixed amount. Choose mode: Per Unit or Per Order Product.
📊 Percentage Commission
Set a percentage. Choose base: Net without Tax or Net with Tax.
Below are the formulas used to calculate commissions, with practical examples for each case:
💵 Fixed - Per Unit
Formula:
Commission = Value × Quantity
Example:
- Product: "Premium Coffee" - Price: $10.00
- Commission Value: $2.00 per unit
- Order: 5 units
- Commission: $2.00 × 5 = $10.00
📦 Fixed - Per Order Product
Formula:
Commission = Value (once per product)
Example:
- Product: "Laptop Setup Service" - Price: $500.00
- Commission Value: $50.00 per order
- Order: 3 units (same product)
- Commission: $50.00 (only once)
📊 Percentage - Net without Tax
Formula:
Commission = Net w/o Tax × (Value / 100)
Example:
- Product: "Smartphone" - Price: $800.00 + 18% Tax
- Commission Value: 5%
- Net w/o Tax: $800.00
- Commission: $800.00 × 0.05 = $40.00
💰 Percentage - Net with Tax
Formula:
Commission = Net w/ Tax × (Value / 100)
Example:
- Product: "Smartphone" - Price: $800.00 + 18% Tax
- Commission Value: 5%
- Net w/ Tax: $800.00 + $144.00 = $944.00
- Commission: $944.00 × 0.05 = $47.20
Each commission agent must have proper configuration:
⚠ Work Contact (Required)
Each agent employee must have a Work Contact assigned. This is used as the payment partner.
🌐 Contact Language
Set the contact's language for PDF reports to be automatically translated.
Using commissions in the Point of Sale:
👤 Select Agent
Before validating the order, select the commission agent from the dropdown in the payment screen.
💰 Auto Commission
Commission lines are automatically generated when the order is validated with an agent assigned.
📋 Auto Settlement
A settlement is automatically created per agent per session. All commissions are grouped there.
📈 View in Order
Commission total is visible on the POS order form in backend.
Settlements group all commissions per agent per session:
Settlement Workflow:
- Draft - Initial state, can be edited or deleted
- Confirmed - Ready for payment registration
- Paid - Fully paid (auto-set when balance = 0)
📊 Totals
Generated, Reversed, Net, Paid, and Balance amounts are automatically calculated.
🔁 Auto-Reopen
Returns to Confirmed if new commissions are added or payments are canceled/deleted.
Register payments for commission settlements:
💵 Single Payment
From settlement form, click "Register Payment". Enter amount, select journal, and confirm.
📦 Batch Payment (Same Agent)
Select multiple settlements of same agent, click "Pay Settlements". Amount is editable.
👥 Batch Payment (Multiple Agents)
Select settlements of different agents. Amount is readonly. One payment per settlement is created.
📊 Payment Widget
View all registered payments directly on the settlement form with quick access to payment details.
Commission reversals are handled automatically:
🔁 Auto Reversal
When a POS refund is processed, reversed commission lines are automatically created.
💰 Net Calculation
Reversed amounts reduce the agent's total net commission in the settlement.
📊 Per Unit vs Per Order
Fixed "Per Unit" reverses proportionally. "Per Order Product" only reverses when all qty is refunded.
🔗 Linked to Original
Reversed lines are linked to the original commission line for traceability.
Generate PDF settlement reports:
PDF Report Features:
- Multi-language - Automatically translated based on agent's contact language
- Commission Detail - Full breakdown of all commission lines with order references
- Payment History - List of all registered payments with dates and amounts
- Totals Summary - Generated, reversed, net, paid, and balance amounts
- Signature Lines - Manager and agent signature areas for physical approval
Steps:
- Copy the
qa_pos_agent_commissionfolder into your Odoo custom addons directory - Restart the Odoo server
- Go to Apps, remove the "Apps" filter, and search for "POS Agent Commission"
- Click Install
- Configure commission agents in Employees (ensure work contact is set)
- Enable commissions in POS Configuration
- Configure commission values on Products
For questions, bug reports, or feature requests, please contact us:
Please log in to comment on this module