| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Point of Sale (point_of_sale)
• Discuss (mail) • Inventory (stock) • Invoicing (account) |
| Lines of code | 1802 |
| Technical Name |
pos_customer_rewards |
| License | LGPL-3 |
| Website | https://digicyfr.com |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Point of Sale (point_of_sale)
• Discuss (mail) • Inventory (stock) • Invoicing (account) |
| Lines of code | 1802 |
| Technical Name |
pos_customer_rewards |
| License | LGPL-3 |
| Website | https://digicyfr.com |
POS Customer Rewards
Simple and Powerful Loyalty Program for Point of Sale
Overview
A simple, focused loyalty program module for Odoo Point of Sale that helps you reward your customers and build lasting relationships. This module provides all the essential features you need to run an effective loyalty program without overwhelming complexity.
Key Features
Points Earning
Customers automatically earn points based on their purchase amount with configurable earning rates.
Flexible Rewards
Create multiple reward types: fixed discounts, percentage discounts, or free products.
Points Balance Display
View customer points balance directly in the POS customer screen for easy access.
Transaction History
Complete audit trail of all point earn, redeem, and expiration transactions.
Point Expiration
Configure points to expire after a set number of days to encourage repeat visits.
Minimum Order Amount
Set a minimum purchase requirement for earning points to control program costs.
Configuration
Setting Up Your Loyalty Program
- Go to Point of Sale > Configuration > Loyalty Programs
- Click Create to set up a new program
- Configure the program parameters:
- Program Name: Give your program a descriptive name
- Points per Currency Unit: Set the earning rate (e.g., 1.0 = 1 point per $1)
- Minimum Order Amount: Set minimum purchase to earn points (0 = no minimum)
- Points Expire After: Days until points expire (0 = never expire)
- Save your loyalty program
Creating Rewards
- From the Loyalty Program form, click the Rewards smart button
- Click Create to add a new reward
- Configure the reward:
- Reward Name: Customer-facing name (e.g., "$5 Off")
- Points Required: Points needed to redeem
- Reward Type: Choose Fixed Discount, Percentage Discount, or Free Product
- Set the appropriate discount amount or free product
- Create multiple rewards to give customers options
Enabling in POS
- Navigate to Point of Sale > Configuration > Point of Sale
- Select your POS configuration
- In the Loyalty section, select your Loyalty Program
- Save and restart your POS session
Usage
Earning Points
- Open POS and select a customer
- Add products to the order
- Complete the payment
- Points are automatically awarded based on purchase amount
- Customer's points balance updates in real-time
Redeeming Points
- Open POS and select a customer with loyalty points
- Add products to the order
- Click the Use Points button on the product screen
- A popup displays available rewards and current points balance
- Select a reward and click Redeem
- The discount or free product is applied to the order
- Complete payment - points are automatically deducted
Viewing Points Balance
- In POS: Points displayed next to customer name in customer list
- Backend: View loyalty points field and transaction history from customer form
Benefits
- Increase Customer Loyalty: Reward repeat customers and encourage return visits
- Boost Sales: Incentivize larger purchases with minimum order requirements
- Simple Management: Automatic discount product creation and management
- Complete Tracking: Immutable audit trail of all transactions
- Flexible Rewards: Multiple reward types to suit different business needs
- Easy Integration: Seamlessly works with existing POS workflow
Technical Details
- Version: 17.0.1.2.0
- Compatible with: Odoo 17.0
- License: LGPL-3
- Category: Point of Sale
- Dependencies: point_of_sale, base
- Auto Install: No
POS Customer Rewards
A simple, focused loyalty program module for Odoo Point of Sale.
Overview
This module provides a complete loyalty program solution for Odoo Point of Sale, allowing businesses to reward their customers with points that can be redeemed for discounts or free products.
Features
- Points Earning: Customers earn points based on purchase amount
- Flexible Rewards: Multiple reward types (fixed discount, percentage discount, free products)
- Points Balance Display: View points balance in POS customer screen
- Transaction History: Complete audit trail of all earn/redeem transactions
- Point Expiration: Configurable point expiration after X days
- Minimum Order: Set minimum purchase amount to earn points
- Automatic Management: Discount product automatically created and managed
Configuration
Create Loyalty Program
- Go to Point of Sale > Configuration > Loyalty Programs
- Click Create
- Configure:
- Program Name: Name of your loyalty program
- Points per Currency Unit: How many points per dollar/euro (e.g., 1.0 = 1 point per $1)
- Minimum Order Amount: Minimum purchase to earn points (0 = no minimum)
- Points Expire After: Days until points expire (0 = never expire)
- Click Save
Create Rewards
- From the Loyalty Program form, click the Rewards smart button
- Click Create
- Configure:
- Reward Name: Name shown to customers (e.g., "$5 Off")
- Points Required: Points needed to redeem
- Reward Type:
- Fixed Discount: Specific amount off (e.g., $5)
- Percentage Discount: Percentage off (e.g., 10%)
- Free Product: Give a product for free
- Discount Amount or Discount Percentage or Free Product: Based on reward type
- Click Save
- Repeat to create multiple rewards
Enable in POS
- Go to Point of Sale > Configuration > Point of Sale
- Select your POS configuration
- In the Loyalty section, select your Loyalty Program
- Click Save
- Restart your POS session
Usage
Earning Points
- Open POS and select a customer
- Add products to the order
- Complete the payment
- Points are automatically awarded based on the purchase amount
- Customer's points balance is updated
Redeeming Points
- Open POS and select a customer with loyalty points
- Add products to the order
- On the product screen, click the Use Points button
- A popup shows available rewards and current points balance
- Select a reward and click Redeem
- The discount or free product is applied to the order
- Complete the payment
- Points are automatically deducted
Important
Only ONE reward can be redeemed per order
Viewing Points Balance
- In POS: Points are displayed next to the customer name in the customer list
- Backend:
- Go to Contacts
- Open a customer
- View Loyalty Points field
- Click Loyalty Transactions smart button to see history
Transaction History
- Go to Point of Sale > Reporting > Loyalty Transactions
- View all point earn/redeem/expire transactions
- Filter by customer, date range, or transaction type
- Transactions are immutable (audit trail)
Point Expiration
If configured, points will expire after the specified number of days.
Note
Point expiration is not automatic. You need to:
- Manually call the expiration method on customers
- Or set up a scheduled action to run periodically
- An "expire" transaction is created for the audit trail
Example:
partner.expire_old_points(program)
Technical Details
Dependencies
- point_of_sale
- base
Models
loyalty.program
Main program configuration:
- Points per currency unit
- Minimum order amount
- Point expiration settings
loyalty.reward
Reward definitions:
- Points required
- Reward type (fixed, percentage, free product)
- Discount amounts
loyalty.transaction
Immutable transaction log:
- Customer
- Points change
- Transaction type (earn, redeem, expire)
- Related order
Security
Access control is defined in security/ir.model.access.csv:
- All users can read loyalty data
- Only managers can create/write/delete programs and rewards
- Transactions are read-only after creation (audit trail)
Troubleshooting
Common Issues
"Use Points" button not appearing
- Hard refresh browser (Ctrl + Shift + R)
- Check that loyalty program is enabled in POS configuration
Free Product field not appearing in reward form
- Update the module: odoo -d your_db -u pos_customer_rewards --stop-after-init
- Restart Odoo service
- Hard refresh browser
Points not showing for customer
- Hard refresh browser
- Check that customer has made a validated order
- Verify POS configuration has loyalty program enabled
"Please select a customer first"
- Select a customer before clicking "Use Points" button
Known Limitations
- Only one reward can be redeemed per order
- Point expiration must be triggered manually or via scheduled action
- Cannot split points redemption across multiple rewards
Credits
Authors
- Digicyfr Polska
Contributors
- Digicyfr Polska <info@digicyfr.com>
Maintainers
This module is maintained by Digicyfr Polska.
Support
- Website: https://digicyfr.com
- Email: info@digicyfr.com
- Phone: +48 695 021 633
License
This module is licensed under LGPL-3.
Please log in to comment on this module