Ich implementiere mehrere Kategoriefilter für die geschichtete Navigation. Ich erhalte das gewünschte Ergebnis, aber die Größe der Sammlung stimmt nicht mit der Größe der Sammlung der übergeordneten Kategorien überein.
Gibt es eine andere Möglichkeit, diese Funktionalität zu implementieren.
Ich habe den folgenden Code geändert:
public function apply(\Magento\Framework\App\RequestInterface $request)
{
$categoryId = $request->getParam($this->_requestVar) ?: $request->getParam('id');
if (empty($categoryId)) {
return $this;
}
$this->dataProvider->setCategoryId($categoryId);
$category = $this->dataProvider->getCategory();
**$this->getLayer()->getProductCollection()->addCategoryFilter($category);**
if ($request->getParam('id') != $category->getId() && $this->dataProvider->isValid()) {
$this->getLayer()->getState()->addFilter($this->_createItem($category->getName(), $categoryId));
}
return $this;
}
ersetzte die addCategoryFilter($category)
mitaddCategoriesFilter('eq' => $categoriesArray);
Aber da die geschichtete Navigationsanzahl von einem anderen Ort stammt und nicht von der Produktkollektion.
würde gerne wissen woher. Und wie könnte ich dort mehrere Kategoriefilter anwenden?
magento2
category
layered-navigation
multiselect-attribute
Pankaj Bhope
quelle
quelle
Antworten:
Bitte werfen Sie einen Blick auf die Recherchen, die ich in Bezug auf diese und die endgültige Lösung (meine Antwort auf die Frage) hier durchgeführt habe: Magento 2.1.6 Problem mit der Seitenanzahl und der Anzahl der Datensätze beim programmgesteuerten Hinzufügen von Filtern mithilfe verschiedener Methoden
quelle
So implementieren Sie Filter für mehrere Kategorien in Magento 2
quelle