<?php declare(strict_types=1);
namespace Nxs\NxsDeliveryTimesDisplay\Subscriber;
use Shopware\Core\Content\Product\ProductEntity;
use Shopware\Core\System\SalesChannel\Entity\SalesChannelEntityLoadedEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class ProductSubscriber implements EventSubscriberInterface
{
/**
* @return array
*/
public static function getSubscribedEvents(): array
{
return [
'sales_channel.product.loaded' => 'onProductLoaded'
];
}
/**
* @param SalesChannelEntityLoadedEvent $event
*/
public function onProductLoaded(SalesChannelEntityLoadedEvent $event): void
{
/** @var ProductEntity $product */
foreach ($event->getEntities() as $product){
$nxsAdditionalDeliveryTime = isset($product->getCustomFields()['nxs_additional_delivery_time']) ? $product->getCustomFields()['nxs_additional_delivery_time'] : null;
if (isset($nxsAdditionalDeliveryTime)){
$event->getContext()->assign(['nxs_additional_delivery_time' => $nxsAdditionalDeliveryTime]);
}
}
}
}