Ich habe mir die beiden Events angeschaut und sie wie folgt in meinem Subscriber implementiert:
// use ...
use Shopware\Core\Content\Product\Events\ProductProcessCriteriaEvent;
use Shopware\Core\Content\Product\Events\ProductLoadedEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class MEINSubscriber implements EventSubscriberInterface
{
public static function getSubscribedEvents(): array
{
return [
ProductProcessCriteriaEvent::class => 'onProductProcessCriteria',
ProductLoadedEvent::class => 'onStorefrontProductLoaded'
];
}
public function onStorefrontProductLoaded(ProductLoadedEvent $event): void
{
foreach ($event->getProducts() as $product) {
$product->addExtension("additionalData", $productData());
}
}
//...
}
Leider werden die Daten auf der Startseite nicht geladen. Was mache ich falsch?
Beim Cross-Selling habe ich das ganze so umgesetzt, dort funktioniert es:
// use ...
use Shopware\Core\Content\Product\Events\ProductCrossSellingIdsCriteriaEvent;
class MEINSubscriber implements EventSubscriberInterface
{
public static function getSubscribedEvents(): array
{
return [
ProductCrossSellingIdsCriteriaEvent::class => 'onCrossSellingProductListCriteria'
];
}
public function onCrossSellingProductListCriteria(ProductCrossSellingIdsCriteriaEvent $event): void
{
$criteria = $event->getCriteria();
$criteria->addAssociation('moreData');
}
//...
}
Hat jemand eine Idee?