TIP: You can type at any time to perform a new search.
Sale Loyalty
sale_loyalty · odoo/odoo
Security findings
- Repository
- odoo/odoo · module folder
- Module version
- 0.1.0
- Category
- Sales/Sales
- Folder size
- 1.45 MB
- License
- LGPL-3
- Application
- No
- Auto-installable
- Yes
- Website
- None
- Last tracking update
- 2026-10-03 21:22:49
- Authors
- Odoo S.A.
- Maintainers
- Odoo S.A.
- Committers
- Xavier Morel, Raphael Collet, Thibault Delavallée, odoo, Odoo Translation Bot, Christophe Matthieu, Xavier-Do, Victor Feyens, Tiffany Chang (tic), Gorash, william-andre, Antoine Vandevenne (anv), alsh-odoo, Pedram (PEBR), Victor Piryns (pivi), amdi-odoo, Levi Siuzdak (sile), Dylan Kiss (dyki), Antoine Boonen, Chong Wang (cwg), Xavier Bol (xbo), Sarah Bellefroid, Arnaud Sibille, Louis (loti), kcv-odoo, Harsh Shah, Patricia Daloze (pda), Xavier Luyckx (xlu), Ryan Cen, dija-odoo, David Van Droogenbroeck (DROD), Pierre Lamotte (pila), Michaël Mattiello, Carmine, Mahdi Alijani (malj), anko-odoo, krip-odoo, Guillaume V, bhna-odoo, Julien Launois (jula), Nisarg (nipl), Lionel Piraux (lipi), jand-odoo, Merlin Guillaume, Farah (ahmfa), kame-odoo, Khaj-odoo, Krishna Patel, Kirra Hyde, nutav, Julien Piron, Jean Schoenlaub, Corentin Deruyck, Ahmed Hamila, Cezar Bulancea (cebul)
- Odoo dependencies
- Python dependencies
- None
- System dependencies
- None
- Required by
- sale_loyalty_delivery, website_sale_loyalty
- Description
Integrate discount and loyalty programs mechanisms in sales orders.
Code Analysis
Views touched (11)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
loyalty_card_view_form_inherit_sale_loyalty |
loyalty.card.view.form.inherit.sale.loyalty | loyalty.card | form | Inherits loyalty.loyalty_card_view_form |
loyalty_program_view_form_inherit_sale_loyalty |
loyalty.program.view.form.inherit.sale.loyalty | loyalty.program | form | Inherits loyalty.loyalty_program_view_form |
res_partner_form |
res.partner.view.buttons | res.partner | form | Inherits loyalty.res_partner_form |
sale_loyalty.sale_order_portal_template |
Loyalty Points | ir.ui.view | qweb | Inherits sale.sale_order_portal_template |
sale_loyalty_coupon_wizard_view_form |
sale.loyalty.coupon.wizard.view.form | sale.loyalty.coupon.wizard | form | New |
sale_loyalty_reward_wizard_view_form |
sale.loyalty.reward.wizard.view.form | sale.loyalty.reward.wizard | form | New |
sale_order_portal_content_inherit |
Gift Card Products Portal | ir.ui.view | qweb | Inherits sale.sale_order_portal_content |
sale_order_portal_loyalty_content |
sale_order_portal_loyalty_content | ir.ui.view | qweb | New |
sale_order_view_form_inherit_sale_loyalty |
sale.order.view.form.inherit.sale.loyalty | sale.order | form | Inherits sale.view_order_form |
sale_purchased_gift_card |
sale_purchased_gift_card | ir.ui.view | qweb | New |
used_gift_card |
used_gift_card | ir.ui.view | qweb | New |
HTTP endpoints (1)
| Route(s) | Handler | Auth | Type | Methods | Flags |
|---|---|---|---|---|---|
/gift_card/send |
GiftCard.send_gift_card |
public | jsonrpc | ALL | sudo |
Models touched (10)
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (2)
-
order_idMany2one → sale.ordercomodel_name='sale.order'help='The sales order from which coupon is generated'index='btree_not_null'readonly=Truestring='Order Reference' -
order_id_partner_idMany2one → res.partnercomodel_name='res.partner'related='order_id.partner_id'string='Sale Order Customer'
-
action_archive(self)
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (2)
-
order_countIntegercompute='_compute_order_count' -
sale_okBooleandefault=Truestring='Sales'
No public methods.
New fields (0)
No new fields.
Public methods (1)-
unlink(self)
New fields (2)
-
coupon_codeCharrequired=True -
order_idMany2one → sale.orderdefault=<expr>required=True args: 'sale.order'
-
action_apply(self)
New fields (6)
-
multi_product_rewardBooleanrelated='selected_reward_id.multi_product' -
order_idMany2one → sale.orderdefault=<expr>required=True args: 'sale.order' -
reward_idsMany2many → loyalty.rewardcompute='_compute_claimable_reward_ids' args: 'loyalty.reward' -
reward_product_idsMany2manyrelated='selected_reward_id.reward_product_ids' -
selected_product_idMany2one → product.productcompute='_compute_selected_product_id'domain="[('id', 'in', reward_product_ids)]"readonly=Falsestore=True args: 'product.product' -
selected_reward_idMany2one → loyalty.rewarddomain="[('id', 'in', reward_ids)]" args: 'loyalty.reward'
-
action_apply(self) -
action_cancel(self)
New fields (5)
-
applied_coupon_idsMany2many → loyalty.cardcomodel_name='loyalty.card'copy=Falsestring='Manually Applied Coupons' -
code_enabled_rule_idsMany2many → loyalty.rulecomodel_name='loyalty.rule'copy=Falsestring='Manually Triggered Rules' -
coupon_point_idsOne2many → sale.order.coupon.pointscomodel_name='sale.order.coupon.points'copy=Falseinverse_name='order_id' -
gift_card_countIntegercompute='_compute_gift_card_count' -
reward_amountFloatcompute='_compute_reward_total'
-
action_confirm(self)Override to validate and update coupon rewards. If called with one SO, checks if there exists rewards that are available but not claimed, and if so returns a notification action. :raises ValidationError: A coupon gave a negative amount of points. :return: True or a notification action :rtype: bool | dict -
action_open_reward_wizard(self) -
action_view_gift_cards(self) -
copy(self, default=None)
New fields (3)
-
coupon_idMany2one → loyalty.cardcomodel_name='loyalty.card'ondelete='cascade'required=True -
order_idMany2one → sale.ordercomodel_name='sale.order'index=Trueondelete='cascade'required=True -
pointsFloatrequired=True
No public methods.
New fields (5)
-
coupon_idMany2one → loyalty.cardcomodel_name='loyalty.card'ondelete='restrict'readonly=True -
is_reward_lineBooleancompute='_compute_is_reward_line'string='Is a program reward line' -
points_costFloathelp='How much point this reward costs on the loyalty card.' -
reward_idMany2one → loyalty.rewardcomodel_name='loyalty.reward'ondelete='restrict'readonly=True -
reward_identifier_codeCharhelp='Technical field used to link multiple reward lines from the same reward together.'
-
create(self, vals_list)@api.model_create_multi -
unlink(self) -
write(self, vals)
Loading…
Loading…
Loading…
Loading…