Loyalty Program

pos_loyalty
REPOSITORY
REPOSITORYOCA/pos
GIT
GIThttps://github.com/OCA/pos.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/pos/tree/11.0/pos_loyalty
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYPoint of Sale
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), RGB Consulting SL, OpenERP SA, Lambda IS
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), RGB Consulting SL, OpenERP SA, Lambda IS
COMMITTERS
COMMITTERSSylvain LE GAL, OCA Transbot, oca-travis, Weblate, OCA-git-bot
WEBSITE
WEBSITEhttps://github.com/OCA/pos
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:23:55
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - point_of_sale
    - stock_account
    - stock
    - product
    - base
    - decimal_precision
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - barcodes
    - web_planner
    - account
    - analytic
    - portal
    - http_routing
    - web_editor
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (9)
XML IDNameModelTypeStatus
assets assets ir.ui.view qweb Inherits point_of_sale.assets
assets_demo assets_demo ir.ui.view qweb Inherits point_of_sale.assets
loyalty_program_form_view loyalty.program.form loyalty.program form New
loyalty_program_tree_view loyalty.program.tree loyalty.program tree New
loyalty_reward_form_view loyalty.reward.form loyalty.reward form New
loyalty_rule_form_view loyalty.rule.form loyalty.rule form New
partner_property_form_view partner.property.form res.partner xpath Inherits point_of_sale.view_partner_property_form
pos_config_view_form pos.config.form pos.config xpath Inherits point_of_sale.pos_config_view_form
pos_order_form_view pos.order.form pos.order xpath Inherits point_of_sale.view_pos_pos_form
Models touched (7)

New fields (7)
  • name Char
    index=True required=True size=32 string='Loyalty Program Name'
  • pp_currency Float
    help='Amount of loyalty points given to the customer per sold currency' string='Points per currency'
  • pp_order Float
    help='Amount of loyalty points given to the customer for each point of sale order' string='Points per order'
  • pp_product Float
    help='Amount of loyalty points given to the customer per product sold' string='Points per product'
  • reward_ids One2many → loyalty.reward
    comodel_name='loyalty.reward' inverse_name='loyalty_program_id' string='Rewards'
  • rounding Float
    default=1 help='Loyalty point amounts will be rounded to multiples of this value' string='Points Rounding'
  • rule_ids One2many → loyalty.rule
    comodel_name='loyalty.rule' inverse_name='loyalty_program_id' string='Rules'
Public methods (0)

No public methods.

New fields (10)
  • discount Float
    help='The discount percentage'
  • discount_max Float
    help='Maximum discounted amount allowed forthis discount reward' string='Discount limit'
  • discount_product_id Many2one → product.product
    comodel_name='product.product' domain=[('available_in_pos', '=', True)] help='The product used to apply discounts' string='Discount Product'
  • gift_product_id Many2one → product.product
    comodel_name='product.product' domain=[('available_in_pos', '=', True)] help='The product given as a reward' string='Gift Product'
  • loyalty_program_id Many2one → loyalty.program
    comodel_name='loyalty.program' help='The Loyalty Program this reward belongs to' string='Loyalty Program'
  • minimum_points Float
    help='Minimum amount of points the customer must have to qualify for this reward' string='Minimum Points'
  • name Char
    index=True required=True size=32 string='Reward Name'
  • point_cost Float
    help='Cost of the reward per monetary unit discounted' string='Point Cost'
  • point_product_id Many2one → product.product
    comodel_name='product.product' domain=[('available_in_pos', '=', True)] help='Product that represents a point that is sold by the customer' string='Point Product'
  • type Selection
    help='Type of the reward' required=True selection=[('gift', 'Gift'), ('discount', 'Discount'), ('resale', 'Resale')] string='Type'
Public methods (0)

No public methods.

New fields (8)
  • category_id Many2one → pos.category
    comodel_name='pos.category' help='The category affected by this rule' string='Target Category'
  • cumulative Boolean
    help='The points from this rule will be added to points won from other rules with the same concept'
  • loyalty_program_id Many2one → loyalty.program
    comodel_name='loyalty.program' help='The Loyalty Program this rule belongs to' string='Loyalty Program'
  • name Char
    index=True required=True size=32 string='Rule Name'
  • pp_currency Float
    help='Amount of points earned per currency' string='Points per currency'
  • pp_product Float
    help='Amount of points earned per product' string='Points per product'
  • product_id Many2one → product.product
    comodel_name='product.product' domain=[('available_in_pos', '=', True)] help='The product affected by this rule' string='Target Product'
  • type Selection
    default='product' help='The concept this rule applies to' required=True selection=[('product', 'Product'), ('category', 'Category')] string='Type'
Public methods (0)

No public methods.

New fields (1)
  • loyalty_id Many2one → loyalty.program
    comodel_name='loyalty.program' help='The loyalty program used by this Point of Sale' string='Loyalty Program'
Public methods (0)

No public methods.

New fields (1)
  • loyalty_points Float
    help='The amount of Loyalty points awarded to the customer with this order' string='Loyalty Points'
Public methods (1)
  • create_from_ui(self, orders)
    @api.model

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • loyalty_points Float
    help='The loyalty points the user won as part of a Loyalty Program' string='Loyalty Points'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/pos
GIT
GIThttps://github.com/OCA/pos.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/pos/tree/10.0/pos_loyalty
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYPoint of Sale
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), RGB Consulting SL, OpenERP SA
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), RGB Consulting SL, OpenERP SA
COMMITTERS
COMMITTERSSylvain LE GAL, Stéphane Bidoul (ACSONE), OCA Transbot, oca-travis, Weblate, OCA-git-bot
WEBSITE
WEBSITEhttps://github.com/OCA/pos
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:19:54
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - point_of_sale
    - stock_account
    - stock
    - product
    - base
    - decimal_precision
    - mail
    - base_setup
    - web_kanban
    - web
    - bus
    - web_tour
    - report
    - procurement
    - barcodes
    - web_planner
    - account
    - analytic
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (8)
XML IDNameModelTypeStatus
assets assets ir.ui.view qweb Inherits point_of_sale.assets
loyalty_program_form_view loyalty.program.form loyalty.program form New
loyalty_program_tree_view loyalty.program.tree loyalty.program tree New
loyalty_reward_form_view loyalty.reward.form loyalty.reward form New
loyalty_rule_form_view loyalty.rule.form loyalty.rule form New
partner_property_form_view partner.property.form res.partner xpath Inherits point_of_sale.view_partner_property_form
pos_config_form_view pos.config.form pos.config xpath Inherits point_of_sale.view_pos_config_form
pos_order_form_view pos.order.form pos.order xpath Inherits point_of_sale.view_pos_pos_form
Models touched (6)

New fields (7)
  • name Char
    index=True required=True size=32 string='Loyalty Program Name'
  • pp_currency Float
    help='Amount of loyalty points given to the customer per sold currency' string='Points per currency'
  • pp_order Float
    help='Amount of loyalty points given to the customer for each point of sale order' string='Points per order'
  • pp_product Float
    help='Amount of loyalty points given to the customer per product sold' string='Points per product'
  • reward_ids One2many → loyalty.reward
    comodel_name='loyalty.reward' inverse_name='loyalty_program_id' string='Rewards'
  • rounding Float
    default=1 help='Loyalty point amounts will be rounded to multiples of this value' string='Points Rounding'
  • rule_ids One2many → loyalty.rule
    comodel_name='loyalty.rule' inverse_name='loyalty_program_id' string='Rules'
Public methods (0)

No public methods.

New fields (10)
  • discount Float
    help='The discount percentage'
  • discount_max Float
    help='Maximum discounted amount allowed forthis discount reward' string='Discount limit'
  • discount_product_id Many2one → product.product
    comodel_name='product.product' help='The product used to apply discounts' string='Discount Product'
  • gift_product_id Many2one → product.product
    comodel_name='product.product' help='The product given as a reward' string='Gift Product'
  • loyalty_program_id Many2one → loyalty.program
    comodel_name='loyalty.program' help='The Loyalty Program this reward belongs to' string='Loyalty Program'
  • minimum_points Float
    help='Minimum amount of points the customer must have to qualify for this reward' string='Minimum Points'
  • name Char
    index=True required=True size=32 string='Reward Name'
  • point_cost Float
    help='Cost of the reward per monetary unit discounted' string='Point Cost'
  • point_product_id Many2one → product.product
    comodel_name='product.product' help='Product that represents a point that is sold by the customer' string='Point Product'
  • type Selection
    help='Type of the reward' required=True selection=[('gift', 'Gift'), ('discount', 'Discount'), ('resale', 'Resale')] string='Type'
Public methods (0)

No public methods.

New fields (8)
  • category_id Many2one → pos.category
    comodel_name='pos.category' help='The category affected by this rule' string='Target Category'
  • cumulative Boolean
    help='The points from this rule will be added to points won from other rules with the same concept'
  • loyalty_program_id Many2one → loyalty.program
    comodel_name='loyalty.program' help='The Loyalty Program this rule belongs to' string='Loyalty Program'
  • name Char
    index=True required=True size=32 string='Rule Name'
  • pp_currency Float
    help='Amount of points earned per currency' string='Points per currency'
  • pp_product Float
    help='Amount of points earned per product' string='Points per product'
  • product_id Many2one → product.product
    comodel_name='product.product' help='The product affected by this rule' string='Target Product'
  • type Selection
    default='product' help='The concept this rule applies to' required=True selection=[('product', 'Product'), ('category', 'Category')] string='Type'
Public methods (0)

No public methods.

New fields (1)
  • loyalty_id Many2one → loyalty.program
    comodel_name='loyalty.program' help='The loyalty program used by this Point of Sale' string='Loyalty Program'
Public methods (0)

No public methods.

New fields (1)
  • loyalty_points Float
    help='The amount of Loyalty points awarded to the customer with this order' string='Loyalty Points'
Public methods (1)
  • create_from_ui(self, orders)
    @api.model

New fields (1)
  • loyalty_points Float
    help='The loyalty points the user won as part of a Loyalty Program' string='Loyalty Points'
Public methods (0)

No public methods.