custom/plugins/NewsletterSendinblue/src/Subscriber/CartOrderSubscriber.php line 35

Open in your IDE?
  1. <?php
  2. namespace NewsletterSendinblue\Subscriber;
  3. use NewsletterSendinblue\Service\Cart\CartEventProducer;
  4. use NewsletterSendinblue\Service\ConfigService;
  5. use Shopware\Core\Checkout\Cart\Event\CheckoutOrderPlacedEvent;
  6. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  7. class CartOrderSubscriber implements EventSubscriberInterface
  8. {    
  9.     /**
  10.      * @var ConfigService
  11.     */
  12.     private $configService;
  13.     /**
  14.      * @var CartEventProducer
  15.     */
  16.     private $cartEventProducer;
  17.     public function __construct(ConfigService $configServiceCartEventProducer $cartEventProducer)
  18.     {
  19.         $this->configService $configService;
  20.         $this->cartEventProducer $cartEventProducer;
  21.     }
  22.     public static function getSubscribedEvents(): array
  23.     {
  24.         return [
  25.             CheckoutOrderPlacedEvent::class => 'onOrderPlaced',
  26.         ];
  27.     }
  28.     public function onOrderPlaced(CheckoutOrderPlacedEvent $event): void
  29.     {
  30.         $this->configService->setSalesChannelId($event->getSalesChannelId());
  31.         if ($this->configService->isAutoSyncEnabled()) {
  32.             $this->cartEventProducer->createTransactionalOrder(
  33.                 $event->getOrder(), $event->getSalesChannelId()
  34.             );
  35.         }
  36.     }
  37. }