[sFilters] - Динамические свойства товаров для MS2

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

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

Предистория

Составив план я начал разработку примерно с марта 2015 (в то время уже существовали пакеты msOptions, была ещё в первой версии msPrice, msDiscount). Забавно, но я не знал что MS2 продолжают развивать в сторону динамических опции (уже давно заметил что схожие идеи приходят одновременно нескольким людям)… ближе к осени я нашёл в инете информацию про такой ход дела и в голову закралась мысль, что ребята обладают телепатическими способностями и сканируют мозги всех кто «логинется» в сообществе… Не смотря на активность в плане развития MS2 я решил не бросать начатое, исходя из расчёта, что выбор должен быть всегда.

Особенности

Данное решение отличается от остальных тем что это… плагин для miniShop2 значительно расширяющий его способности! Использовались только предоставленные возможности (за это особое спасибо Василию, все таки учёл много нюансов). Не было изменено ни строчки родного кода, но все таки пришлось создать запись в пространстве имен, единственная причина этого — использование лексикона, хотя и эту проблему можно было обойти. В итоге получился компонент который работает в любой версии miniShop2, в том числе ранние, не зависимо от того какие дополнения к нему установлены и были ли в нем произведены изменения программистами делавших сайт или нет.

Что планируется

На данный момент я готовлю тестовую площадку, пишу инструкции и видео по пользованию. Постепенно я буду выкладывать эти видео материалы в которых подробно будет рассказано о всех возможностях компонента, его плюсах минусах, и о хитростях, которые вы можете использовать при работе с ним.

Где взять?

Демоверсия
Ссылка на компонент в магазине

Видео №1

из которого Вы узнаете:
— как подключается плагин
— о различных типах отображения плагина (edit, short, info)
— как создаются свойства и как они наследуются
— о взаимодействии плагина с mFilter2
— и увидите тестовый пример создания товара с динамическими свойствами

Вышло длинноватым — 46 минут, но короче у меня не получилось сделать.

Видео №2 [UPDATE 2015.12.23]

из которого Вы узнаете:
— о том что свойства теперь не обязательно привязывать к контекстам
— про работу со свойством типа «Диапазон»
— обо всех системных настройках плагина
— и еще про то как можно легко управлять ценой товара меняя значения его свойств

Получилось гораздо короче предыдущего… всего 44 минуты )

Также я открыл доступ на сайт в клиентскую часть, где Вы можете посмотреть работу фильтра и товаров.

Видео №3 [UPDATE 2016.01.25]

из которого Вы узнаете:

— как добавляются скидки, к товарам, как они отображаются у клиента и как их можно настривать

c 7:40
— как управлять скидками у конкретного свойства и как они комбинируются с общими скидками

c 13:45
— как изменить внешний вид стандартного свойства через чанки

c 41:55
— и увидите как с помощью этого можно превратить свойство «переключатель» в «image picker», превратив ваш интернет магазин в подобие aliexpress, сохранив управление ценой товара.

c 43:23
— также про то, как выводить доп. описание к свойствам товара, через добавление «подсказок».

[UPDATE 2016.04.04]

В проекте произошли изменения:
  • теперь он называется msExtraFields
  • он наконец то появился в магазине под версией 0.2.6-beta
  • переписана документация, но пока не сделан пул реквест, ссылки на нее нет
  • сейчас прорабатывается новый доступ на демо сайт чтобы можно было производить любые изменения
  • появился отдельный демонстрационный сайт (ссылка выше), старый более не доступен
Степан Прищепенко
16 декабря 2015, 05:46
modx.pro
11
6 057
+15
Поблагодарить автора Отправить деньги

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

Виталий Серый
16 декабря 2015, 19:38
0
Во-первых, Браво!
Интересно продолжение, а там и вопросы может появятся.
Дмитрий Аюпов
Дмитрий Аюпов
20 декабря 2015, 18:48
0
Нужно чтобы при выборе категории в фильтре менялся сам фильтр.
Например при выборе «Квартиры» — появлялся фильтр по площади, этажности итд,
а при выборе «Телефоны» — появлялся фильтр по емкости аккумулятора, цвету итд.
    Степан Прищепенко
    20 декабря 2015, 22:36
    0
    это есть в планах, сейчас зависимости фильтров работают в админке, но еще не проработаны в клиентской части, т.е. нужно доделать js у клиента. Покажу в будущих видео, да и скоро сами сможете «потыкать».
    Степан Прищепенко
    23 декабря 2015, 10:18
    0
    Ну вот и вышло второе видео, прошу прощения за задержку, ссылку на него Вы можете посмотреть в тексте блога выше. Также я открыл сайт на доступ и вы можете уже немножко «пощупать» продукт.
      Роман Воропаев (Volk)
      23 декабря 2015, 15:36
      0
      Это как раз та вещь, которой так не хватало минишопу! Респект, а то всегда приходилось выкручиваться своими силами.
      В идеале к этому плагину бы еще сделать плагин добавления товаров из фронтенда (такой уже есть, но его я не пробовал еще) плюсом с возможностью заполнять свойства товара. Такое было бы очень востребовано и упростило бы разработку сайтов в виде досок объявлений и каталогов.
        Степан Прищепенко
        23 декабря 2015, 18:11
        +1
        Спасибо, за комент. Об этом я тоже думал и если компонент будет востребован, то руки дойдут и до этой фишки.
          Klike
          18 января 2016, 09:04
          0
          Будет ли продолжение темы?)
            Степан Прищепенко
            18 января 2016, 09:09
            0
            Да конечно, праздники сильно выбели из колеи, сейчас заканчиваю с транспортным пакетом, из-за того что приходится придерживаться концепции плагина ms2, установщик получился не стандартный, но работает корректно. Скоро выложу новое видео и уже готов демонстрационный доступ к админке.
              Klike
              18 января 2016, 09:10
              0
              Хорошо, Спасибо!
        Степан Прищепенко
        25 января 2016, 18:12
        +1
        Свершилось чудо! Гы, я добавил 3-е видео, в котором рассказывается: о скидках, о том как можно менять внешний вид свойств товаров в различных типах отображения, и немного о мелочах. Также я дал доступ в админку, не серчайте на то что не сможете ничего сохранить (тот кто сможет найти лазейку прошу сообщить об этом в личку), но по крайней мере вы сможете потыкать теже кнопочки, что нажимаю я в своих роликах ). Хочу отметить, что готов транспортный пакет, и я могу дать его потестить «ЖЕЛАЮЩЕМУ», так что если есть желание провести тестирование на чистом И уже работающем проекте, пишите, заранее сообщаю что от Вас потребуется хорошенько погонять его, поискать ошибки и косяки, возможно пройтись по тестовой анкете, и в итоге вынести свой вердикт в виде отзыва, который должен быть полным (минимум 200 слов), адекватным и конструктивным. Всем, кто ждал и надеялся отдельно: СПАСИБО ЗА ТЕРПЕНИЕ!
          Максим
          26 января 2016, 08:29
          0
          Здравствуйте. Скажите будет ли зависимость фильтров? не в админке. К примеру для поиска автомобилей или квартир в конкретном районе очень удобно
            Степан Прищепенко
            26 января 2016, 09:14
            0
            Такие правила (в том числе и сложные) можно задавать через админку (а как иначе?) в категории товара, я хотел это показать в 4-м видео, НО клиентской части пока не существует. Возможно после реализации их логично будет прописать еще и в общих настройках, чтобы действовали на все категории.
            Евгений
            03 апреля 2016, 06:28
            0
            Почему в магазин не выкладываете?
          Степан Прищепенко
          04 апреля 2016, 18:42
          0
          И снова Здравствуйте! Компонент появился в магазине и в новой ветке форума подробности можно почитать в шапке.
            Сергей
            29 ноября 2016, 14:04
            0
            Добрый день!
            Не как не пойму, это можно использовать без магазина, только в связке mSearch2?
            И самый главный вопрос, этот компонент избавляет от создания tv и добавления каждого в настройки mSearch2?
              Степан Прищепенко
              29 ноября 2016, 16:01
              0
              Привет, нет без ms2 не получиться, хотя переделать возможно. Да нужда создавать tv отпадает, свойства не нужно прописывать при запуске сниппета, но для того чтобы они отобразились, нужно прописать общие правила. Я не знаю как вы планируете использовать его, но без ms2 не получиться его установить и тем более запустить.
              Fedor
              24 февраля 2017, 14:41
              0
              Здравствуйте. Скажите пожалуйста можно с помощью данного модуля реализовать зависимость свойств. например есть товар в трех цветах (синий, белый, красный), но в красном размере есть только 1 размер(допустим S), а в белом и синем 3 размера(S L M)? т.е. при выборе определенного цвета, должны показываться разные размеры.
                Stan Ezersky
                24 февраля 2017, 21:17
                0
                Это с помощью одного лишь miniShop2 реализовывается, вот пример
                  Степан Прищепенко
                  26 февраля 2017, 19:01
                  0
                  Привет, ответил ранее на почту. Посмотрел на пример от Stan Ezersky, да забавно в этом случае нужно дублировать товары… Вощем если подходит почему бы и нет.
                    Fedor
                    26 февраля 2017, 19:13
                    0
                    Спасибо. Буду разбираться.
                      Fedor
                      26 февраля 2017, 19:38
                      0
                      Получается надо сделать связь товаров я так понял, а как потом вывести свойства другого товара, а точнее все свойства.?
                        Степан Прищепенко
                        26 февраля 2017, 21:39
                        0
                        для чего это? я так понял ты вытаскиваешь связные товары списком, при клике на товар из списка у тебя рпоисходит переход, далее не странице товара ты или как обычно выводишь св-ва ms2 или выводишь msextrafields (другой способ соответственно).
                          Alex
                          20 мая 2017, 07:31
                          0
                          Здравствуйте. Судя из ответа Fedor с помощью приложения msExtraFields не выйдет сделать зависимые опции, верно я понимаю?
                            Степан Прищепенко
                            21 мая 2017, 20:56
                            0
                            Привет, можно, просто мне не когда этим заниматься, так что есть есть желание можно сделать самостоятельно.
                    Виталий
                    29 ноября 2017, 21:54
                    0
                    Степан, привет! пока посмотрел только второе видео, но не нашел для себя ответа. Меня интересует диапазон. Из видео я понял что в товаре можно указать только одно значение? т.е. у меня есть необходимость в товарах указывать диапазон значений, например, цена(или любое ддругое поле) от 13 до 18 рублей, в другом товаре от 10 до 17 и т.д., а потом фильтровать в каталоге, выбрав, к примеру, диапазон от 13 до 15. Соответственно, оба этих товара должны быть показаны. это можно реализовать с msExtraFields?
                      Степан Прищепенко
                      30 ноября 2017, 00:22
                      0
                      Привет, погляди в демке по этой ссылке, можно в добавить свойство с типом диапазон, при редактировании товара это свойство позволяет выбрать только ОДНО значение, в одном товаре этих свойств может быть сколько угодно. А фильтре эти свойства отображаются в виде диапазона. Например есть некий диапазон 1-100, в свойствах товара его значение == 51, у клиента на странице товара (ну или где выведешь) отображается как «название свойства: 51». В фильтре у клиента в виде диапазона 1-100. Естественно если родительская группа содержит много свойств с типом диапазон они все учитываются при поиске товаров.
                        Виталий
                        30 ноября 2017, 22:10
                        0
                        Да, спасибо, то что нужно! нашел еще доступ к админке, все попробовал.) в ближайшее время приобрету
                      Юрий
                      Юрий
                      13 марта 2018, 15:49
                      0
                      Добрый день! Компонент хороший, но если core вынесен за пределы публичного каталога, то при установке рушит сайт напрочь. Как его ставить в таком случае — не знаю. Вопрос к автору.
                        Степан Прищепенко
                        13 марта 2018, 20:41
                        0
                        Юрий, спасибо за оценку! На днях выйдет свежая версия с кучей исправлений и интересных дополнений, прошу напишите через тех поддержку чтобы создать тикет, а я пока проверю у себя данную ситуацию.
                          Степан Прищепенко
                          14 марта 2018, 18:13
                          0
                          Проверил, внес исправления, с версии 20 все работает, выложу совсем скоро, т.к. есть и др исправления, которые попадут в релиз. Отмечу, что в такой ситуации если не будет источника файлов с core, пакеты которые устанавливают свои сниппеты и плагины в качестве статичных файлов… будут успешно созданы в корне сайта в папке core, а не там где лежит истинная папка core. Т.ч. следим за мусором в системе. Актуально для всех версий modx вплоть до 2.6.1-pl.
                          Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                          32