Первый серьёзный магазин на MS2

Давно чешутся руки написать про магазин, который стал причиной создания miniShop2.

Именно при разработке этого сайта на MS1 мы поняли, что он совершенно не тянет. Ну, то есть как? Конечно, задача была выполнена, функционал работал, даже более-менее сносно, но Simple Dream были недовольны результатом.

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

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

Ну вот, теперь можно показать, что получилось в итоге - Интернет магазин для счастливых семей. Сайт, который мы сделали дважды: на miniShop1 и miniShop2.

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

Фильтры везде

Мало кто в курсе, что фильтры для поиска mSearch тоже были созданы для этого магазина. Отсюда их некоторая сложность в эксплуатации, ибо требования выдвигались серьёзные:

  • Поиск и вывод товаров где угодно

  • Фильтрация результатов по любым параметрам

  • Параметры строятся динамически, в зависимости от найденного

То есть, нельзя заранее сформировать и закэшировать фильтры - они должны строиться каждый раз заново, в зависимости от найденных товаров.

Отдельно хочу отметить, что все товары магазина выводятся через эту систему. То есть, фильтры и в поиске, и в категориях, и в акциях и вообще везде.

Параметры и учет наличия

У товаров магазина есть очень много связей и зависимостей.

  • Куча возможных размеров

  • Варианты цвета

  • Компллекты

С размерами пришлось повозиться особо. Во-первых: их просто много, во-вторых: они меняются от типа товара и в третьих: они могут влиять на цену.

Кроме того, учитываются остатки, да еще и с резервированием.

Особая корзина

Класс корзины используется собственный, ибо у него особые правила:

  • Каждый товар в корзине - отдельная позиция

  • Товар можно копировать, прямо в корзине, при этом проверяются его остатки и резерв

  • Можно менять цвет товара, опять же с проверками

  • Товар не удаляется из корзины сразу, покупатель может "передумать"

Создание заказа и оплата

Тут тоже свой класс, основное отличие - правила валидации полей и скрытие\показ нужного в зависимости от способа доставки.

Методы оплаты не вызываются сразу после заказа. Нет, ссылка на оплату приходит только при выставлении заказу "проверен" - тогда покупатель может кликнуть и перейти на оплату заказа выбранным способом.

Понятное дело, что функциональность этих систем расширена, как это предусмотрено архитектурой MS2.

Бренды

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

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

Дизайн и юзабилити

Тут моей заслуги нет никакой - удобство покупателя и внешний вид целиком работа специалистов Simple Dream. Проверялась каждая табличка, каждая картинка, каждая кнопочка.

Учитывая, что проект в разработке уже долгое время, многое неоднократно менялось и перекраивалось (да и сейчас еще вносятся правки). Похоже, этот процесс невозможно закончить, можно только остановиться.

В любом случае http://mamaboutique.ru выглядит на 5 баллов! Кто не согласен - прошу в комментарии.

Заключение

Вся эта красота сделана на основе miniShop2 и других стандартных компонентов. Нет никаких хаков ядра, исправления парсера, шаблонизаторов или прочей новомодной фигни. В любой момент мы можем накатить обновления движку или магазину - и ничего не сломается.

Это стандартный MODX, к которому приложили руку хорошие специалисты. Работает быстро, на мой взгляд, быстрее многих магазинов подобной сложности. Никаких перезагрузок страниц без необходимости - везде ajax.

Лично я горд тем, что принял участие в программировании этого проекта, и мне не стыдно поставить его себе в заслугу. Еще раз повторяю, моей работы там процентов на 50, остальное - это программисты, дизайнеры и менеджеры Simple Dream.

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

Ведь, программирование - это творческий процесс, который отнимает много сил и нервов, тем более, когда изобретаешь что-то новое, а не идёшь проторенной дорожкой.

На мой взгляд, круче магазина на базе MODX в РФ нет. А на компоненте miniShop2 - тем более!

Updated 25.04.2013

Гораздо более красивое описание проделанной работы от Simple Dream.

Комментарии (43)
vitaly_doshchenkoВиталик Дощенко
25.04.2013 03:22

Вася, спасибо. Действительно серьезная работа!

Виталий Князь
25.04.2013 14:49

Каков бюджет такого проекта?

vitaly_doshchenkoВиталик Дощенко
25.04.2013 16:03

Скажем так, разработка такого сайта находится в нише «от 300 000 рублей». Если есть интерес — пишите на info@simpledream.ru.

Алексей
24.05.2013 18:49

хорошая цена. какова конверсия такого магазина?

vitaly_doshchenkoВиталик Дощенко
24.05.2013 18:50

Магазин только запустился — сейчас сложно что-то сказать, увы.

Николай
25.04.2013 04:10

Это просто невероятно! Вы под ноль уделали Simpla который как мне кажется был лучшим скриптом из за своих динамических фильтров и прочего... С нетерпением жду Ваш магазин, в котором будет mFilter и прочие сладости...

Wassi Wassinen
25.04.2013 06:15

Фильтры и их скорость - потрясают. Жду магазин. :) Василий, скажи к чему готовиться: каков примерный порядок цен для подписчиков? :)

bezumkinВасилий Наумкин
25.04.2013 14:28

Вопрос сложный, пока еще не ясно, во что встанет разработка этого магазина и написание\поддержка расширений.

Лично я (лично я), думаю, что mSearch2 с фильтрами будет стоить до 3 000 рублей за первую покупку, на первый сайт, а за остальные сайты - солидные скидки.

Но это вилами на воде, как будет более понятно - напишу. И про принцип работы этого магазина тоже будет отдельная статья.

Wassi Wassinen
25.04.2013 17:57

Может быть уже можно что-то приобрести? )) С небольшими пояснениями?)) Фильтры спать не дают. :)))

bezumkinВасилий Наумкин
25.04.2013 17:59

Нет, они еще не готовы для продажи.

А чтобы приготовить - нужно доделать текущую работу, то есть - магазин.

alex.vakhitovAlex Vakhitov
25.04.2013 13:41

Классный магазин. Блин нужно будет хоть раз использовать твой miniShop. Тока глаза логотип мозолит, сделайте его с поддержкой ретины, то это уже стандартом становится, что нужно не меняющиеся картинки для ретины сохранять

bezumkinВасилий Наумкин
25.04.2013 13:44

Логотип показывается только там, где нет картинок товаров. То есть, это просто замена для "нет картинки".

Подумаю, конечно, но на MacBook Pro Retina 15 - мне не мозолит глаза, может привык просто.

alex.vakhitovAlex Vakhitov
25.04.2013 13:51

Потому что разрешение включено 1920 (: если включить лучшее для ретины то видно. У меня же тоже такой. А заметно сильно на iPad.

Офтоп. Как тебе ретина бук? Я купил как тока он появился и все немогу нарадоваться тому какой он крутой.

bezumkinВасилий Наумкин
25.04.2013 13:53

Ну, у меня максимально мелко включено, да. Иначе невозможно работать.

Привык, нравится, может позже отпишусь о впечатлениях.

Как картинку на ретиновскую подменять не знаю, ибо дефолтная выставляется на php (просто адрес, без css) и там размер экрана не определить. Так что, пока будет как есть.

alex.vakhitovAlex Vakhitov
25.04.2013 13:59

есть js библиотека, которая путь меняет картинку если ретина экран. У нас это просто стандартом в тех процессе стало, адаптивная верстка и подготовка к экранам с высоким ppi. То по статистике большой процент посещений с разных устройств с долбанутыми экранами.

alex.vakhitovAlex Vakhitov
25.04.2013 16:04

О круто ты себе лого проапгрейдил (: то смотрю что то не так на сайте стало

bezumkinВасилий Наумкин
25.04.2013 18:01

Всё руки не доходили, ты меня заставил, фактически!

alex.vakhitovAlex Vakhitov
25.04.2013 18:26

Хаха, какой я злой (:

d start
25.04.2013 14:33

Маленькая истерика: АААААААА!!!! Как так быстро?! Это невозможно просто! Кешируется вообще всё что только можно (фильтры, результаты, вывод)? Какие параметры сервера?

bezumkinВасилий Наумкин
25.04.2013 14:37

Почти ничего не кэшируется. Как вообще закэшировать поисковые запросы?

Сервер выделенный, на Hezner, баксов $80, кажется.

Все сниппеты работают на pdoTools - вот и секрет.

Александр Князев
25.04.2013 14:42

Ну вот забашлял я за супер подписку, а про pdoTools так ничего и не нашёл. Может я плохо искал? А то в коде самого pdoTools по сути ничего нет. Где магия то? В выделенном сервере за 80 баксей?

bezumkinВасилий Наумкин
25.04.2013 14:43

http://bezumkin.ru/sections/php/556/

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

На всякий случай - мой сайт не на Hezner, работает не медленнее, правда?

Александр Князев
25.04.2013 14:44

Спасибо что ткнул носом.

bezumkinВасилий Наумкин
25.04.2013 14:49

Я не знаю, как ты искал - http://bezumkin.ru/search.html?parents=0&query=pdotools - 4я ссылка.

Может, не обращаешь внимание на фильтр по разделу?

vitaly_doshchenkoВиталик Дощенко
25.04.2013 17:04

Такой сервер стоит 49$

Виталий Князь
25.04.2013 14:35

Почему disqus, а не Tickets?)

bezumkinВасилий Наумкин
25.04.2013 14:38

Когда создавали магазин, Tickets и в проекте не было.

Возможно, позже переделаем, но пока так.

Виталий Князь
25.04.2013 14:40

Сайт зачетный. Каков бюджет такого проекта?

bezumkinВасилий Наумкин
25.04.2013 14:42

Понятия не имею.

Это надо у Simple Dream спрашивать - спроси у первого комментатора.

vitaly_doshchenkoВиталик Дощенко
25.04.2013 17:06

Кому интересно — вот кейс Mamaboutique, на нашем новом неопубликованном сайте

Виталий Князь
25.04.2013 17:36

Дизайн сайта получился постым и удобным.

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

Возможно конечно когда вы опубликуете свой новый сайт это будет ...

vitaly_doshchenkoВиталик Дощенко
25.04.2013 18:16

Спасибо. Учтем ваши пожелания при релизе

gasergeГалич Сергей
25.04.2013 23:42

отличный магазин! скажи а фильтр этот, это компонент? он есть у тебя на сайте?

bezumkinВасилий Наумкин
26.04.2013 01:40

Это mSearch, немного модифицированный для поддержки MS2.

Модификация не будет доступна, и вообще - это временное решение. Позже выйдет mSearch2, который я планирую продавать.

Николай
24.05.2013 21:54

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

Сейчас перехожу на Рево, как раз из-за отсутствия нужных компонентов/модулей в Эво.

Подскажите, пожалуйста: 1) Как реализована загрузка товаров? Есть отдельный компонент или все вручную? Стоит ли ждать загрузчика к minishop? 2) Правильно понимаю, что фильтры сквозные (для всех категори одинаковые параметры/подписи к фильтрам -категория, размер, цена, и т.д)? Т.е. подпись берется из TV caption, а значения из TV value (с поправкой на свою таблицу MS) и пока нет возможности сделать разные подписи к фильтру для разных категорий (т.е. где-то вес, где-то цвет, где-то наполнитель) используя одни и те же поля у документов?

Наверное непонятно написал - можно на Мвидео посмотреть. Там для ноутбуов одни параметры (класс ноутбука), а для стиральных машин уже другие (тип загрузки).

vanchelloИван Брежнев
12.07.2013 05:16

Ошибка на странице http://mamaboutique.ru/store/discount/action.html

ВолодянВолодя
12.07.2013 05:40

и глюк на http://mamaboutique.ru/catalog/puteshestvuem-s-detmi/?ms|price=1100,6900&tv|material=100%%20%D0%BF%D0%BE%D0%BB%D0%B8%D1%8D%D1%81%D1%82%D0%B5%D1%80 - страницу если обновить - картинки пропадают. наверно из за процентов в материале... так случайно заметил)

bezumkinВасилий Наумкин
12.07.2013 07:09

А у меня всё ок, видимо от браузера зависит.

bezumkinВасилий Наумкин
12.07.2013 07:09

Спасибо, поправил!

ВолодянВолодя
12.07.2013 12:08

нет, все также... если выбрать материал-100% полиэстер и обновить страницу - то фотки пропадают и фильтр перестает работать

asxАлександр Котлов
19.07.2013 04:55

Багу нашел - http://mamaboutique.ru/catalog/podushki-dlya-beremennyix/podushki-dlya-beremennyix-i-kormleniya/theraline-170/podushka-dlya-beremennyix-i-kormleniya-dodo-copy-1.html

Там для выбора размера ничего нет, но в корзину добавлять не хочет с формулировкой - "выберите размер", что в хроме что в опере.

bezumkinВасилий Наумкин
19.07.2013 10:42

Спасибо, поправил.

born2slip
pishnaa istntome
22.11.2022 14:06
огромное спасибо! )
inetlover
Александр Наумов
14.11.2022 10:19
посмотри документацию. Спасибо, что-то она мне не нагуглилась. Это просто функции объединения для о...
bezumkin
Василий Наумкин
10.11.2022 05:46
Спасибо за поздравления!
inetlover
Александр Наумов
09.11.2022 17:08
Посмотрел в ДевТулсе свойство overscroll-behavior: none; присутствует, проверил в Chrome и Chromium ...
bezumkin
Василий Наумкин
03.11.2022 20:57
Поискать в исходниках ссылки на её адрес и поменять - скорее всего только nuxt.config.js. А зачем эт...
ni.kolokol@mail.ru
Николай Каленников
03.11.2022 19:43
Спасибо. Попробую тоже с нуля переставить
inetlover
Александр Наумов
03.11.2022 19:24
Спасибо!!! Все заработало!
bezumkin
Василий Наумкин
28.10.2022 05:23
В тексте есть подсказка // Контроллер требует новое разрешение protected $scope = 'ord...
bezumkin
Василий Наумкин
27.10.2022 13:25
Понял, спасибо!
inetlover
Александр Наумов
23.10.2022 13:33
Понял, спасибо!