custom/plugins/AcrisProductVoucherCodeCS/src/Storefront/Subscriber/StorefrontCartSubscriber.php line 27

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace Acris\ProductVoucherCode\Storefront\Subscriber;
  3. use Acris\ProductVoucherCode\Components\Service\ProductVoucherCodeService;
  4. use Shopware\Core\Checkout\Cart\Event\BeforeLineItemRemovedEvent;
  5. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  6. class StorefrontCartSubscriber implements EventSubscriberInterface
  7. {
  8.     private ProductVoucherCodeService $productVoucherCodeService;
  9.     public function __construct(ProductVoucherCodeService $productVoucherCodeService)
  10.     {
  11.         $this->productVoucherCodeService $productVoucherCodeService;
  12.     }
  13.     public static function getSubscribedEvents(): array
  14.     {
  15.         return [
  16.             BeforeLineItemRemovedEvent::class => [
  17.                 ['onLineItemRemoved'200],
  18.             ]
  19.         ];
  20.     }
  21.     public function onLineItemRemoved(BeforeLineItemRemovedEvent $event): void
  22.     {
  23.         $this->productVoucherCodeService->reduceQuantity($event->getCart(), $event->getLineItem(), $event->getSalesChannelContext());
  24.         $this->productVoucherCodeService->changePromotionIds($event->getCart());
  25.     }
  26. }