From 22a49f03aca6c6f429fc9a281e1f11a11ad54d64 Mon Sep 17 00:00:00 2001 From: Attila Fulop <1162360+fulopattila122@users.noreply.github.com> Date: Sun, 25 Aug 2024 14:24:34 +0300 Subject: [PATCH] Cart update recalculates promotions as well - Coupon code gets saved to promo adjustment origin --- src/Foundation/Listeners/CalculatePromotions.php | 7 ++++--- src/Foundation/Providers/EventServiceProvider.php | 1 + 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/Foundation/Listeners/CalculatePromotions.php b/src/Foundation/Listeners/CalculatePromotions.php index 655a586b..37bb6ac2 100644 --- a/src/Foundation/Listeners/CalculatePromotions.php +++ b/src/Foundation/Listeners/CalculatePromotions.php @@ -6,8 +6,8 @@ use Vanilo\Adjustments\Contracts\Adjustment; use Vanilo\Adjustments\Models\AdjustmentTypeProxy; -use Vanilo\Checkout\Events\CouponAdded; -use Vanilo\Checkout\Events\CouponRemoved; +use Vanilo\Cart\Contracts\CartEvent; +use Vanilo\Checkout\Contracts\CheckoutEvent; use Vanilo\Promotion\Contracts\PromotionAction; use Vanilo\Promotion\Models\CouponProxy; @@ -15,7 +15,7 @@ class CalculatePromotions { use HasCartAndCheckout; - public function handle(CouponAdded|CouponRemoved $event): void + public function handle(CheckoutEvent|CartEvent $event): void { $this->initialize($event); @@ -35,6 +35,7 @@ public function handle(CouponAdded|CouponRemoved $event): void /** @var PromotionAction $action */ foreach ($promotion->getActions() as $action) { foreach ($action->execute($this->cartModel) as $adjustment) { + $adjustment->update(['origin' => $couponCode]); if ($this->isAppliedToOurCart($adjustment)) { $cartPromotionsTotal += $adjustment->getAmount(); } diff --git a/src/Foundation/Providers/EventServiceProvider.php b/src/Foundation/Providers/EventServiceProvider.php index a0d2cbad..d7483498 100644 --- a/src/Foundation/Providers/EventServiceProvider.php +++ b/src/Foundation/Providers/EventServiceProvider.php @@ -50,6 +50,7 @@ class EventServiceProvider extends ServiceProvider CartUpdated::class => [ CalculateShippingFees::class, CalculateTaxes::class, + CalculatePromotions::class, ], CartDeleting::class => [ DeleteCartAdjustments::class,