Skip to main content

Loyalty Program

Project description

Beta License: AGPL-3 OCA/pos Translate me on Weblate Try me on Runbot

This module allows you to define a loyalty program in the point of sale, where the customers earn loyalty points and get rewards.

This module is a forward-port to v10 of the pos_loyalty module from Odoo’s saas-6 branch. The functionality was moved to the Enterprise edition in later versions.

Table of contents


To use this module, you need to:

  • Go to Point of Sale > Configuration > Loyalty Programs and define a new loyalty program with specific rules and rewards.

  • Assign the loyalty program to the desired Point of Sale.


The Loyalty Program defines rules for acquiring points and rewards on which they can be spent.

Rules can be defined globally for all products (fields on loyalty.program) and / or rules that are applied only on specific product or PoS category (loyalty.rule records) on a points per product sold or points per currency spent basis. The specific rules (loyalty.rule) can be defined as cumulative, which means that they will be aggregated with other matching rules (loyalty.rule records and loyalty.program fields). In the case of non-cumulative rules only the points from that one matching rule are used. Additionally, fixed points per order can be added which are applied regardless of whether or not cumulative or non-cumulative rules were applied also.

Rewards can be of three types:

  • Gift - give a single unit of product for free

  • Discount - give a discount to the whole order. It should be added at the end of the order so that the correct total price is used.

  • Resale - allow for customer to sell back his earned points. These are calculated by setting the price on the Resale product (resale_product.list_price * customer.loyalty_points)

All rewards can define how many points they cost (point_cost) and how many are needed so that the customer can become eligable for the reward (minimum_points). for Gift and Discount rewards minimum_points are considered only if they are greater then the point_cost for that reward (minimum_points > point_cost). For Resale products only minimum_points can be used.

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.



  • OpenERP SA

  • RGB Consulting SL

  • Lambda IS



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.

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

You are welcome to contribute. To learn how please visit

Project details

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