[msExtraFields] 0.2.6-beta Гибкие свойства товаров

В продолжении темы sFilters, компонент вышел в свет, а точнее в магазин, под новым именем.

Что умеет?

Дает возможность гибко управлять свойствами товаров (в не зависимости от того прописаны ли какие-либо дополнительные классы обработчики в настройках miniShop2), их ценами, скидками по товару и по отдельным его свойствам, группировать свойства, привязывать их к различным контекстам, что позволяет управлять одновременно несколькими магазинами из одной админки, информировать клиента об изменении цены. Работает «из коробки» с компонентом mSearch2 и многое другое. Основная идея этого проекта: свести к минимуму дублирование одинаковых товаров характеристики которых не значительно отличаются друг от друга. Работает как на старых версиях modx (2.2) так и на последней, также на php 5.3 — 5.6 стабильно.


Где поглядеть?

Почти все можно увидеть на демонстрационном сайте.
Любознательным сразу сюда: вход в админку:
Логин: demo
Пароль: demo12345

Где скачать?

Ссылка на магазин: msExtraFields

Возможности

динамическое создание свойств любого вида не зависимо от категории
товара (задается в настройках плагина)
работа в нескольких контекстах без создания дубликатов свойств товаров
привязка свойств к категориям товаров
иерархическое наследование свойств от категорий
автоматическое заполнение свойств товаров при создании товара, унаследованных от родителей (категорий)
копирование свойств товара/категории при копировании документа
сортировка свойств через перетаскивание в общих настройках, категориях и товарах
различное отображение свойств в зависимости от потребностей (информативный вид, короткий, режим изменения значения — редактирования)
возможность менять внешний вид и поведение каждого свойства
управлять внешним видом и характеристиками одного и того-же свойства в
каждой категории по отдельности
управлять ценой товара в зависимости от выбранного свойства
включение/выключение добавления скидок к товарам
управление скидками у каждого свойства товара отдельно и в общем у товара
при изменении количества выбора товара, перед добавлением его в корзину, происходит
перерасчет итоговой цены, а также в момент добавления, в результате цена меняется
для ранее добавленных товаров
перерасчет цены при изменении кол-ва товара на странице формировании заказа
группировка свойств в админке и при выводе у клиента в тег fieldset с выводом имени группы
добавление дополнительного описание к свойствам товаров
добавление и вывод у клиента информации о скидках без перезагрузки страницы
задание отдельных артикулов к каждому дополнительному свойства товара / категории
управление количеством товара по тому или иному свойству (например, синих футболок
на складе 20, красных 10, оба этих свойства прописаны у одного единственного документа)
доступ к компоненту и его работа регулируется правилами указанных в политике доступа miniShop2
гибкое управление таблицами, положения полей можно запоминать в кукисах браузера
сохранение всех свойств товаров в истории заказов
можно использовать эти свойства в качестве критериев поиска компонента mSearch2
гибкое управление этими свойствами в качестве критериев mSearch2 при открытии
клиентом различных категорий, через сниппет mFilter2.

* гибкое управление таблицами, положения полей можно запоминать в кукисах браузера
* **сохранение всех свойств товаров в истории заказов**
* можно использовать эти свойства в качестве критериев поиска компонента mSearch2
* гибкое управление этими свойствами в качестве критериев mSearch2 при открытии
клиентом различных категорий, через сниппет mFilter2.

Внешний вид





Степан Прищепенко
04 апреля 2016, 15:38
modx.pro
7
5 295
+7
Поблагодарить автора Отправить деньги

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

Лев Вербицкий
04 апреля 2016, 22:56
0
Демо-сайт фронтенд почему то не пашет. Зашел через админку.
Евгений Шеронов
05 апреля 2016, 11:21
0
Умеет ли компонент назначать атрибут disabled инпутам, чтобы не было: «Подходящих результатов не найдено.»?

P.S. а главную нужно починить как можно скорее, а то многие так и не увидят всех возможностей компонента.
    Степан Прищепенко
    05 апреля 2016, 17:39
    0
    за это в mfilter отвечает метод setSuggestions от mSearch2, на данный момент он работает не так как мне нужно, вообще если его включить то поиск тормозить начинает — не рекомендую его использовать, хотя не копался в начинке mSearch2 последней версии, возможно сейчас есть подходящие вызовы и ответы для их использования. С другой стороны, можно написать обработчик, который при отсутствии результатов будет добавлять disabled вместо setSuggestions, это не сложно, но на данный момент такого нет. С сайтом разбираюсь, скоро починю.
      Евгений Шеронов
      05 апреля 2016, 21:31
      0
      Просто это есть из коробки в mSearch2 и работает быстро, хотелось бы и здесь)

      Это одна из самых важных функций в юзабилити ИМ, по моему мнению.
      На демо это ещё не бросается в глаза, так как мало товаров и все опции в выпадающих списках. А если это будет интернет-магазин телефонов со всеми опциями в списках, то будет очень и очень не удобно пользователям сталкиваться с тем, что постоянно нет результатов)

      А так, проделана огромная работа! Спасибо! Скоро обязательно пригодится этот компонент)
Лев Вербицкий
05 апреля 2016, 18:39
0
Пока непонятно, за что вы хотите 2000… Я зашел в админку, там все залочено, потыкать ничего нельзя, добавить опцию самостоятельно нельзя, изменить существующие тоже. Я увидел только страшные таблицы в гриде товаров и все. Ну то есть я вижу что можно вроде бы добавить какие то опции к товарам, но попробовать самостоятельно возможности нет.
А еще я заметил тормоза на странице каталога — в разделе телефоны при всего-лишь 2х товарах.
total time: 1.6804 s
query time: 0.0261 s
queries: 213
И оно еще не кэшируется судя по всему?
    Степан Прищепенко
    05 апреля 2016, 19:28
    0
    Да действительно кеш выключен и по тексту написана причина этого, насчет залочено, также писал что работаю над этим и скоро дам полный доступ. За что 2000… за труд )
      Лев Вербицкий
      05 апреля 2016, 21:34
      0
      Еще раз прочитал текст, причины выключенного кеша не нашел, если не сложно, поясните еще разок. Труд это конечно хорошо, но этого мало. Я пока не готов выложить 2000 за этот компонент)
        Степан Прищепенко
        05 апреля 2016, 22:16
        0
        описал в документации, дело в том, что если вызывать кешированным и добавлять товар, то borders в фильтрах могут работать работать не верно, просто не появиться в списке пока не обновится, или же если менять включить кеш и менять настройки у сниппета… то тоже ничего не произойдет пока время кеша не выйдет или сессия не обновиться или кеш не очиститься, поэтому чтобы не вводить народ в заблуждение кеширование выключено. Расскажу не много про то, как проходит один из этапов кеширования запросов основываясь на параметре cacheTime, когда пользователь на какой-либо странице вводит критерии поиска (влючая сортировку, пагинацию, лимит) на сервере на основе этих данных формируется ключ md5, если ранее кто-либо производил такой поиск он получит из кеша cacheManager (в соответствии с cacheTime) сформированные страницы. Если он первый, то формируется кеш с этими данными. Просто на аяксе скорость обработки не совсем очевидна.
      Степан Прищепенко
      05 апреля 2016, 19:32
      0
      а почему страшные, что именно в них не понравилось?
        Лев Вербицкий
        05 апреля 2016, 21:32
        0
        Ну они очень отличаются от стандартного extjs)
          Степан Прищепенко
          05 апреля 2016, 22:03
          0
          стандартные таблицы, просто чтобы разделить логику немного подкрасил и добавил фона.
            Александр Суркин
            04 октября 2016, 13:21
            0
            Рекомендовал бы вам цвета подобрать не столь кричащие.
              Степан Прищепенко
              06 октября 2016, 08:52
              0
              Спасибо, учту, если есть желание можете предложить свои варианты.
      Степан Прищепенко
      05 апреля 2016, 19:24
      0
      Сайт починил.
        Степан Прищепенко
        07 апреля 2016, 20:10
        0
        Добавил возможность изменять в демке почти все что угодно, раз в несколько часов сайт будет возвращаться к первоначальному состоянию, все изменения будут удалены.
          Степан Прищепенко
          13 апреля 2016, 17:45
          0
          Изменил примеры, добавив в категории кеширование, сделал страничку с примерами скорости загрузки страницы категории товаров, добавил в демку сниппет debugParser — можете сами изучить скорость работы на основе его данных, признаться отличаются от стандартных, не изучал его работу, но вероятно есть над чем работать. Также я подумал на счет цены и решил снизить до стоимости аналогичных компонентов, теперь всего 990р.. ) Всех с весной!
            Лев Вербицкий
            13 апреля 2016, 20:00
            0
            Сразу баг словил ;)
            yadi.sk/i/maetICDqqxudo
              Степан Прищепенко
              14 апреля 2016, 16:23
              0
              Очень интересно и что было сделано для достижения такого результата? какая последовательность действий? какой браузер? У меня в коде вообще нет такой фразочки, значит это или ms2 или mfilter или еще кто, или что скорее всего, открыл в момент обновления БД и файлов судя по времени картинки (20:00 28сек), в результате такой глюк произошел.
          Степан Прищепенко
          27 апреля 2016, 20:55
          0
          Вышла версия 0.2.9. Теперь, названия свойств и их значение так же попадают в поисковый индекс mSearch2. Достаточно в его настройках в поле с ключем mse2_index_fields добавить msextrfields_index:2 (вес указываем свой).
            Виктор Долгий
            07 мая 2016, 12:34
            0
            Может кто-то уже делал, в списке товаров (при выводе mFilter-ом, в плитке или в списке) нужно приделать возможность выбора свойства товара (от этого изменяется стоимость, как и на самой странице товара), чтобу покупать было удобней (чтобы не редактировать потом в корзине свойства).
              Степан Прищепенко
              07 мая 2016, 20:55
              +1
              Точно скажу что ни кто с данным компонентом этого не далал, с другим возможно, не знаю. Однозначно не получиться без внесения правок в js (компонента и скрее всего miniShop2), т.к. есть места, например при пересчете цены данные возвращаются только в один селектор '.price', возможно будет проблема с сабмитом и еще чем-нить, тут надо внимательно изучать все нюансы, наверняка ms2 тоже будут такие узкие места, если только там на closest или siblings Василий не перевел, или идентификаторы какие добавил к формам, я не проверял.
                Sergey Pozhidaev
                15 октября 2016, 11:01
                0
                Степан, есть ли у компонента возможность проставлять размер скидки, в зависимости от общей суммы заказа? Не нашел такой возможности, ее нет?
            Ника
            03 мая 2018, 12:53
            0
            Добрый день!
            Как я могу вывести в карточке товара свойства, только из определенной группы свойств?
              Степан Прищепенко
              04 мая 2018, 09:29
              0
              Т.е. не из категории, а именно из группы? можно конечно так сделать, но подсчет цены вроде будет производиться по всем параметрам, нужно проверить, так на данный момент такого критерия нет, добавлю в новую версию, будет задаваться через where или groups.
                Ника
                04 мая 2018, 15:51
                0
                да, из группы. Мне нужно вывести определенные свойства товара в другом блоке на странице. Получается, я разбиваю их на группы и пытаюсь отдельно вывести…
                  Степан Прищепенко
                  04 мая 2018, 22:19
                  0
                  хм не могли бы вы все таки уточнить эту информацию скриншотами сайта, я понимаю что такое решение имеет место быть, мне просто очень хечется понять почему вы решили пойти именно таким путем.
            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
            32