Як реалізувати фільтр декількох категорій у багатошаровій навігації Magento


19

Я впроваджую фільтри кількох категорій для багатошарової навігації. Я отримую результат відповідно до моєї вимоги, але розмір колекції стає неправильним, залишається таким же, як розмір колекції батьківських категорій.

Чи є інший спосіб реалізувати цю функціональність.

Я змінив наступний код:

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;
    }

замінило addCategoryFilter($category)зaddCategoriesFilter('eq' => $categoriesArray);

Але так як кількість шаруваної навігації відбувається десь з іншого місця, а не з колекції продуктів.

хотів би знати звідки. І як я можу застосувати там фільтри кількох категорій?


1
Не могли б ви поділитися кодом? за яким файлом ви фільтрували колекцію?
Codrain Technolabs Pvt Ltd

1
додали код, будь ласка, подивіться
Pankaj Bhope

1
Чи можете ви також вказати ім’я або шлях файлу?
Codrain Technolabs Pvt Ltd

1
Назва файлу: Category.php Шлях: root_dir / vendor / magento / module-каталог-search / Model / Layer / Filter / Category.php
Pankaj Bhope

Відповіді:



Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.