Новая версия msPre - массовое редактирование товаров

Обновление компонента для массового редактирование товаров в minishop2.

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



Что нового в новой версии msPre 2.0.1 pl


— Изменение цены товара (поля price и old_price). Можно добавить кастомизированные поля phptype:decimal с разделителем 12,2
  • Параметры изменения цены
    — Установить новую цену
    — Увеличить цену в процентах (от 1 до 100)
    — Снизить цену в процентах (от 1 до 100)
    — Увеличить цену на указанное количество рублей
    — Снизить цену на указанное количество рублей
  • Округлить цену
    — Не округлять
    — Округлить в меньшую сторон
    — Округлить в большую сторону
— Транзакции с изменением цен фиксируются и их можно отменить (Действует только на поля типа цена. Все остальные поля не фиксируется)
— Изменение страны производителя (поле made_in). Можно добавить кастомизированные поля phptype:string
— Изменение веса (поле weight). Можно добавить кастомизированные поля phptype:decimal с разделителем 13,3
— Изменения источника файлов
— Управление полями типа phptype:json такие как color,size,tags. Можно добавить кастомизированные поля phptype:json
  • Установить опции
  • Изменить опции
  • Удалить опции
— Фильтрация данных по опциям color,size,tags и др. в json формате из класса msProductOption
— Параметры для добавления кастомных полей (параметры field_json,field_price,field_string,field_weight)
— Переключение таба в боковой панели на ресурсы при уходе со страницы компонента
— Исправлено отсутствие наименования для категории если menutitle пуст

Изменения цен


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


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

Так как при увеличении цены в процентах на 10% к примеру 1000 рублей, получится 1100 а при уменьшении цены на 10% процентов получится уже 990.

Отмена операций для товаров


Управление полями color,size,tags и тд.

Так как эти поля хранятся в json формате а так же в таблице класса msProductOption пришлось делать сразу 3 пункта меню:

Установить опции
где можно выбрать сразу несколько значений


Изменить опции
где можно выбрать одну из опций которая есть у выбранных товаров и заменить её на одну из возможных опций которые есть у этого поля.


Удалить опции
Где можно удалить одну из опций которая есть у выбранных товаров


Добавление кастомных полей


Теперь можно редактировать не только стандартные поля minishop но и так же добавить свои созданные поля с помощью плагинов.
На данный момент доступны для редактирования следующие типы полей:
  • phptype:string
  • phptype:decimal с разделителем 12,2
  • phptype:decimal с разделителем 13,3
  • phptype:json
Кастомные поля добавляются в параметры в системных настройках компонента.

Страница компонента
https://modstore.pro/packages/ecommerce/mspre

Демонстрация возможностей
demo.mspre.bustep.ru/manager/?a=home&namespace=mspre
Логин: manager
Пароль: manager
Андрей Степаненко
04 сентября 2018, 15:10
2
601
+10

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

Hiddenski
04 сентября 2018, 19:51
+2
А вы очень плодовитый разработчик. Похвально.
Евгений Борисов
04 сентября 2018, 22:14
1
+6
В очередной раз убеждаюсь, что MODX это дырень:-). Если дал доступ в админку (даже с самыми минимальными правами), то считай дал полный доступ к сайту
    Андрей Степаненко
    05 сентября 2018, 02:55
    0
    Дак собствено для этого исходники и удаляю с демонстрационных сайтов))
    Встроеная защита нужна лиш для защиты от криворуких менеджеров
Алексей Шумаев
05 сентября 2018, 10:04
+1
Оффтоп, но не могу не спросить.
С интересом наблюдаю за комментариями после сообщения Евгения.
Мне одному интересны следующие моменты: знают ли про «дырень» разработчики, учитывается для modx3?

Компонент классный, спасибо!
    Василий Наумкин
    05 сентября 2018, 10:45
    0
    Разработчики давным-давно сказали, что в админке может быть только доверенный юзер и кому попало в неё входить давать нельзя.

    Так что, это фича, а не бага!
      Алексей Шумаев
      05 сентября 2018, 11:02
      0
      Есть сомнения в этом )
      Ограниченные доступы легко расходятся по рукам.
      Как показывает время, любая бага/фича рано или поздно используется, когда информация о ней попадает в соответствующие «справочники».
      Для популярных сайтов — там вообще охота идёт за любой информацией и получение любым способом доступа к админке от «доверенных юзеров» — не проблема для соответствующих «товарищей».
        Василий Наумкин
        05 сентября 2018, 11:06
        0
        Еще раз, если не понятно.

        Авторы MODX открыто говорят, что если ты пустил кого-то в админку, то его там ничего не остановит, никакие «права доступа».

        Поэтому никого пускать вообще не надо.
          Stanislavsky
          05 сентября 2018, 11:20
          0
          Тогда в чем смысл разграничения прав?
          Алексей Шумаев
          05 сентября 2018, 11:46
          +1
          Это понятно.
          Однако нам всем нужно понимать: если вы отвечаете за сайт (поддерживаете), но даёте доступ представителю клиента для управления контентом (у нас же ещё и CMS) — то… ну вы понимаете. Можно даже не настраивать права — как бы и не зачем.

          Василий, это не сарказм, если что — я с большим уважением отношусь ко всем участникам сообщества и не желаю менять систему — она мне нравится.

          Я вижу в этом большую проблему и не только в случае поддержки сайта после запуска (это важно!), а вообще для будущего modx. Редкие, но меткие комментарии Евгения показывают нам нехорошее, особенно в ретроспективе.

          Сейчас идёт активное развитие системы, это отлично. При этом развивается и коммерческая часть — великолепно, но вот тут-то наличие таких фичей на мой взгляд недопустимо. Такие факторы будут тормозом для дальнейшего развития системы. Дыры в компонентах, массовые взломы — это одно, а наличие перманентной «багофичи» — уже совсем другое.
            Евгений Борисов
            05 сентября 2018, 12:24
            +3
            Самое узкое место в админке MODX это всякие сниппеты/плагины. Если вам дали доступ в админку чтобы редактировать текст, то вы так же должны еще и включить обработку тегов.
            Например, кто-то напишет вместо заголовка вызов сниппета и откроет страницу…

            А теперь посмотрите код сниппетов — почти везде параметры воспринимаются as it. Более того, где-то даже это особенность сниппета (вот пример легитимного внедрения SQL запроса, а еще есть чтение файлов, загрузка файлов, выполнение кода).

            Поэтому если нужен реально ограниченный доступ — стройте его самостоятельно с фронта через новый контекст.
              Алексей Шумаев
              05 сентября 2018, 12:36
              0
              Благодарю!
                Андрей Степаненко
                05 сентября 2018, 15:44
                0
                Рекемендация на все случаи жизни, пускайте в админку только по разрешенным вами IP адресам. Тогда врядли эти товарищи будут вас ломать!
                Есть ли в мире система которую невозможно сломать или которую никогда не ломали?
                Да с уверенность можно ответить что НЕТ!
                Всяческие разговоры о безопасность приводят к ее улучшею!
                А разговоры о том что что-то модкс дырявый дак их можно вести и без всяких критических уезвимостей!
                Есть куча коммерческих cms которые аналогично кладут на лопатки за счёт каких то дополнений!
                m.habr.com/post/307734/

                Или же вариант такой: покупаешь битрикс и тратишь кучу бабла. С modx как я понял люди вылечиваются! И не тратят на это по 30000к за то что их сайт вылечили!

                А на счёт взлома админки, и что кто-то попытается по упражняться на демо сайте компонента я предполагал и не сколько не переживал, ну взломал, ну посмотрел, ну не нашёл исходники компонента, ну и ушёл не счем!
                Есть бэкапы из которых я его восстановлю. Или вообще восстанавливать не буду новую чистую версию запущу.

                И вообще этот взлом к моему компоненту не как не относится! А то такое ощущение создаётся что это мой компонент виноват и мол через него что-то можно сломать!

                Да и текущий взлом и даже не MODX дыра! Вся проблема это сторонние дополнения!
                  Евгений Борисов
                  05 сентября 2018, 15:49
                  0
                  А на счёт взлома админки, и что кто-то попытается по упражняться на демо сайте компонента я предполагал и не сколько не переживал, ну взломал, ну посмотрел, ну не нашёл исходники компонента, ну и ушёл не счем!
                  Прикольно, а как без исходников у вас это демонстрируется на сайте?

                  Да и текущий взлом и даже не MODX дыра! Вся проблема это сторонние дополнения!
                  Это лишь был самый простой способ добиться цели. Без проблем можно провернуть аналогичное не имея на сайте ни одного компонента.
                    Андрей Степаненко
                    05 сентября 2018, 16:23
                    0
                    Евгений, я упомянул текущую проделанную операцию по взлому, и лишь асоциаровалов со своим предположением.
                    Я лишь привел пример.

                    Это лишь был самый простой способ добиться цели. Без проблем можно провернуть аналогичное не имея на сайте ни одного компонента.
                    Еще раз объясняю: пофиг, ломайте, восстановлю из резервной копии…
                      Алексей Шумаев
                      05 сентября 2018, 16:25
                      0
                      Андрей, я извиняюсь, что обсуждение пошло в вашем топике.
                      Тема же не про ваше дополнение! Оно отличное и никак во взломе не виновато!
                      Евгений Борисов
                      05 сентября 2018, 17:30
                      +2
                      Повысить права != ломать. Разве я вам сломал сайт и после этого пришлось что-то откатывать? Ссылка на демо-сайт — удачная возможность для демонстрации недостатков кастрированных учетных записей. Данная тема практически нигде не затрагивается и зачастую, люди ограничивающие доступ в админку политиками безопасности даже не подозревают, что в этом особого смысла нет (кроме защиты от дурака, чтобы лишнего не грохнули).

                      P.S. Я сожалению, что данная тема была поднята в контексте вашего компонента. Он действительно никакого отношения не имеет к тому, что сейчас обсуждается в вашем топике. Возможно, если Василий сочтет нужным — он перенесет данный оффтоп в новую тему. Ну или грохнет наши комменты, чтобы не дискредитировать msPre.
                      Андрей Степаненко
                      05 сентября 2018, 17:34
                      0
                      Чувак, ты тему просто не там поднял! Мог бы мне сразу написать и все.
                      Евгений Борисов
                      05 сентября 2018, 17:39
                      0
                      Мне проще как и раньше ничего не делать;-)
                      Алексей Шумаев
                      05 сентября 2018, 17:47
                      0
                      Всё так, присоединяюсь.
                      Извинился выше, минуса почикал как смог…
                      Андрей Степаненко
                      05 сентября 2018, 17:34
                      0
                      Исходники в смысле пакет компонента.
                    Алексей Шумаев
                    05 сентября 2018, 16:12
                    0
                    Андрей, дело не в этом. Ваша точка зрения — со стороны разработчика, есть и другой взгляд на проблему.
                    У меня есть печальный опыт борьбы с последствиями инсайда. Тут тоже самое — добыл ограниченный доступ к панели (это просто!) — сохранил в ресурсе сниппет и готово — авторизовался под админом (например). Редиске даже думать не надо будет — «эксплоит» он сможет купить где надо.
                    Для любого серьёзного сайта — это крайне опасно. Выход тут действительно один — не давать доступ вообще. Никакие базовые авторизации глобально не помогут, корпоративные сети никто не отменял. Про резервные копии — когда вы обнаружите проблему, чистых уже может у вас и не быть (проходили).
                    Алексей Шумаев
                    05 сентября 2018, 16:24
                    0
                    Сейчас, кстати, майнеры в моде. Последняя волна взломов показала нам это наглядно.
                    Майнер можно не найти годами, а у вас на примете сайт на модх с 10000 уников.
                    Последствия понятны, я думаю.
                      Андрей Степаненко
                      05 сентября 2018, 17:50
                      0
                      На счёт безопасности и корпоративных сетей примерно год назад у закомых положили сервер да так что месяца два данные восстанавливали! Тоже VPN корпоративная сеть на 2 сотни компов! Бизнес встал!
                      Какой только защиты небыло! Серове нашлись товарищи которые сумели это сделать.

                      Вообще у других cms дела как то проще обстоят? Ну наверняка если зайти в админку можно и зная систему так же переломать все! Причём тут MODX когда дело в людях!
                        Алексей Шумаев
                        05 сентября 2018, 17:57
                        0
                        Вот тут Евгений всё написал:
                        Данная тема практически нигде не затрагивается и зачастую, люди ограничивающие доступ в админку политиками безопасности даже не подозревают, что в этом особого смысла нет (кроме защиты от дурака, чтобы лишнего не грохнули).
                        Защититься на 100% нельзя, никто не спорит.
                        Тут важно именно следующее: многие (и я в т.ч.) полагали, что у нас CMS и ограниченная учётка может отдаваться контент-менеджеру без особых опасений.
                        Евгений продемонстрировал, что это не так. Для меня это важно и я буду думать над изменением политики работы с modx.

                        Ещё раз извиняюсь за старт обсуждения в вашей теме.
                        Андрей Степаненко
                        05 сентября 2018, 17:56
                        0
                        Надо писать тогда свою cms если к другой доверия нету! Пишите свои компоненты, трать время!
                        Я считаю что без разницы какой код главное сколько времени придётся потратить на достижения своих целей! Ну и потом время это практически всегда ваши деньги всё-таки живем во времена «капитализма»!
                          Алексей Шумаев
                          05 сентября 2018, 18:00
                          0
                          Доверие есть, нужно понимать границы.
                          Насчёт остального — не согласен, и особенно если вы не прекращаете сотрудничество после сдачи проекта — большинству клиентов нужна поддержка/обновления и т.д.
                          Впрочем, это сугубо моё дело, ваша точка зрения понятна и оправданна.
                          Евгений Борисов
                          05 сентября 2018, 18:01
                          +2
                          Я считаю что без разницы какой код главное сколько времени придётся потратить на достижения своих целей!
                          Пару лет назад был один такой же персонаж.Но это уже другая история. Удачи в продажах)))
        Андрей Степаненко
        05 сентября 2018, 18:23
        0
        Че обсуждаем…
        О чем речь.

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

        Алексей плохо то что вы только сейчас узнали о не безопасности менеджеровского доступа, это уже давно обсуждалось и об это уже были темы.
        Да и потом если вы занимаетесь разработкой сайтов и поддержкой ну попробуйте по лучше изучить безопасность MODX.
          Алексей Шумаев
          05 сентября 2018, 19:17
          0
          Про не безопасность мне известно. Но я не уделял должного внимания этой теме и это очень плохо.
          Для меня странно, что никому эта тема особо не интересна. Либо все уже умеют защищаться, либо (что вероятнее) большинство народа не знает или не заморачивается. Почему это плохо, я написал выше.

          Да и потом если вы занимаетесь разработкой сайтов и поддержкой ну попробуйте по лучше изучить безопасность MODX.
          Если вы знаете, как защищать ограниченные полномочия (указанные выше в обсуждении общеизвестны и не достаточны в этом контексте) — напишите статью, лично я буду очень благодарен. Я вот пока не знаю. Идеи есть, но надо проверять.
          Евгений указал путь, за что ему спасибо.
            Андрей Степаненко
            05 сентября 2018, 20:03
            +1
            В компоненте Tickets есль такая галочка «Выполнять теги MODX” вот одна из во возможностей которую надо внедрить по умолчанию в ресурсы MODX.

            Чтобы в контенте ничего нельзя было запустить. В принцепи написать 1 плагин и выводить контент через сниппет решит вопрос запуска сниппетов менеджерами.

            А вообще как правило самое узкое место откуда все начинается это установка галочки sudo после этого можно делать че угодно в админке!
            Напишите простой код чтобы если у пользователя с sudo доступом IP не совпадает с вашим ip то не давать доступа. Тока храните ip не в базе. А то с sql операциями у многих уже есть опыта по взлому.
              Алексей Шумаев
              05 сентября 2018, 21:42
              0
              Добре! В теме компонента мы уже знатно намусорили, хватит )
              Если есть интерес этому вопросу, нужно отдельную тему создать.