<?php
namespace CioProductDownload\Subscriber;
use CioProductDownload\Service\ThumbnailService;
use Shopware\Core\Content\Product\ProductEvents;
use Shopware\Core\Framework\DataAbstractionLayer\Event\EntityWrittenEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class CreateThumbnailSubscriber implements EventSubscriberInterface
{
private ThumbnailService $thumbnailService;
public function __construct(ThumbnailService $thumbnailService)
{
$this->thumbnailService = $thumbnailService;
}
public static function getSubscribedEvents(): array
{
return [
ProductEvents::PRODUCT_WRITTEN_EVENT => 'onProductWritten'
];
}
public function onProductWritten(EntityWrittenEvent $event)
{
if ($event->getEntityName() == 'product') {
if ($event->getIds()) {
if (count($event->getPayloads())) {
if (count($event->getPayloads()[0])) {
foreach ($event->getIds() as $productId) {
$this->thumbnailService->createThumbnail($productId, $event->getContext());
}
}
}
}
}
}
}