diff --git a/packages/Webkul/Discount/src/Helpers/Cart/Discount.php b/packages/Webkul/Discount/src/Helpers/Cart/Discount.php index 7df74e404..307e4dfe2 100644 --- a/packages/Webkul/Discount/src/Helpers/Cart/Discount.php +++ b/packages/Webkul/Discount/src/Helpers/Cart/Discount.php @@ -198,6 +198,8 @@ abstract class Discount if ($alreadyApplied->count() && $alreadyApplied->first()->cart_rule->id == $rule->id) { if ($this->validateRule($alreadyApplied->first()->cart_rule)) { + $this->reassess($alreadyApplied->first()->cart_rule, $cart); + return false; } else { $this->clearDiscount(); @@ -255,6 +257,20 @@ abstract class Discount } } + /** + * To reassess the discount in case no. of items gets changed + * + * @return Void + */ + public function reassess($rule) + { + $rule->impact = $this->calculateImpact($rule); + + $this->updateCartItemAndCart($rule); + + return; + } + /** * To return cart rule which has the max impact * @@ -647,8 +663,11 @@ abstract class Discount $result = $this->validateRule($alreadyAppliedRule); - if (! $result) + if (! $result) { $this->clearDiscount(); + } else { + $this->reassess($alreadyAppliedRule); + } } }