Hallo,
Der aus Shopware < 5.6 bekannte Kategoriefilter wurde ja auch in Shopware 6 entfernt.
Ich versuche gerade über ein Plugin das SearchResult um eine category Aggregation und einen category Filter zu erweitern.
Ziel ist, dass der search Controller einen zusätzlichen Parameter ‚category‘ akzeptiert, um die Suchergebnisse nach Kategorien filtern zu können.
Beispiel: www.myshop.de/search?search=test&category=c22c5acc170e40f7826c012d4ae08452
Der Parameter category soll entsprechend die ID der Kategorie enthalten.
Bisher versuche ich leider erfolglos folgendes:
/**
* @return array
*/
public static function getSubscribedEvents(): array
{
return [
ProductSearchCriteriaEvent::class => 'onTest',
ProductSearchResultEvent::class => 'onTest2'
];
}
public function onTest(ProductListingCriteriaEvent $event)
{
$categoryId = $event->getRequest()->get('category');
if ($categoryId) {
$event->getCriteria()->addAggregation(
new TermsAggregation('category', 'product.categories.id')
);
}
}
public function onTest2(ProductListingResultEvent $event)
{
$event->getResult()->addCurrentFilter('category', $event->getRequest()->get('category'));
}
Die Aggregation und der Filter werden hinzugefügt, die Suchergebnisse werden aber nicht nach der Category gefiltert.
Jemand eine Idee @Shopware?
Viele Grüße
Dennis