[miniShop2] Первый релиз, бета 0

Бета с индеком 0 доступна в репозитории. Нулевая она потому, что я не успел сделать оформление и управление заказами и решил привести в порядок то, что есть, а не торопиться и делать тяп-ляп.

Но обещание выпустить в конце этой недели было дано и его нужно выполнять. Поэтому, бета 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, а потом поглядим, как пойдёт.
Василий Наумкин
23 февраля 2013, 19:14
modx.pro
5 748
0

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

Александр Донский
24 февраля 2013, 00:38
0
Интересно пощупать, спасибо!
Осталось дождаться рецензии самизнаетекого
    Denys Butenko
    24 февраля 2013, 03:23
    0
    самизнаетекого
    незнаем. кого?
      СикретНаме
      24 февраля 2013, 04:01
      0
      Полагаю, Александр о клятвенном обещании Николая (f1losof) разнести код MS2 в пух и прах итд.
        Смирнов Николай
        Смирнов Николай
        24 февраля 2013, 05:30
        0
        Будет интересно)) Не забыть бы запастись пивом и чипсами)))

        Кстати на счет качества кода, дело в том что простому обывателю может показаться что код идеален, т.к. он в нем мало что понимает даже если и знает основы программирования приложений! Но более менее опытному профессионалу многие вещи очевидны и вот тут и возникает такой момент как «УУУУ, как всё запущено, нет ну так программировать нельзя» и всё в этом духе.

        Я лично код Василия не смотрел и к тому же не являюсь профи, поэтому ничего сказать не могу по существу.
          Виталий Батушев
          24 февраля 2013, 06:56
          0
          Дело, по-моему, не в идеальности/неидеальности кода, а есть чему поучиться в этом коде или нечему там учиться. Мне есть чему поучиться — я за этот год реально продвинулся в своем развитии, разбирая для себя код Василия, потому как не люблю по пустякам дергать людей. А так и разобрался и поучился, а учиться — мегавыгодное вложение, ведь учишься один раз, а пользуешься всю жизнь.
          Кроме того, вот, скажем, я не последний человек в допечатной подготовке и дай мне любой, подчеркиваю, любой макет — я найду и ошибки, и недочеты, и откровенную лажу. Но абсолютно уверен, что другой специалист, глядя на мои макеты, тоже может найти нечто, что противоречит _его_ принципам и подходам.
          Да, собственно, это касается какой угодно деятельности.
          Тот же Николай пишет много, копает всякое, но я читаю и не знаю, к какому месту мне приложить выложенные им знания. Нет, наверное, я не дорос, пусть так, может, это программирование высокого полета. Супер. Выйду на пенсию, обязательно почитаю, укрывшись пледом и попивая Cuba Libre, но сейчас мне нужны а) решения, которые я могу применить, б) решения, которые помогали бы мне взбираться на вершину знания и видеть дальше, и мочь больше. Про зарабатывать больше и проще из скромности не упоминаю.
          Всё, надо себя останавливать, а то я так могу часами писáть :)
            СикретНаме
            24 февраля 2013, 07:16
            0
            Вы очень точно выразились об изысках Николая — «не знаю, к какому месту приложить» — кратко, ёмко и по существу.
    СикретНаме
    24 февраля 2013, 07:28
    0
    У меня галюцинации, я чего-то не знаю/не понимаю, или это то, что я думаю?: modxlessons.ru/ (смотрим даты, смотрим whois итд)
      Василий Наумкин
      24 февраля 2013, 08:16
      0
      А что не так?

      У него еще и домен под магазин зарегистрирован — modxstore.ru
        СикретНаме
        24 февраля 2013, 08:18
        0
        Возникло ощущение, что у Вас украли идею давать уроки — меня параноит?
          Василий Наумкин
          24 февраля 2013, 08:31
          0
          Нет, конечно. Только я могу воровать идеи, у всех остальных они уникальны.

          А если серьезно, то просто сравни с agel-nash.ru — совсем другой уровень исполнения.

          В любом случае, я такими уроками не занимаюсь, просто нет времени. Если что и будет в будущем — то на bezumkin.ru.
            СикретНаме
            24 февраля 2013, 08:46
            0
            Тогда, надо полагать, ваш карман утяжелили звонкими монетами, раз нет ссылки на Вас?
              Василий Наумкин
              24 февраля 2013, 08:55
              0
              На modcoach всё есть, смотри в футере.

              Стас, ты много обращаешь на это внимания. Идея проводить уроки, изначально, была Евгения Борисова, он же давно закупил для этого домен.

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

              Евгений, кстати, первым делом, перенес проект на Evolution, и он полностью работает на его коде. Там и комментарии свои есть, и вообще, всё весьма круто.

              Так что, мне никто ничего не должен, но спасибо за беспокойство =)

                СикретНаме
                24 февраля 2013, 09:09
                0
                Василий, ты, похоже, или проспал (и в прямом и переносном) :) или недопонял причинно-следственную )) Поясню, о чём я. Всё намного веселее)

                Ты можешь как угодно занижать значимость «импульса», но факты — упрямая штука — в идеологи «замута» ты входил. Это факт номер раз.
                Сайтец по ссылочке, которую я дал, совсем свеженький, как и посты на нём (и не только нём, но и некоторых других ресурсах). Это факт номер два.
                Тебе на известном нам ресурсе высказывались претензии по поводу неупоминания, использования чужого итд. Это факт номер три.
                Имелись и утверждения об обладании некоторыми совестью и честью. Факт номер четыре
                Я там написал от себя, что думаю по поводу переписки всей той. Это факт номер пять

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

                П.С.
                Никаких ассоциаций с Евгением у меня и не бродило)))

                П.П.С.
                А беспокойство, если так можно выразиться, да, есть. Я в своём комменте даже прямым текстом написал — твои разработки и иной раз подсказки помогают мне (и очень многим) денежку зарабатывать, а пространные теоретические размышления некоторых «обо всём понемногу» и АМБАССАДОРСТВОВАНИЯ всякие там — нет. Я не люблю, когда совсем уж откровенно фуфел гонят. Со мной такие номера вообще не прокатывают. И в этот раз «ошалев от потока ереси», я решил поучаствовать. От себя и для себя, не более того.
                  Василий Наумкин
                  24 февраля 2013, 09:18
                  0
                  Спасибо за поддержку, но вся эта ситуация заставляет меня только поменьше выступать и побольше работать.

                  Та что, все в плюсе.

                  А если становится грустно я просто смотрю вот сюда — modx.com/extras/author/bezumkin2 =)
                    СикретНаме
                    24 февраля 2013, 09:43
                    0
                    Выступать можно и нужно, вспомните баталии на заре нета по поводу методов/протоколов передачи данных, если мне не изменяет память. Или чуть ли не эпохальное Таненбаум-Торвальдс. О чём и к чему я, вполне понятно.

                    П.С.
                    +100500 на ссылку )))
      Виталий Киреев
      24 февраля 2013, 08:59
      0
      Выглядит впечатляюще.
        Алексей Добряков
        24 февраля 2013, 16:06
        0
        Это проста оху… но это шедевр, всех больше нравится что можно убрать поля которые не нужны что бы клиенту не объяснять это не трогай, то не трогай и т.д. супер Василий ты лучший!!!
          Богдан
          24 февраля 2013, 17:55
          0
          Круто, Бро, выглядит просто потрясающе. Радует возможность менять цену и др. параметры сразу в таблице с товарами, без необходимости открывать страницу редактирования товара. До этого приходилось делать плагин для фронтэенда, чтобы менять цены прямо с фронтеэнда, но теперь это просто можно делать в админке. Василий, будет ли из коробки возможность убрать из таблицы с товарами в админке определенные колонки, например вес или артикул?

          Читал вчера бред от f1losof, человек не в адеквате вообще, то ли ему зависть затмила разум… Короче раз завидуют, значит движешься в правильном направлении. Успехов!
            Богдан
            24 февраля 2013, 18:17
            0
            На свой вопрос нашел ответ. В настройках можно указывать поля для таблицы товаров. Супер!
            Василий Наумкин
            24 февраля 2013, 18:18
            0
            Василий, будет ли из коробки возможность убрать из таблицы с товарами в админке определенные колонки, например вес или артикул?

            Конечно, таблица кастомизируется.


            В документации это уже описано.
            Галич Сергей
            25 февраля 2013, 03:31
            0
            все очень збс!) ждем тогда полной бетки, чтобы обкатать)

            насчет остатков интересно было сделано в visioncart,
            там к продукту можно было создать его копии ( грубо говоря дочерние продукты ),
            с разными наборами доп. полей.
              Мордынский Николай
              25 февраля 2013, 10:44
              0
              modx.com/extras/package/shopmodx

              Улыбнуло

              Надеюсь в конкуренции родится лучшее)
                Василий Наумкин
                25 февраля 2013, 13:20
                0
                Да какая тут конкуренция?

                Я пишу компонент под заказ. Заказчик ставит задачу, я нахожу решения, получаю оплату.
                То, что сообщество получает в итоге новый компонент — побочный эффект моей работы и доброты заказчика.

                Видимо, нужно подробно написать, зачем и почему мы создаём компоненты, а то многие не понимают.
                Антон ХайЭксель
                25 февраля 2013, 13:16
                0
                Супер. Подумалось начать проектик на нем. обновится ли бетка без потерь в последствии на стабильную версию?
                  Василий Наумкин
                  25 февраля 2013, 13:17
                  0
                  Да.

                  Только, скорее всего, нужно будет поправить дефолтные чанки и системные настройки — они не обновляются при установке пакета.
                  Перетягин Илья
                  27 февраля 2013, 01:35
                  0
                  Василий, огромное спасибо за прекрасный продукт!
                  При первом знакомстве с продуктом — ощущение некого блаженства )))
                    Konstantin Krasavin
                    27 февраля 2013, 12:30
                    0
                    Интересно а реализация фильтра по доп. полям будет?
                      Галич Сергей
                      28 февраля 2013, 15:19
                      0
                      вобщем, я попробовал в сниппете «msProducts»
                      по цене сделать фильтр,
                      $where['Data.price:>='] = 500;

                      весьма странную ситуацию наблюдаю, например есть товар ценой в 20 тыщ, он считается меньше чем просто 500,
                      а если выбрать тыщу как минимум, например, то больше)
                      по первой цифре чтоли считает?
                      это какая то особенность пдо-тулс? или просто баг минишопа, пока что?
                        Василий Наумкин
                        28 февраля 2013, 16:24
                        0
                        Цена хранится в varchar — это я пошутил, конечно.

                        Исправляю, спасибо!
                          Галич Сергей
                          01 марта 2013, 15:30
                          0
                          )) да бывает) и еще вопросик)

                          я так понял теперь же фильтры будут искать по полям color/size
                          типа так:
                          $added_where['Data.color:LIKE'] = '%'. substr( json_encode( 'Белый' ), 1, -1 ) .'%';
                          ? просто я так попробовал опять в том же сниппете, не хочет работать)
                            Василий Наумкин
                            01 марта 2013, 16:05
                            0
                            Фильтров пока нет, потом буду переписывать mFilter.

                            Именно для поиска все json поля товара (color/size/tags) автоматически копируются в таблицу msProductOption — так что надо искать по ней и выбирать нужные id товаров.
                              Галич Сергей
                              01 марта 2013, 16:07
                              0
                              понятно)
                                Галич Сергей
                                01 марта 2013, 17:16
                                0
                                слушай,
                                я тут подумал, может лучше сделать еще промежуточную таблицу?
                                в которой будут хранится основные параметры типа color/size, только в еденичных экзэмплярах,
                                а в msProductOption только соответствие ключей товара/и ключа промежуточной таблицы

                                по сути когда продуктов будет очень много, будет притормаживать, как ты думаешь?
                                  Василий Наумкин
                                  01 марта 2013, 17:43
                                  0
                                  Нет, не будет тормозить. Таблицы ключ\значения очень быстренькие.

                                  А лишний join при каждой операции нафиг не сдался. Да и вообще, всё это фигня по сравнению с тормозами карты ресурсов и php.
                                    Галич Сергей
                                    01 марта 2013, 18:10
                                    0
                                    смотри сам.
                                    промежуточную таблицу по сути можно хранить где-то в файле, вместо джойна.
                                    по сравнению конечно)
                          Андрей Селивёрстов
                          01 марта 2013, 17:28
                          0
                          Василий, а как будет организован экспорт/импорт? Я имею ввиду JSON поля товара, мультикатегорийность и большое число вложенных категорий/подкатегорий?
                          Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                          40