ProductPageLoadedEventSubscriber: $event->getPage->getProduct(): getCustomFields retourniert NULL

Ich möchte gerne auf der Produktdetailseite einige Zusatzinformationen verarbeiten. Dazu habe ich ein “Custom Field” beim Produkt angelegt.

Nun verwende ich einen Subscriber um diese Custom Fields abzurufen. Der Subscriber funktioniert und wird auch aufgerufen. Auch die Product-Entity kann ich vom Event bzw. von der Page-Entity erhalten. Nur leider geben die bei der Product-Entity vorhandenen Methoden getCustomFields und getTranslations immer NULL zurück:

class ProductPageLoadedEventSubscriber implements EventSubscriberInterface
{
    public static function getSubscribedEvents(): array
    {
        return [
            ProductPageLoadedEvent::class => [
                ['onProductPageLoaded', 9999]
            ]
        ];
    }

    public function onProductPageLoaded(ProductPageLoadedEvent $event): void
    {
        $page = $event->getPage();
        $product = $page->getProduct();
        $customFields = $product->getCustomFields(); # => NULL
        $translations = $product->getTranslations(); # => NULL
    }
}

Testweise habe ich von $product ein “var_dump” gemacht. Das zeigt mir dass die Custom Fields und auch Translations als protected Attribute vorhanden sind. Nur leider kann ich aber nicht darauf zugreifen da die beiden Methoden immer NULL zurück geben.

Kann mir jemand weiterhelfen?

Hey,

die custom fields sind nicht vererbt. Sind die denn in deiner aktiven Sprache gepflegt?

2 Likes

Das wars, tausend Dank!