Конструктор фильтров и выборок - msProductsComposerSelection

Я обещал написать @Prihod обзорную статью анонсировав новые возможности компонента, так как @Prihod пилил последние версии пакета по моей инициативе. Момент настал. И не прошло трех лет после моего обещания.

Сразу начну с минуса, для меня он единственный, и очень мучительный. Название — msProductsComposerSelection — это как запомнить, написать или обсудить с коллегами. Шутка удалась. Ну я предлагаю тебе не останавливаться на достигнутом и придумать название из шести горбов). Будет весело.

А теперь по сути и существу:

После установки мы получаем на странице ресурсов класса документа msCategory дополнительную вкладку



Мы внедрили уже 10 раз данный пакет (надеюсь количество внедрений только будет увеличиваться, @Prihod, я думаю то же будет рад данному событию)) ), и круто. Почему нам нравиться данный пакет!? Попытаюсь иллюстрировать процесс: работает специалист по поисковому продвижению, тут заголовок поправил. Тут сортировку изменил на более оптимальную основываюсь на структуре каталога. А тут секции фильтры расставил в другой последовательности. Дальше следующий специалист который работает с контентом… ну и каталог улучшается. А фильтры для интернета магазина это кабздец как юзер френдли. Ну вот мы от месяца к месяцу наводим красоту и понимаем, что это бесконечный процесс.




Что тут прикольного. Это параметр up — который ищет результат подымаясь по структуре вверх по «дереву» пока не найдет. Поэтому минимальное количество действий для настройки фильтра. А так же пресеты можно копировать, что еще больше экономит время.



Выборки. Дело полезное. Кто занимается контентом, может сделать быстро выборку. К примеру хочется поисковому оптимизатору проверить кластер запросов. Открыл, завел страницу, написал метатеги, вставил текст очень удобно. Не нужно ставить задачи, а разработчикам думать как организовать это структурно.

На ОКЛИ все подкатегории сделаны с помощью выборок. По сути товар содержаться только в двух основных категориях это Паркет и Плинтус, а остальное это выборки.

Особенно в последней версии 1.0.18 добавлена возможность не только параметрами sort и where управлять, но и parents тем самым увеличив удобство и вариативность выборок.

Например: Бренд Barlinek выборка. Параметр запроса Производитель — vendor (Product) — id. И категории Паркет. А вот к примеру на странице поиск можно просто parents указать в интерфейсе и не нужно делать дополнительный шаблон или проверку на parents по какому-то критерию.




Добавлены касторные фильтры. К примеру msOptionsColor. Данные фильтры работают из коробки. Если метода фильтрации нет, то можно обратится поддержку. Я обращался, мне не отказали) В течение несколько дней вышло обновление. А еще можно это сделать самостоятельно указав метод фильтрации в системных настройках пакета msproductscomposerselection.custom_filters.




Перебежим еще на один проект и я еще кину одну идею для размышления, если фильтров много и они большие по перечню какие-то можно скрыть в аккордеоне. Причем тут нужно смотреть на каждую категорию и на каждую секцию отдельно (осмыслено)




В списке есть колонка «Свернутый» с вариантами «Да» и «Нет» ну и специальная шаблонная переменная со значением 0 и 1. Поэтому можно и этот вопрос проработать для удобства пользователя.

И хочется поделиться еще один ништяком, он мне очень нравиться.




Кто делает CMP или большие интерфейсы. Обращайте внимание на детали. Посмотрим на данный рендер. По сути мы выбираем чанк. Все видно название, описание, и даже категория. Плюс есть настройка с фильтрации по категории msCategory. Такая скрупулёзность привлекательна. Хотя такой рендер придумал @Алексей Шумаев в mvtForms2.

Короче все молодцы. Доклад закончил.
Олег Щавелев
08 сентября 2021, 04:36
modx.pro
1 529
+8
Поблагодарить автора Отправить деньги

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

Николай Савин
08 сентября 2021, 08:04
+1
Выглядит многообещающе, не знал о таком компоненте.
Олег маленькая просьба — по возможности делай картинки с увеличением. Местами сложно разглядеть детали.
Misha Bulic
09 сентября 2021, 12:44
0
Чем то похоже на seo filter если я правильно понял. Только привязывается к ресурсам а не виртуальным страницам.
Пара вопросов:
  1. Фильтры можно делать по доп полям?
  2. Без ms2filter работает?
  3. можно ли на странице товара получить ссылки на эти выборки, если этот товар там состоит?
    Олег Щавелев
    09 сентября 2021, 17:00
    +1
    Фильтры можно делать по доп полям?
    Да.

    Без ms2filter работает?
    Да. Есть сниппет msPCS, в котором есть параметр snippet. Вписываем в параметр значением сниппет, которым хотим управлять через интерфейс и все будет работать.

    можно ли на странице товара получить ссылки на эти выборки, если этот товар там состоит?
    Не совсем понял вопроса. Но наверное все таки нет.
      Дима Сайт old см. профиль
      10 сентября 2021, 12:56
      +2
      можно ли на странице товара получить ссылки на эти выборки, если этот товар там состоит?
      А вот это очень хороший вопрос на самом деле. Для перелинковки на основе параметров было бы круто придумать как это сделать.

      Чтобы можно было на странице товара собрать логический блок «Товар входит в коллекции: Выборка MSPCS1, Выборка MSPCS2».

      Если порассуждать, то нужен плагин на создание/сохранение товара, который в случае смены характеристик проходит по всем выборкам и проверят не попал ли он в неё, и если да, записывает «куда-то в хранилище» id товара + id нужной выборки. А на странице товара для получения списка выборок в которые он попал нужно делать запрос в это «хранилище», которым может быть либо отдельная таблица, либо TV-шка самого товара.

      И всё это будет работать только если на сайте нет функционала который обновляет характеристики (включаю цену, ведь может быть выборка «Товары от MM до NN рублей») мимо modx-процессоров (которые относительно медленные, поэтому такое иногда пилят).

      Если мимо процессоров функционал есть, то потребуется ещё скрипт-оптимизатор который например по крону будет проходить по всем выборкам и приводить в порядок соответствие данных. Звучит как набор костылей (aka велосипед), нагружающий базу при каждом сохранении любого товара, но «ради высокой цели» вроде должно работать.

      Мы делали нечто похожее для связи ресурсов 1 к 1, но то были сотни ресурсов (и не тормозит вообще к стати). А здесь получается связь 1 ко многим (могу ошибаться).

      Возможно можно прикрутить как-то для этого функционал связей из минишопа, к стати, но будет ли он работать для не-товаров (страницы выборок). А ещё есть мультикатегории минишопа, может их юзать для привязки товара к выборке, зависит от того как они там в базе хранятся…

      Конечно круто если бы был встроенный функционал такой.
      Может у кого-то есть идеи получше? @Олег Щавелев @Prihod
        Олег Щавелев
        10 сентября 2021, 13:28
        +1
        Я думаю, что это все правильные мысли. Но как бы лучше, разделить принципы и новации с возможности пакета.

        Мы обсуждаем принципы таксономии. И это очень круто, что мы обсуждаем данный вопрос. Но я представляю себе что товарные витрины это не каталог.

        Ответ msProductsComposerSelection нет коллекций, поэтому не как, это не сделать. Нельзя впихнуть не в пихуемое. Наверное и не должно быть. Ведь по сути msProductsComposerSelection он же передает из интерфейса параметры формирую их правильно и все. Используется для каталога и это удобно. А тут большее логики.

        Но все же по делу. Это реально нужно)

        Я думаю что данное идею PageBlocks потянет лучше. Так как есть уже есть зачатки таксономии и структурно по бекэнду он универсальнее. Там можно сделать данную логику ну и конструктор where запросов.

        Но и тут с формирования мета-тегов завязано при условии, что мы делаем выборки по критериям. Релевантность она везде.

        Ну а может @Prihod расширит функционал, он же волшебник. Хочется и автора мнение услышать.
          Misha Bulic
          26 октября 2021, 11:32
          0
          Ну я думаю надо сделать сниппет в котором надо указать например id ресурсов, или шаблон для выборки страниц где есть заполненное поле msProductsComposerSelection. И по очереди проверять соответствует ли условиям ресурс на котором вызывается сниппет. если соответствует, то выводить ссылку на выборку. При первом открытии он пробежится по ресурсам, а потом будет просто грузить из кеша. @Prihod Такое реально?
      Николай Савин
      10 сентября 2021, 15:26
      +1
      Хотел протестировать пакет — но печаль-беда пришла откуда не ждали.
      modHost почему то перестал устанавливать обновления на тестовом тарифе.
        Олег Щавелев
        10 сентября 2021, 16:25
        0
        Ты меня прям расстроил.
          Алексей Смирнов
          10 сентября 2021, 17:09
          +1
          германский хост ставьте.
          вчера вечером ставилось все на нем.
          Misha Bulic
          28 февраля 2022, 09:38
          0
          Автор, сделай такой же компонент для добавления товаров в категории. Так же выставляешь несколько условий проверяешь и нажимаешь добавить и они все в категории. Было бы очень круто, плюс делать обратные ссылки из товара в категорию можно делать.
            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
            13