Hallo zusammen,
in einem eigenen Controller lade ich eine Kategorie-Erlebniswelt. Im Designer sind keine Filter eingestellt erstmal, sondern nur das Produktlisting. Als Kategorie nehme ich die NavigationCategory
des aktuellen Sales-Channel und es werden in der Storefront auch alle Artikel ausgegeben.
So sieht der Code im Controller dafür aus:
$page = $this->navigationPageLoader->load($request, $salesChannelContext);
if($cmsPageId){
// lade root categoriy des aktuellen sales channel
$category = $this->container->get('category.repository')->search(new Criteria([$salesChannelContext->getSalesChannel()->getNavigationCategoryId()]), $salesChannelContext->getContext())->first();
// resolver für cms elemente
$resolverContext = new EntityResolverContext($salesChannelContext, $request, $this->categoryDefinition, $category);
// lade cms elemente
$pages = $this->cmsPageLoader->load(
$request,
$this->createCriteria($cmsPageId, $request),
$salesChannelContext,
null,
$resolverContext
);
if (!$pages->has($cmsPageId)) {
throw new PageNotFoundException($cmsPageId);
}
$page->setCmsPage($pages->get($cmsPageId));
}else{
throw new PageNotFoundException($cmsPageId);
}
Jetzt die Frage aller Fragen - wie kann ich hier Filter für das Produktlisting übergeben?
Ich habe gedacht, das geht am einfachsten, indem ich die im Request-Objekt hinzufüge:
$request->query->add([
'manufacturer' => $manufacturerId,
]);
Aber das funktionniert leider nicht; es wird komplett ignoriert
Dabei müssen die doch daraus entommen werden, wie in den Kategorien auch… was habe ich übersehen?