custom/plugins/MyPaShopware/src/Subscriber/CheckoutConfirmPageSubscriber.php line 53

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace MyPa\Shopware\Subscriber;
  3. use MyPa\Shopware\Service\Config\ConfigGenerator;
  4. use MyPa\Shopware\Service\Config\ScriptService;
  5. use Shopware\Core\Framework\Struct\ArrayStruct;
  6. use Shopware\Core\System\SystemConfig\SystemConfigService;
  7. use Shopware\Storefront\Page\Checkout\Confirm\CheckoutConfirmPageLoadedEvent;
  8. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  9. class CheckoutConfirmPageSubscriber implements EventSubscriberInterface
  10. {
  11.     /**
  12.      * @var ConfigGenerator
  13.      */
  14.     private $configGenerator;
  15.     /**
  16.      * @var ScriptService
  17.      */
  18.     private ScriptService $scriptService;
  19.     /**
  20.      * @param  ConfigGenerator $configGenerator
  21.      * @param  ScriptService   $scriptService
  22.      */
  23.     public function __construct(ConfigGenerator $configGeneratorScriptService $scriptService)
  24.     {
  25.         $this->configGenerator $configGenerator;
  26.         $this->scriptService   $scriptService;
  27.     }
  28.     /**
  29.      * Returns an array of event names this subscriber wants to listen to.
  30.      *
  31.      * @return array
  32.      */
  33.     public static function getSubscribedEvents(): array
  34.     {
  35.         return [
  36.             CheckoutConfirmPageLoadedEvent::class => [
  37.                 ['addMyParcelDataToPage'500],
  38.             ],
  39.         ];
  40.     }
  41.     /**
  42.      * Adds an array of MyParcel shipping method ids to the checkout page.
  43.      *
  44.      * @param  CheckoutConfirmPageLoadedEvent $event
  45.      */
  46.     public function addMyParcelDataToPage(CheckoutConfirmPageLoadedEvent $event): void
  47.     {
  48.         //        Add config data
  49.         $event->getPage()
  50.             ->addExtension(
  51.                 'myparcel',
  52.                 new ArrayStruct([
  53.                     'config' => $this->configGenerator->generateConfigForPackage(
  54.                         $event->getSalesChannelContext(),
  55.                         $event->getRequest()
  56.                             ->getLocale()
  57.                     ),
  58.                     'deliveryOptionsCdnUrl' => $this->scriptService->getDeliveryOptionsCdnUrl(),
  59.                 ])
  60.             );
  61.     }
  62. }