Sale Loyalty Suggestions

sale_loyalty_order_suggestion
REPOSITORY
REPOSITORYOCA/sale-promotion
GIT
GIThttps://github.com/OCA/sale-promotion.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/sale-promotion/tree/18.0/sale_loyalty_order_suggestion
VERSION
VERSION 1.0.2
CATEGORY
CATEGORYSale
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSOCA-git-bot, oca-ci, pilarvargas-tecnativa, CarlosRoca13, Pilar Vargas
WEBSITE
WEBSITEhttps://github.com/OCA/sale-promotion
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:08
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - sale_loyalty
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - html_editor
    - account_payment
    - account
    - onboarding
    - product
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - payment
    - utm
    - loyalty
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module extends the functionality of the sale_loyalty wizard by
giving hints of available promotions and products needed to apply them
to the seller placing the sales order. A product added to the lines of a
sales order will be marked with a gift icon if there is a promotion
containing that product as part of its rules.

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
sale_loyalty_reward_wizard_view_form_suggestion sale.loyalty.reward.wizard field Inherits sale_loyalty.sale_loyalty_reward_wizard_view_form
view_order_form sale.order xpath Inherits sale.view_order_form
Models touched (4)

New fields (4)
  • applicable_program Boolean
    compute='_compute_applicable_promotion' default='True'
  • loyalty_rule_line_description Html
    compute='_compute_loyalty_rule_line_description'
  • loyalty_rule_line_ids One2many → sale.loyalty.rule.product_line.wizard
    comodel_name='sale.loyalty.rule.product_line.wizard' compute='_compute_loyalty_rule_line_ids' inverse_name='wizard_id' readonly=False store=True string='Loyalty Rule Lines'
  • product_id Many2one → product.product
    args: 'product.product'
Public methods (1)
  • action_apply(self)

New fields (10)
  • company_id Many2one
    related='order_id.company_id'
  • currency_id Many2one
    related='order_id.currency_id'
  • order_id Many2one
    related='wizard_id.order_id' store=True
  • price_unit Float
    compute='_compute_price_unit' string='Unit Price'
  • pricelist_id Many2one
    related='wizard_id.order_id.pricelist_id'
  • product_id Many2one → product.product
    comodel_name='product.product'
  • units_included Float
    string='Included units'
  • units_required Float
    string='Required units'
  • units_to_include Float
    string='Units to include'
  • wizard_id Many2one → sale.loyalty.reward.wizard
    comodel_name='sale.loyalty.reward.wizard'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (3)
  • suggested_promotion_ids Many2many → loyalty.program
    comodel_name='loyalty.program' compute='_compute_suggested_promotion_ids'
  • suggested_promotions Boolean
    compute='_compute_suggested_promotion_ids' default=False
  • suggested_reward_ids Many2many → loyalty.reward
    comodel_name='loyalty.reward' compute='_compute_suggested_promotion_ids'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/sale-promotion
GIT
GIThttps://github.com/OCA/sale-promotion.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/sale-promotion/tree/16.0/sale_loyalty_order_suggestion
VERSION
VERSION 1.0.5
CATEGORY
CATEGORYSale
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSLaurent Mignon (ACSONE), Weblate, OCA-git-bot, oca-ci, pilarvargas-tecnativa, Kev-Roche
WEBSITE
WEBSITEhttps://github.com/OCA/sale-promotion
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:53:41
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/sale-promotion:
    - sale_loyalty_initial_date_validity
    - loyalty_initial_date_validity
odoo/odoo:
    - sale_loyalty
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - account_payment
    - account
    - product
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - payment
    - utm
    - loyalty
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
sale_loyalty_reward_wizard_view_form_suggestion sale.loyalty.reward.wizard field Inherits sale_loyalty.sale_loyalty_reward_wizard_view_form
view_order_form sale.order xpath Inherits sale.view_order_form
Models touched (4)

New fields (4)
  • applicable_program Boolean
    compute='_compute_applicable_promotion' default='True'
  • loyalty_rule_line_description Html
    compute='_compute_loyalty_rule_line_description'
  • loyalty_rule_line_ids One2many → sale.loyalty.rule.product_line.wizard
    comodel_name='sale.loyalty.rule.product_line.wizard' compute='_compute_loyalty_rule_line_ids' inverse_name='wizard_id' readonly=False store=True string='Loyalty Rule Lines'
  • product_id Many2one → product.product
    args: 'product.product'
Public methods (1)
  • action_apply(self)

New fields (10)
  • company_id Many2one
    related='order_id.company_id'
  • currency_id Many2one
    related='order_id.currency_id'
  • order_id Many2one
    related='wizard_id.order_id' store=True
  • price_unit Float
    compute='_compute_price_unit' string='Unit Price'
  • pricelist_id Many2one
    related='wizard_id.order_id.pricelist_id'
  • product_id Many2one → product.product
    comodel_name='product.product'
  • units_included Float
    string='Included units'
  • units_required Float
    string='Required units'
  • units_to_include Float
    string='Units to include'
  • wizard_id Many2one → sale.loyalty.reward.wizard
    comodel_name='sale.loyalty.reward.wizard'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (3)
  • suggested_promotion_ids Many2many → loyalty.program
    comodel_name='loyalty.program' compute='_compute_suggested_promotion_ids'
  • suggested_promotions Boolean
    compute='_compute_suggested_promotion_ids' default=False
  • suggested_reward_ids Many2many → loyalty.reward
    comodel_name='loyalty.reward' compute='_compute_suggested_promotion_ids'
Public methods (0)

No public methods.

STATUS
STATUSOpen migration PR - not merged yet for this version
REPOSITORY
REPOSITORYOCA/sale-promotion
PULL REQUEST
PULL REQUEST[19.0][MIG] sale_loyalty_order_suggestion: Migration to 19.0 (#335)
STATUS
STATUSOpen migration PR - not merged yet for this version
REPOSITORY
REPOSITORYOCA/sale-promotion
PULL REQUEST
PULL REQUEST[19.0] [MIG] sale_loyalty_order_suggestion: Migration to 19.0 (#316)