<?php
namespace ProxaOrderManagement\Subscribers;
use ProxaOrderManagement\Services\Config\ConfigService;
use ProxaOrderManagement\Struct\Order\Warehouse\OrderWarehouseStruct;
use ProxaOrderManagement\Struct\Struct;
use Shopware\Storefront\Page\Checkout\Confirm\CheckoutConfirmPageLoadedEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class CheckoutSubscriber implements EventSubscriberInterface
{
/**
* @var ConfigService
*/
private ConfigService $configService;
/**
* @param ConfigService $configService
*/
public function __construct(
ConfigService $configService
)
{
$this->configService = $configService;
}
/**
* @return string[]
*/
public static function getSubscribedEvents(): array
{
return [
CheckoutConfirmPageLoadedEvent::class => 'onCheckoutConfirmPageLoadedEvent'
];
}
/**
* @param CheckoutConfirmPageLoadedEvent $event
* @return void
*/
public function onCheckoutConfirmPageLoadedEvent(CheckoutConfirmPageLoadedEvent $event)
{
$page = $event->getPage();
$shippingMethods = $page->getShippingMethods();
foreach ($shippingMethods as $id => $methodEntity) {
if (in_array($id, $this->configService->getClickAndCollect())) {
$methodEntity->assign(['warehouseSelect' => Struct::WAREHOUSE]);
}
}
}
}