<?php
namespace TomRockets\Subscriber;
use Shopware\Core\Framework\Uuid\Uuid;
use Shopware\Core\System\SystemConfig\SystemConfigService;
use Shopware\Storefront\Page\Product\ProductPageLoadedEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class ProductDetailSubscriber implements EventSubscriberInterface
{
/** @var SystemConfigService */
private $config;
public function __construct(SystemConfigService $config)
{
$this->config = $config;
}
/**
* @inheritDoc
*/
public static function getSubscribedEvents()
{
return [
ProductPageLoadedEvent::class => "productLoaded"
];
}
public function productLoaded(ProductPageLoadedEvent $event){
$product = $event->getPage()->getProduct();
if(!$product->getManufacturer() && $this->config->get("TomRockets.config.contactCategory")){
return;
}
$manufacturerCategoryId = Uuid::fromStringToHex($product->getManufacturer()->getName());
$contactCategory = $this->config->get("TomRockets.config.contactCategory");
$event->getPage()->assign([
'productManufacturerCategory' => $manufacturerCategoryId,
'contactCategory' => $contactCategory
]);
}
}