diff --git a/addons/sale_loyalty/models/sale_order.py b/addons/sale_loyalty/models/sale_order.py index 37c29d032f5..c9118105c69 100644 --- a/addons/sale_loyalty/models/sale_order.py +++ b/addons/sale_loyalty/models/sale_order.py @@ -139,7 +139,7 @@ class SaleOrder(models.Model): return [{ 'name': _("Free Product - %(product)s", product=product.name), 'product_id': product.id, - 'price_unit': 0, + 'discount': 100, 'product_uom_qty': reward.reward_product_qty * claimable_count, 'reward_id': reward.id, 'coupon_id': coupon.id, diff --git a/addons/sale_loyalty/models/sale_order_line.py b/addons/sale_loyalty/models/sale_order_line.py index 638beff879b..c0b97411d2d 100644 --- a/addons/sale_loyalty/models/sale_order_line.py +++ b/addons/sale_loyalty/models/sale_order_line.py @@ -40,7 +40,7 @@ class SaleOrderLine(models.Model): def _get_display_price(self): # A product created from a promotion does not have a list_price. # The price_unit of a reward order line is computed by the promotion, so it can be used directly - if self.is_reward_line: + if self.is_reward_line and self.reward_id.reward_type != 'product': return self.price_unit return super()._get_display_price()