[miniShop2] Версия 2.4.0 beta1
Готова для тестирования новая бета-версия MS2.4. Вся она, целиком и полностью, посвящена категориям товаров.

Как и обещал, одновременно со всеми изменениями пишется подробная документация — вот свежая статья. Она написана с позиции «как есть», а «как стало» читайте далее.
Значительно улучшен процесс расширения родной панели ресурса MODX. Раньше нужный код копировался из MODX и со временем устаревал, теперь же он именно расширяется — то есть, вызывается из родителя, и меняется как нужно.
Теперь не должно быть проблем с подключениями других дополнений, типа Tagger, или выводом ТВ параметров.
При создании товара видно, что контент перенесён на первую вкладку, а в настройках некоторые поля спрятаны, а другие переставлены местами. По идее, должна работать и кастомизация форм, но не проверял.
Тип документа теперь можно переключать на категорию товаров и обратно. Если категория становится обычным ресурсом, и у неё есть потомки, скрытые от показа в дереве — они будет показаны, чтобы не потерялись.
Меню категории тоже больше не переписывается. Доступно и быстрое создание товаров, и сортировка, и нормальная анимация

В редактировании категории изменений еще больше. В первую очередь, таблица с товарами теперь занимает всю первую вкладку. Romain Tripault предлагал это сделать еще в 2014 году, надеюсь он будет рад.
Понятное дело, сама таблица приведена в соответствие с моими последними дополнениями: сохранение статуса, мультивыделение, действия кнопками и контекстным меню.
Исправлена сортировка перетаскиванием, да не просто исправлена, а даже улучшена. Теперь можно таскать сразу несколько товаров, и даже перемещать товары в другие категории.
Если вы кидаете товар на другой товар в той же категории — это сортировка, если же на товара другой категории — это смена родителя.
При совершении действий с товарами дерево ресурсов тоже обновляется. Кстати, можно скрывать и показывать товары в меню сразу из таблицы.
Система плагинов товара по-прежнему позволяет добавлять свой столбики в таблицу. Более того, теперь она позволяет расширять любые таблицы, но про это позже — она пока в разработке.
Таблица с опциями товаров категории перенесена на вкладку «Настройки» и также почти полностью переписана.

С самой логикой работы опций пока не разбирался, только переписал эту таблицу и её окошки.
Понятное дело, везде сотни изменений, исправлений и улучшений, о которых не упомнить. Кому интересно — вот коммит с ними всеми на GitHub.
Ах, да! Исправлены баги в работе панели товаров, которые не давали их сохранять в прошлой бете — теперь, в принципе, можно даже попробовать работать с MS2.4 на не очень важных сайтах. На свой страх и риск. Так что не забывайте сделать бэкап, чтобы можно было откатиться.
Новая версия уже в modstore.pro, документация в docs.modx.pro. Обновляемся, сообщаем о новых ошибках.
У кого есть желание сказать спасибо материально — не стесняйтесь делать это на www.paypal.me/bezumkin или на моём сайте (требует авторизацию через id.modx.pro).
UPD.
modstore.pro продолжают стимулировать — прислали еще 10 000 руб.

Как и обещал, одновременно со всеми изменениями пишется подробная документация — вот свежая статья. Она написана с позиции «как есть», а «как стало» читайте далее.
Значительно улучшен процесс расширения родной панели ресурса MODX. Раньше нужный код копировался из MODX и со временем устаревал, теперь же он именно расширяется — то есть, вызывается из родителя, и меняется как нужно.
Теперь не должно быть проблем с подключениями других дополнений, типа Tagger, или выводом ТВ параметров.
При создании товара видно, что контент перенесён на первую вкладку, а в настройках некоторые поля спрятаны, а другие переставлены местами. По идее, должна работать и кастомизация форм, но не проверял.
Тип документа теперь можно переключать на категорию товаров и обратно. Если категория становится обычным ресурсом, и у неё есть потомки, скрытые от показа в дереве — они будет показаны, чтобы не потерялись.
Меню категории тоже больше не переписывается. Доступно и быстрое создание товаров, и сортировка, и нормальная анимация

В редактировании категории изменений еще больше. В первую очередь, таблица с товарами теперь занимает всю первую вкладку. Romain Tripault предлагал это сделать еще в 2014 году, надеюсь он будет рад.
Понятное дело, сама таблица приведена в соответствие с моими последними дополнениями: сохранение статуса, мультивыделение, действия кнопками и контекстным меню.
Исправлена сортировка перетаскиванием, да не просто исправлена, а даже улучшена. Теперь можно таскать сразу несколько товаров, и даже перемещать товары в другие категории.
Если вы кидаете товар на другой товар в той же категории — это сортировка, если же на товара другой категории — это смена родителя.
При совершении действий с товарами дерево ресурсов тоже обновляется. Кстати, можно скрывать и показывать товары в меню сразу из таблицы.
Система плагинов товара по-прежнему позволяет добавлять свой столбики в таблицу. Более того, теперь она позволяет расширять любые таблицы, но про это позже — она пока в разработке.
Таблица с опциями товаров категории перенесена на вкладку «Настройки» и также почти полностью переписана.

С самой логикой работы опций пока не разбирался, только переписал эту таблицу и её окошки.
Понятное дело, везде сотни изменений, исправлений и улучшений, о которых не упомнить. Кому интересно — вот коммит с ними всеми на GitHub.
Ах, да! Исправлены баги в работе панели товаров, которые не давали их сохранять в прошлой бете — теперь, в принципе, можно даже попробовать работать с MS2.4 на не очень важных сайтах. На свой страх и риск. Так что не забывайте сделать бэкап, чтобы можно было откатиться.
Новая версия уже в modstore.pro, документация в docs.modx.pro. Обновляемся, сообщаем о новых ошибках.
У кого есть желание сказать спасибо материально — не стесняйтесь делать это на www.paypal.me/bezumkin или на моём сайте (требует авторизацию через id.modx.pro).
UPD.
modstore.pro продолжают стимулировать — прислали еще 10 000 руб.
Комментарии: 56
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.


новый интернет магазин с базовым функционалом MS2 + mSearch2 можно спокойной делать на данной версии?
или все же, от греха подальше, собирать на стабильной версии?
Я же не только для собственного удовольствия делаю эти бета-версии, но чтобы еще и протестировать готовый функционал.
вопрос больше был о том, что при сборке интернет магазина не случится неожиданный конфликт с прочими дополнениями, которыми он в будущем будет обвешиваться и моя работа не пропадет даром.
Это бета версия для публичного теста. Если бы я сам взял и сделал пару десятков магазинов, протестировал бы её со всеми дополнениями — это была бы уже стабильная версия, понимаешь?
Вопрос твой, прости пожалуйста, глупый сам по себе.
Единственно, чего не хватает, это ограничении свойств товара в категориях… как это сделано с опциями, ведь возможно такое, что их будет больше чем 2 по дефолту (цвет и размер), как у меня, к примеру.
На тестовом сайте никаких багов не видать
всё ок
Имхо, можно сделать так, как это для товара сделано, где все оформление вынесено в чанк и для прототипирования можно его использовать или писать свой код.
Вот такой вот issue получился. В остальном все круто.
Понятно, что шаблоны и т.д., но люди, наверное, уже привыкли, что все категории показывают свои товары сразу из коробки.
Развивая мысль, можно было бы вынести оформление магазина в отдельный пакет, а в самом miniShop оставить голое ядро и учитывая, что с 2.4 версии есть возможность указывать зависимости, ставить пакет оформления по умолчанию, но при этом давать возможноть отказаться от него. В таком случае в пакете оформления можно было бы реализовать полценный демо-магазин (аля сборка) для желающих посмотреть, а как оно что работает.
Для конечно пользователя все остается так же — установил одной кнопкой, открыл сайт — о! магазин работает.
Для сайтоделов, вроде меня и других — при установке снял галку и голова не болит, делаешь что нужно и лишнего на сайте ничего нет.
Универсально, это тянуть 2 пакета вместо одного и усложнять установку. А ты потом будешь еще и все чанки по памяти с нуля писать, ибо установил только голое ядро?
За это мои дополнения и любят, как мне кажется. И я еще регулярно получаю упрёки, что «не работает» и «нет документации».
Текст по умолчанию вынесен в настройки и за всё время это, насколько я помню, первая подобная жалоба. Кстати, в Tickets сделано ровно так же — и там вовсе жалоб нет до сих пор.
Про tickets знаю, но я им реже пользуюсь, потому пока не наболело.
А что касается настройки, то да, это универсально, но все равно нужно помнить про такое поведение и вовремя ее чистить. А вот в этом уже неудобство, особенно если забыл это сделать на старте.
Ну и мои комментарии — это не упреки, я это сознательно так подробно рассписываю и предлагаю обсудить, чтобы не было похоже на упрек и недовольство.
Ну и напоследок,
в новых версиях MODX это 1 строчка в конфиге зависимостей
И 2 пакета — это в 2 раза больше открывания\закрывания IDE, как минимум. Плюс потенциальные ошибки, типа «я непонял чо за галочка, но у меня вооообще ничего не работает — все страницы пустые!»
В общем, мне кажется, что проще тебе на бумажке записать «что нужно сделать сразу после установки MS2» или даже написать свой скрипт с установкой дефолтных настроек, чем сделать всем остальным pro-mode.
24 чанка, фига ты крутой! Я вот, например, так не умею и сам постоянно меняю уже готовые чанки.
Решение:
Не решение, когда клиент уже накопировал тучу категорий и половину успел наполнить содержимым. Да еще мозг параллельно выносит тем, что херня на сайте какая-то :)
Окей, а вот так?
Или даже
Вопрос уже решен, но мне всё равно эти «сложности» кажутся надуманными.
Есть предложение использовать настройку не в файле category.common.js, а реализовать в файле mscategory.class.php метод getContent. Пусть код из настройки добавляется к полю content и выводится только на фронтенде (вот здесь используется этот метод).
Тогда изменение настройки повлияет сразу на все категории.
Постараюсь сделать пулл-реквест в ближайшее время. Вдруг, понравится…
github.com/bezumkin/miniShop2/pull/206
Для теста: s5023.h5.modhost.pro/manager/
s5023 / hw1zHKhPKAaA
Но без неё тоже нельзя — тогда не будет «работать из коробки». А это тоже важно для новичков.
Однако вопрос-то уже решен. Василий решил эту настройку сделать пустой по умолчанию. Старые магазины не поломаются, но новые уже «из коробки» показывать товары сами не будут.
Поэтому мне кажется лучше сделать так: modx.pro/components/8395-minishop2-version-2-4-0-beta1/#comment-58804
Я чаще всего делаю один шаблон на сайте, а внешним видом рулю уже внутри шаблона. Например, так:
Кто захочет — добавит себе туда что нужно.
На сайте везде одна цена, при чекауте, при выборе региона или индекса должен прибавляться налог.
Тебе заказывают магазин, требуют сделать налог с продаж — делай, это твоя работа.
Это первый шаг для выхода на международный рынок.
Все товары принадлежат своим категориям, у каждого из них внутри неё есть свой menuindex. Через мультикатегории задаётся лишь принадлежность товара к чужой категории, но menuindex у него никак от этого не меняется.
Если сделать еще поле rank в мультикатегории, как ты отсортируешь одновременно родной menuindex товаров и дополнительный rank мультикатегории? Это же разные, неравноценные колонки, причем у многих товаров rank и вовсе не будет. Это не имеет смысла.
Прямо сейчас ресурсы выбираются по категориям с добавлением мультикатегорий, и ты можешь сортировать всю кучу сразу: по родителю, дате, цене, чему угодно — тому, что есть у всех выбранных товаров.
Но сортировать по мультикатегориям наравне с обычными категориями никак не получится, если только не сделать вообще одну общую таблицу чисто для сортировки всех товаров сайта, чтобы это значение было у них всех.
Но это уже вообще что-то странное.
Вот вид в древе:
А вот представление в системной модкс site_content (с менюиндексом, родителем и ID) и в ms2_product_categories (с product_id, category_id и rank собственно)
стандартная сортировка по menuindex дополняется сортировкой по полю rank из таблички мультикатегорий
в категории с id 7 лежат товары id1, id2, id3 — это их родительская категория
в категории с id 8 лежат товары id4, id5, id6 — это их родительская категория
сортировка в категориях id 7, id 8 происходит одновременно по menuindex и полю rank.
Вроде логичная получилась модель сортировки?
Можно сначала отсортировать по menuindex, а потом уже по rank. Или наоборот.
Но нельзя указать, что вот этот товар сортируется по rank, а этот по menuindex.
В общем, фигня это получится, а не сортировка.
Вот тут ребята пишут подобный запрос на mysql: stackoverflow.com/questions/3377854/sql-how-do-i-order-by-a-field-if-its-not-null-else-use-another-field
Люди сортируют по цене, по наличию, по популярности, по новизне. Кто вообще сортирует по тому, как задал менеджер в админке?
В общем, нет, у меня впереди множество работы над MS2 и сортировка в мультикатегориях туда явно не входит, даже если это, вроде бы, и возможно.
значит только мне одному сплошь и рядом попадаются кропотливые контентеры, для которых всякие мелочи, такие как позиция товара при начальной загрузке категории — очень важная деталь?
так, я правильно понимаю что нужно отправить в донат дохера денег чтобы пустить делу ход?))
Вот бы кто-нибудь придумал ТВ параметры или расширение таблицы товаров, чтобы кропотливые контентеры могли туда прописать свой порядок начальной загрузки?
Нет, неправильно.
Донаты были в прошлом году, под руководством Simple Dream. Тогда же собирали группу энтузиастов, программистов, руководителей проекта. Слушали пожелания, писали планы работ, отчитывались по ним.
А сейчас я разбираюсь с тем, что из этого вышло, самостоятельно. Можно поддержать меня материально, но это ни на что не влияет.
Цель у меня — привести в порядок то, что уже есть. Ничего нового пока в планах нет.
PS: мы пришли к решению, что если сам автор miniShop2'a подтверждает техническую возможность реализовать сортировку с учетом мультикатегорий, то реализацию возьмем на себя и пришлем pull-реквестом на гитхаб в ближайшем обозримом будущем.
В логе:
Причина: в методе msProduct::__construct() на 24 строке:
2.4.0 не доступна сейчас для загрузки?
Обновил пакет в репозитории, без изменения версии.
При создании нового производителя, не отображается при выборе в свойствах товара
Заранее благодарен и удачи с разработкой! Буду донейтить вне зависимости от наличия этой функции. :)
скриншот (если понадобится доступы предоставлю или любую другую информацию)
А так — у каждого товара этот параметр можно включать\отключать отдельно.
joxi.ru/KAgKR7wHg0nDpA
создал товар (ввел 1 название), сохранился, после обновления страницы галочка на месте и товар в дереве
joxi.ru/D2PjNVwsdEje1r
или может теперь это действие расположено в ином месте?