[miniShop2] Первый релиз, бета 0
Бета с индеком 0 доступна в репозитории. Нулевая она потому, что я не успел сделать оформление и управление заказами и решил привести в порядок то, что есть, а не торопиться и делать тяп-ляп.
Но обещание выпустить в конце этой недели было дано и его нужно выполнять. Поэтому, бета 0, «для посмотреть».
Магазин на ней построить нельзя, но любопытство утолить — очень даже. Хотя, если вам не нужны заказы — то можно уже использовать по полной!
Также, в поддержку, запустил отдельный сайт на котором открыта админка — minishop2.com.
Не все читают «звезданутые» заметки, поэтому я коротко расскажу, что нового в MS2. В двух словах — всё переписано с нуля, от miniShop осталось только название.
Самый главный момент, который даёт всё остальное — это CRC. Отсюда собственные страницы категорий, товаров, правила создания, требования прав и тд и тп.
Страницы кастомизируются. То есть, в настройках можно указать где и какие поля отображать, что в таблице товаров категории, что в странице редактирования самого товара. Эта фишка, возможно, перекочует в ресурсы самого MODX.
Для узких экранов есть возможность перенести табы страницы слева вверх.
Табы товара и таблица категории запоминают своё состояние. Вы можете нажимать F5, ходить туда-сюда, они будет вам усердно помогать.
Переосмыслил старые привычные кнопки справа вверху, теперь там есть быстрый переход по соседним ресурсам быстрое удаление\публикация товара. Иконки на кнопках — glyphicons из Bootstrap.
Работа с мультикатегориями сделана в виде дерева — так гораздо удобнее.
У товаров стало значительно больше параметров, и в будущем их можно будет расширять специальными плагинами.
MS2 нацелен на скорость, поэтому мне пришлось взять работу с изображениями в свои руки. Ведь, всем известно, как сильно тормозит сайт при использовании phpthumbof и кучи фотографий с динамической генерацией уменьшенных копий.
Итак, галерея товара.
— Flash загрузчик через кнопку
— Html5 загрузчик через drag-n-drop
— Работа через media sources
— Автоматическая генерация thumbnails заданных параметров
— Редактирование имени и описания
— Сортировка перетаскиванием. Первое изображение — основное для товара.
То есть, теперь phpthumbof не нужен. Все предпросмотровые картинки генерируются при загрузке изображения. Вы можете указать нужные параметры в настройке источника файлов (для MS устанавливается свой, конечно).
При изменении параметров можно перегенерировать превьюшки для всех картинок товара сразу.
MS2 использует только свои сниппеты, работающие через pdoTools, что даёт нам повышенную скорость и кастомизацию. Вы можете легко переименовать стандартный сниппет, поменять под себя его логику и использовать.
Благодаря pdoTools особо напрягаться при переделке не придётся.
В комплекте идут сниппеты для вывода картинок, каталога товаров, их опций и корзины.
Все нужные стили и скрипты подключаются автоматически. Первичная настройка магазина займёт от силы 10 минут.
Я очень коротко написал только основные особенности MS2. За подробностями вы можете прогуляться в документацию по MS2.
Проделана огромная работа, и она еще не окончена.
Нет заказов, статусов, оплаты и учёта остатков. Конечно, всё это будет, но позже. Сегодня я просто предлагаю присмотреться к новому компоненту, который может изменить ваше предстаdление о ExtJS и MODX Revolution.
Заказы, статусы и оплата будут в течении недели, с их появлением можно будет сказать, что miniShop2 полностью запущен. С остатками вопрос сложнее — я всё еще в поиске простого, красивого и универсального решения.
Как и многие другие разработки, miniShop2 заказан и оплачен Simple Dream.
После выпуска мы обкатываем компонент на реальной задаче, то есть, строим магазин под заказ, а потом приступаем к разработке собственного магазина расширений для MODX.
В первую очередь, там будут продаваться дополнения для Tickets и miniShop2, а потом поглядим, как пойдёт.
Но обещание выпустить в конце этой недели было дано и его нужно выполнять. Поэтому, бета 0, «для посмотреть».
Магазин на ней построить нельзя, но любопытство утолить — очень даже. Хотя, если вам не нужны заказы — то можно уже использовать по полной!
Также, в поддержку, запустил отдельный сайт на котором открыта админка — minishop2.com.
Не все читают «звезданутые» заметки, поэтому я коротко расскажу, что нового в MS2. В двух словах — всё переписано с нуля, от miniShop осталось только название.
Custom Resources Classes
Самый главный момент, который даёт всё остальное — это CRC. Отсюда собственные страницы категорий, товаров, правила создания, требования прав и тд и тп.
Страницы кастомизируются. То есть, в настройках можно указать где и какие поля отображать, что в таблице товаров категории, что в странице редактирования самого товара. Эта фишка, возможно, перекочует в ресурсы самого MODX.
Для узких экранов есть возможность перенести табы страницы слева вверх.
Табы товара и таблица категории запоминают своё состояние. Вы можете нажимать F5, ходить туда-сюда, они будет вам усердно помогать.
Переосмыслил старые привычные кнопки справа вверху, теперь там есть быстрый переход по соседним ресурсам быстрое удаление\публикация товара. Иконки на кнопках — glyphicons из Bootstrap.
Работа с мультикатегориями сделана в виде дерева — так гораздо удобнее.
У товаров стало значительно больше параметров, и в будущем их можно будет расширять специальными плагинами.
Галерея товара
MS2 нацелен на скорость, поэтому мне пришлось взять работу с изображениями в свои руки. Ведь, всем известно, как сильно тормозит сайт при использовании phpthumbof и кучи фотографий с динамической генерацией уменьшенных копий.
Итак, галерея товара.
— Flash загрузчик через кнопку
— Html5 загрузчик через drag-n-drop
— Работа через media sources
— Автоматическая генерация thumbnails заданных параметров
— Редактирование имени и описания
— Сортировка перетаскиванием. Первое изображение — основное для товара.
То есть, теперь phpthumbof не нужен. Все предпросмотровые картинки генерируются при загрузке изображения. Вы можете указать нужные параметры в настройке источника файлов (для MS устанавливается свой, конечно).
При изменении параметров можно перегенерировать превьюшки для всех картинок товара сразу.
Фронтенд
MS2 использует только свои сниппеты, работающие через pdoTools, что даёт нам повышенную скорость и кастомизацию. Вы можете легко переименовать стандартный сниппет, поменять под себя его логику и использовать.
Благодаря pdoTools особо напрягаться при переделке не придётся.
В комплекте идут сниппеты для вывода картинок, каталога товаров, их опций и корзины.
Все нужные стили и скрипты подключаются автоматически. Первичная настройка магазина займёт от силы 10 минут.
Заключение
Я очень коротко написал только основные особенности MS2. За подробностями вы можете прогуляться в документацию по MS2.
Проделана огромная работа, и она еще не окончена.
Нет заказов, статусов, оплаты и учёта остатков. Конечно, всё это будет, но позже. Сегодня я просто предлагаю присмотреться к новому компоненту, который может изменить ваше предстаdление о ExtJS и MODX Revolution.
Заказы, статусы и оплата будут в течении недели, с их появлением можно будет сказать, что miniShop2 полностью запущен. С остатками вопрос сложнее — я всё еще в поиске простого, красивого и универсального решения.
Как и многие другие разработки, miniShop2 заказан и оплачен Simple Dream.
После выпуска мы обкатываем компонент на реальной задаче, то есть, строим магазин под заказ, а потом приступаем к разработке собственного магазина расширений для MODX.
В первую очередь, там будут продаваться дополнения для Tickets и miniShop2, а потом поглядим, как пойдёт.
Комментарии: 40
Интересно пощупать, спасибо!
Осталось дождаться рецензии самизнаетекого
Осталось дождаться рецензии самизнаетекого
самизнаетекогонезнаем. кого?
Полагаю, Александр о клятвенном обещании Николая (f1losof) разнести код MS2 в пух и прах итд.
Будет интересно)) Не забыть бы запастись пивом и чипсами)))
Кстати на счет качества кода, дело в том что простому обывателю может показаться что код идеален, т.к. он в нем мало что понимает даже если и знает основы программирования приложений! Но более менее опытному профессионалу многие вещи очевидны и вот тут и возникает такой момент как «УУУУ, как всё запущено, нет ну так программировать нельзя» и всё в этом духе.
Я лично код Василия не смотрел и к тому же не являюсь профи, поэтому ничего сказать не могу по существу.
Кстати на счет качества кода, дело в том что простому обывателю может показаться что код идеален, т.к. он в нем мало что понимает даже если и знает основы программирования приложений! Но более менее опытному профессионалу многие вещи очевидны и вот тут и возникает такой момент как «УУУУ, как всё запущено, нет ну так программировать нельзя» и всё в этом духе.
Я лично код Василия не смотрел и к тому же не являюсь профи, поэтому ничего сказать не могу по существу.
Дело, по-моему, не в идеальности/неидеальности кода, а есть чему поучиться в этом коде или нечему там учиться. Мне есть чему поучиться — я за этот год реально продвинулся в своем развитии, разбирая для себя код Василия, потому как не люблю по пустякам дергать людей. А так и разобрался и поучился, а учиться — мегавыгодное вложение, ведь учишься один раз, а пользуешься всю жизнь.
Кроме того, вот, скажем, я не последний человек в допечатной подготовке и дай мне любой, подчеркиваю, любой макет — я найду и ошибки, и недочеты, и откровенную лажу. Но абсолютно уверен, что другой специалист, глядя на мои макеты, тоже может найти нечто, что противоречит _его_ принципам и подходам.
Да, собственно, это касается какой угодно деятельности.
Тот же Николай пишет много, копает всякое, но я читаю и не знаю, к какому месту мне приложить выложенные им знания. Нет, наверное, я не дорос, пусть так, может, это программирование высокого полета. Супер. Выйду на пенсию, обязательно почитаю, укрывшись пледом и попивая Cuba Libre, но сейчас мне нужны а) решения, которые я могу применить, б) решения, которые помогали бы мне взбираться на вершину знания и видеть дальше, и мочь больше. Про зарабатывать больше и проще из скромности не упоминаю.
Всё, надо себя останавливать, а то я так могу часами писáть :)
Кроме того, вот, скажем, я не последний человек в допечатной подготовке и дай мне любой, подчеркиваю, любой макет — я найду и ошибки, и недочеты, и откровенную лажу. Но абсолютно уверен, что другой специалист, глядя на мои макеты, тоже может найти нечто, что противоречит _его_ принципам и подходам.
Да, собственно, это касается какой угодно деятельности.
Тот же Николай пишет много, копает всякое, но я читаю и не знаю, к какому месту мне приложить выложенные им знания. Нет, наверное, я не дорос, пусть так, может, это программирование высокого полета. Супер. Выйду на пенсию, обязательно почитаю, укрывшись пледом и попивая Cuba Libre, но сейчас мне нужны а) решения, которые я могу применить, б) решения, которые помогали бы мне взбираться на вершину знания и видеть дальше, и мочь больше. Про зарабатывать больше и проще из скромности не упоминаю.
Всё, надо себя останавливать, а то я так могу часами писáть :)
Вы очень точно выразились об изысках Николая — «не знаю, к какому месту приложить» — кратко, ёмко и по существу.
У меня галюцинации, я чего-то не знаю/не понимаю, или это то, что я думаю?: modxlessons.ru/ (смотрим даты, смотрим whois итд)
Возникло ощущение, что у Вас украли идею давать уроки — меня параноит?
Нет, конечно. Только я могу воровать идеи, у всех остальных они уникальны.
А если серьезно, то просто сравни с agel-nash.ru — совсем другой уровень исполнения.
В любом случае, я такими уроками не занимаюсь, просто нет времени. Если что и будет в будущем — то на bezumkin.ru.
А если серьезно, то просто сравни с agel-nash.ru — совсем другой уровень исполнения.
В любом случае, я такими уроками не занимаюсь, просто нет времени. Если что и будет в будущем — то на bezumkin.ru.
Тогда, надо полагать, ваш карман утяжелили звонкими монетами, раз нет ссылки на Вас?
На modcoach всё есть, смотри в футере.
Стас, ты много обращаешь на это внимания. Идея проводить уроки, изначально, была Евгения Борисова, он же давно закупил для этого домен.
Я только дал этой идеи небольшой импульс и построил основную часть первого сайта, на Tickets. После первого курса стало очевидно, что на регулярной основе я их не потяну, поэтому полюбовно разошлись.
Евгений, кстати, первым делом, перенес проект на Evolution, и он полностью работает на его коде. Там и комментарии свои есть, и вообще, всё весьма круто.
Так что, мне никто ничего не должен, но спасибо за беспокойство =)
Стас, ты много обращаешь на это внимания. Идея проводить уроки, изначально, была Евгения Борисова, он же давно закупил для этого домен.
Я только дал этой идеи небольшой импульс и построил основную часть первого сайта, на Tickets. После первого курса стало очевидно, что на регулярной основе я их не потяну, поэтому полюбовно разошлись.
Евгений, кстати, первым делом, перенес проект на Evolution, и он полностью работает на его коде. Там и комментарии свои есть, и вообще, всё весьма круто.
Так что, мне никто ничего не должен, но спасибо за беспокойство =)
Василий, ты, похоже, или проспал (и в прямом и переносном) :) или недопонял причинно-следственную )) Поясню, о чём я. Всё намного веселее)
Ты можешь как угодно занижать значимость «импульса», но факты — упрямая штука — в идеологи «замута» ты входил. Это факт номер раз.
Сайтец по ссылочке, которую я дал, совсем свеженький, как и посты на нём (и не только нём, но и некоторых других ресурсах). Это факт номер два.
Тебе на известном нам ресурсе высказывались претензии по поводу неупоминания, использования чужого итд. Это факт номер три.
Имелись и утверждения об обладании некоторыми совестью и честью. Факт номер четыре
Я там написал от себя, что думаю по поводу переписки всей той. Это факт номер пять
Вот мне и стало любопытно, с таким то количеством фактов, где ссылка на тебя или приятная тяжесть в твоём кармане.
П.С.
Никаких ассоциаций с Евгением у меня и не бродило)))
П.П.С.
А беспокойство, если так можно выразиться, да, есть. Я в своём комменте даже прямым текстом написал — твои разработки и иной раз подсказки помогают мне (и очень многим) денежку зарабатывать, а пространные теоретические размышления некоторых «обо всём понемногу» и АМБАССАДОРСТВОВАНИЯ всякие там — нет. Я не люблю, когда совсем уж откровенно фуфел гонят. Со мной такие номера вообще не прокатывают. И в этот раз «ошалев от потока ереси», я решил поучаствовать. От себя и для себя, не более того.
Ты можешь как угодно занижать значимость «импульса», но факты — упрямая штука — в идеологи «замута» ты входил. Это факт номер раз.
Сайтец по ссылочке, которую я дал, совсем свеженький, как и посты на нём (и не только нём, но и некоторых других ресурсах). Это факт номер два.
Тебе на известном нам ресурсе высказывались претензии по поводу неупоминания, использования чужого итд. Это факт номер три.
Имелись и утверждения об обладании некоторыми совестью и честью. Факт номер четыре
Я там написал от себя, что думаю по поводу переписки всей той. Это факт номер пять
Вот мне и стало любопытно, с таким то количеством фактов, где ссылка на тебя или приятная тяжесть в твоём кармане.
П.С.
Никаких ассоциаций с Евгением у меня и не бродило)))
П.П.С.
А беспокойство, если так можно выразиться, да, есть. Я в своём комменте даже прямым текстом написал — твои разработки и иной раз подсказки помогают мне (и очень многим) денежку зарабатывать, а пространные теоретические размышления некоторых «обо всём понемногу» и АМБАССАДОРСТВОВАНИЯ всякие там — нет. Я не люблю, когда совсем уж откровенно фуфел гонят. Со мной такие номера вообще не прокатывают. И в этот раз «ошалев от потока ереси», я решил поучаствовать. От себя и для себя, не более того.
Спасибо за поддержку, но вся эта ситуация заставляет меня только поменьше выступать и побольше работать.
Та что, все в плюсе.
А если становится грустно я просто смотрю вот сюда — modx.com/extras/author/bezumkin2 =)
Та что, все в плюсе.
А если становится грустно я просто смотрю вот сюда — modx.com/extras/author/bezumkin2 =)
Выступать можно и нужно, вспомните баталии на заре нета по поводу методов/протоколов передачи данных, если мне не изменяет память. Или чуть ли не эпохальное Таненбаум-Торвальдс. О чём и к чему я, вполне понятно.
П.С.
+100500 на ссылку )))
П.С.
+100500 на ссылку )))
Выглядит впечатляюще.
Это проста оху… но это шедевр, всех больше нравится что можно убрать поля которые не нужны что бы клиенту не объяснять это не трогай, то не трогай и т.д. супер Василий ты лучший!!!
Круто, Бро, выглядит просто потрясающе. Радует возможность менять цену и др. параметры сразу в таблице с товарами, без необходимости открывать страницу редактирования товара. До этого приходилось делать плагин для фронтэенда, чтобы менять цены прямо с фронтеэнда, но теперь это просто можно делать в админке. Василий, будет ли из коробки возможность убрать из таблицы с товарами в админке определенные колонки, например вес или артикул?
Читал вчера бред от f1losof, человек не в адеквате вообще, то ли ему зависть затмила разум… Короче раз завидуют, значит движешься в правильном направлении. Успехов!
Читал вчера бред от f1losof, человек не в адеквате вообще, то ли ему зависть затмила разум… Короче раз завидуют, значит движешься в правильном направлении. Успехов!
На свой вопрос нашел ответ. В настройках можно указывать поля для таблицы товаров. Супер!
Вот вот мне этим же понравилось)))))
Василий, будет ли из коробки возможность убрать из таблицы с товарами в админке определенные колонки, например вес или артикул?
Конечно, таблица кастомизируется.
В документации это уже описано.
все очень збс!) ждем тогда полной бетки, чтобы обкатать)
насчет остатков интересно было сделано в visioncart,
там к продукту можно было создать его копии ( грубо говоря дочерние продукты ),
с разными наборами доп. полей.
насчет остатков интересно было сделано в visioncart,
там к продукту можно было создать его копии ( грубо говоря дочерние продукты ),
с разными наборами доп. полей.
Да какая тут конкуренция?
Я пишу компонент под заказ. Заказчик ставит задачу, я нахожу решения, получаю оплату.
То, что сообщество получает в итоге новый компонент — побочный эффект моей работы и доброты заказчика.
Видимо, нужно подробно написать, зачем и почему мы создаём компоненты, а то многие не понимают.
Я пишу компонент под заказ. Заказчик ставит задачу, я нахожу решения, получаю оплату.
То, что сообщество получает в итоге новый компонент — побочный эффект моей работы и доброты заказчика.
Видимо, нужно подробно написать, зачем и почему мы создаём компоненты, а то многие не понимают.
Супер. Подумалось начать проектик на нем. обновится ли бетка без потерь в последствии на стабильную версию?
Да.
Только, скорее всего, нужно будет поправить дефолтные чанки и системные настройки — они не обновляются при установке пакета.
Только, скорее всего, нужно будет поправить дефолтные чанки и системные настройки — они не обновляются при установке пакета.
Василий, огромное спасибо за прекрасный продукт!
При первом знакомстве с продуктом — ощущение некого блаженства )))
При первом знакомстве с продуктом — ощущение некого блаженства )))
Интересно а реализация фильтра по доп. полям будет?
вобщем, я попробовал в сниппете «msProducts»
по цене сделать фильтр,
$where['Data.price:>='] = 500;
весьма странную ситуацию наблюдаю, например есть товар ценой в 20 тыщ, он считается меньше чем просто 500,
а если выбрать тыщу как минимум, например, то больше)
по первой цифре чтоли считает?
это какая то особенность пдо-тулс? или просто баг минишопа, пока что?
по цене сделать фильтр,
$where['Data.price:>='] = 500;
весьма странную ситуацию наблюдаю, например есть товар ценой в 20 тыщ, он считается меньше чем просто 500,
а если выбрать тыщу как минимум, например, то больше)
по первой цифре чтоли считает?
это какая то особенность пдо-тулс? или просто баг минишопа, пока что?
Цена хранится в varchar — это я пошутил, конечно.
Исправляю, спасибо!
Исправляю, спасибо!
)) да бывает) и еще вопросик)
я так понял теперь же фильтры будут искать по полям color/size
типа так:
$added_where['Data.color:LIKE'] = '%'. substr( json_encode( 'Белый' ), 1, -1 ) .'%';
? просто я так попробовал опять в том же сниппете, не хочет работать)
я так понял теперь же фильтры будут искать по полям color/size
типа так:
$added_where['Data.color:LIKE'] = '%'. substr( json_encode( 'Белый' ), 1, -1 ) .'%';
? просто я так попробовал опять в том же сниппете, не хочет работать)
Фильтров пока нет, потом буду переписывать mFilter.
Именно для поиска все json поля товара (color/size/tags) автоматически копируются в таблицу msProductOption — так что надо искать по ней и выбирать нужные id товаров.
Именно для поиска все json поля товара (color/size/tags) автоматически копируются в таблицу msProductOption — так что надо искать по ней и выбирать нужные id товаров.
понятно)
слушай,
я тут подумал, может лучше сделать еще промежуточную таблицу?
в которой будут хранится основные параметры типа color/size, только в еденичных экзэмплярах,
а в msProductOption только соответствие ключей товара/и ключа промежуточной таблицы
по сути когда продуктов будет очень много, будет притормаживать, как ты думаешь?
я тут подумал, может лучше сделать еще промежуточную таблицу?
в которой будут хранится основные параметры типа color/size, только в еденичных экзэмплярах,
а в msProductOption только соответствие ключей товара/и ключа промежуточной таблицы
по сути когда продуктов будет очень много, будет притормаживать, как ты думаешь?
Нет, не будет тормозить. Таблицы ключ\значения очень быстренькие.
А лишний join при каждой операции нафиг не сдался. Да и вообще, всё это фигня по сравнению с тормозами карты ресурсов и php.
А лишний join при каждой операции нафиг не сдался. Да и вообще, всё это фигня по сравнению с тормозами карты ресурсов и php.
смотри сам.
промежуточную таблицу по сути можно хранить где-то в файле, вместо джойна.
по сравнению конечно)
промежуточную таблицу по сути можно хранить где-то в файле, вместо джойна.
по сравнению конечно)
Василий, а как будет организован экспорт/импорт? Я имею ввиду JSON поля товара, мультикатегорийность и большое число вложенных категорий/подкатегорий?
Узнаю, когда начну делать. Пока несколько иным занят.
Скорее всего, будет xml.
Скорее всего, будет xml.
А как можно ускорить этот процесс?
;-)
;-)
Написать самому и прислать коммит на github.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.