Фильтр товаров/ресурсов

Всем доброго дня!

При создании каталога дошел до момента, где нужно делать фильтры. Почитал про дополнения (mFilter, Tag Manager) и пока что сложно это увязать с тем, что есть у меня. В связи с этим хочу посоветоваться, как правильно двигаться дальше.



Вот так выглядят фильтры для категории «Элементы питания» и брэнда «Camelion» в частности:



В верстке каждый элемент фильтра выводится таким образом (к примеру, элемент «Все»:

<div class="filter-subcategory-container">
	<input type="checkbox" id="all" name="all">
	<label for="all">Все</label>
</div>
При нажатии на фильтр «Все» под ним должны выводиться все товары (здесь из категории «Camelion»). При нажатии на другие фильтры, выводятся соответствующие товары. Еще в идеале хотелось бы, чтобы можно было фильтры комбинировать. Допустим, нажимаю на «Алкалиновые» и «Солевые» и у меня выводятся соответственно все алкалиновые и солевые батарейки. Еще, как видно из скриншота, есть фильтр по цене.

Осложняется все тем, что в админке у меня следующая структура:



Т.е. в категории «Элементы питания» у меня идут подкатегории с брэндами (Atc, Camelion и т.д.). В категории с брэндом идут подкатегории, по которым я хочу осуществлять фильтрацию (Алкалиновые, Солевые, Аккумуляторы и т.д.).

Как видно из скриншота, я сделал подкатегории, а не стал делать для товара TV-поле.

Поэтому хотелось бы уточнить следующие вопросы:

1) Возможно ли с помощью какого-нибудь дополнения сделать фильтр как я хочу с этой структурой, которая у меня есть сейчас или мне нужно убрать эти подкатегории и создать TV-поле, куда уже будет добавляться нужная метка (Алкалиновые или Солевые и т.д.) Из документации к mFilter и Tag Manager я понял, что сортировка идет по TV-полям, но хотелось бы услышить ваше мнение — может есть Extra, которое мне подойдет. Сам я похожее не смог найти.

Т.е. получится у меня структура «Элементы питания > Брэнд > Товар». А у самого товара будет TV-поле, в котором я уже буду присваивать ему нужный мне параметр (допустим «Алкалиновые»).

2) Если структуру все-таки нужно менять и делать дополнительное TV-поле, то хотелось бы еще спросить про совместимость.

На данный момент у меня меню, товары и пагинация — все выводится через PDO Tools (Resources, Page, Menu). Погуглив, я так и не нашел, совместимо ли PDO Tools с mFilter или Tag Manager. Посоветуйте extras, которые друг с другом могут работать в комплексе — допустим, PDO Tools + Minishop2 + (mSearch + mFilter). В идеале конечно хотелось бы оставить PDO Tools и связать с нужными мне компонентами, т.к. PDO Tools меня устраивает — все отлично работает. Видел, что у Minishop есть сниппет msProducts. В документации к PDO Page есть параметр &element, где я мог бы указать msProducts, но еще не тестировал на совместимость.

Вроде бы все описал. Буду рад любой помощи. Заранее спасибо!
Сергей
29 сентября 2015, 13:51
modx.pro
4 900
0

Комментарии: 7

Stan Ezersky
29 сентября 2015, 16:58
+1
я так и не нашел, совместимо ли PDO Tools с mFilter или Tag Manager.
tagManager идеально работает только с getProducts. Для miniShop есть свои решения по фильтрации
    Василий Наумкин
    29 сентября 2015, 17:20
    +1
    Лично я без особой необходимости ТВ стараюсь не использовать. Тем более, когда структура сайта сама по себе может быть фильтром.

    Естественно, mFilter2 умеет работать с категориями и другими свойствам ресурсов. Вот здесь, например, трудится его старая версия — mamaboutique.ru/catalog/dlya-kormyashhix/, можно покликать.

    ТВ параметров там, если я ничего не путаю, нет вообще. Всё через свойства товаров miniShop2 и собственный класс фильтрации.
      Евгений
      09 сентября 2017, 10:54
      0
      Подскажите, как можно вывести (без mFilter2) все товары одного производителя? Логика подсказывает, что это минишоп должен это легко делать но примера нигде не найду
        Володя
        09 сентября 2017, 10:58
        1
        +2
        логика подсказывает что это есть в доках. И о чудо
        docs.modx.pro/components/minishop2/snippets/msproducts
        Вывод товаров фирмы Sony:
        
        [[!pdoPage?
            &element=`msProducts`
            &parents=`0`
            &where=`{"Vendor.name":"Sony"}`
        ]]
        [[!+page.nav]]
          Евгений
          09 сентября 2017, 16:00
          0
          Где были мои глаза! Я эти доки уже раз 5 кажется прочитал, спасибо!!!
            Сергей
            Сергей
            10 сентября 2017, 13:11
            -2
            И о чудо
            )))… плюсанул…
          Vladimir
          01 октября 2023, 14:43
          0
          Всем доброго!
          Не подскажите?:
          Есть такой вывод меню категорий
          Категории

          [[pdoMenu?
          &parents=`[[++catalogid]]`
          &level=`3`
          &showHidden=`1`
          &where=`{«template»:14}`
          ]]

          Как сделать, что бы не выводились на странице (например Caterpillar) другие категории (зачёркнуты на скриншоте)? В общем нажал на Caterpillar — скрылись из меню Case IH и Andoria, нажал на Case IH — скрылись Caterpillar и Andoria.

          На странице при нажатии категории (Caterpillar, например) выводится товары именно из категории Catepillar и вложенных подкатегорий, понимаю, что нужно фильтровать по контексту (товарам) но не нахожу как это сделать
            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
            7