Drupalife Store - легковесный и простой дистрибутив интернет-магазина

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

После месяца, а то и двух, я все же решился анонсировать вам свою сборку интернет-магазина на базе Drupal Commerce. Работу над ней начал примерно под конец января, и не спеша делал и вот уже сейчас есть версия, которая безупречно устанавливается, разворачивает весь функционал и реально работает. Т.е. даже годится для продакшена.

Почему я сделал сборку и какие ставил цели

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

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

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

С первым я знаком с момента выхода самого drupal commerce, ведь он был его первой демкой и первым дистрибутивом, при всем при этом он еще и официальный. Но как-то у меня с ним не срослось, сколько я не пробовал, никогда (я не вру) он не устанавливался до конца без ошибок. Постоянно прерывался на какой-либо операции и все шло в тартарары. Мне это, разумеется, не понравилось и я пошел к другому собрату — Commerce Box.

Commerce Box делают наши друзья из Украинского сообщества. Скажу честно, я её не устанавливал, я читал отзывы о ней и смотрел 2, а то и 3 доклада от самих же разработчиков. Они сами говорят что там сейчас полнейшая Ж, устанавливается порядка 300 модулей (!), хотя по демо-сайту я не особо понял, для чего там такое количество модулей. Я приверженец делать сайт с минимум модулей. Так вот, такое количество модулей, плюс то что сейчас они его координатно перепиливают и неизвестно когда допилят, и допилят ли вообще тоже как-то скинуло его из моего видения и я начал гнуть свою палку.

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

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

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

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

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

Установка

Установка абсолютно ничем не отличается от стандартной. Вы качаете дистрибутив, и в момент установки просто появляется новый пункт.

После выбора дистрибутива у вас появятся новые этапы установки и выбор языка. Так как в первую очередь сборка на Россию и страны СНГ, то я залил полный файл переводов на Русский язык всего функционала магазина и его интерфейса.

Как вы можете заметить я вывел здесь предупреждение, и оно тут не спроста. В момент установки профиля, друпал просит единый файл переводов, в скупе с переводами для комерца и прочих модулей, выходит файлик размером в 53 000 строк переводов. Как вы могли уже догадаться, это очень прилично, и операция по импорту такого количества переводов в один поток занимает 20-30 минут на достаточно уверенном компьютере. Поэтому, если вдруг вы выбрали русский и импорт языка стоит на 0%, не пугайтесь, он импортирует и потом сразу станет 100%. Самый простой и правильный вариант указан в этой самой подсказке. Достаточно установить на английском, а затем при помощи модуля перевести его на русский, а в дальнейшем этот модуль и вовсе сам будет подкачивать обновления для переводов. Я уже серьезно задумался добавить его к сборке и подключать его функционал на момент установки в обход стандартным языковым импортам.

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

Пока что данный этап не особо напичкан возможностями, да и многого не нужно. Тут всего два раздела:

  • Настройка поиска:

  • Стандартный поиск Drupal, тут и рассказывать нечего.

  • DisplaySuite Search. По-сути он ничем не отличается от стандартного, разве что его можно темизировать. И если у вас в планах использовать стандартную тему, то лучше выбрать его. Результаты поиска будут оформлены более информативно. Например, у товаров в результате выдачи появятся цена, фотография и кнопка добавить в корзину, а не просто заголовок и краткое описание как если бы использовали стандартный поиск.
  • Насртойка текстового редактора:

  • Также, по умолчанию выбран стандартный для друпала вариант — никаких редакторов.

  • CKEditor — известный почти всем и каждому редактор. Пока что я добавил только его. Выбор тут просто очевиден, мне нравится, у меня есть статьи про его настройку, он в ядре Drupal 8. С другими редакторами не знаком, но возможно погляжу в сторону BUEditor и TinyMCE как вариантов выбора.

После этого перед вам будет установленный сайт.

Дизайн и оформление

Как я уже писал, я сделал тему для дистрибутива, поэтому вас встретит не бартик, а соответствующая тема.

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

Очень много внимания уделено различным частям темы. Например табы, пейджеры, бутоны и элементы форм, все темизировано, вплоть до результатов выдачи от поиска (при выборе DisplaySuite Search). Вот например тот самый поиск.

Всё это оттемизированно при помощи сабтемы zen и модуля Display Suite. Поэтому кто имеет опыт в верстке, легко сможет заменить оформления любой части сайта на свою.

Что уже есть

Так как это все сделано на Views, вы легко сможете откорректировать до нужного вам вида, добавить фильтры и т.д.

Внутри товара никаких излишеств, только необходимая информация.

Данная страница, вероятнее всего в последующих версиях получит новые информационные блоки, например, “вы недавно смотрели” или “смотрите также”.

Страница контактов выполнена в очень простом виде.

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

В дальнейшем, планирую сюда добавить возможность загрузки фонового изображения для сайта, возможно более тонкую настройку цветов а не одну общую и настройку соц. сетей.

SEO

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

Так что если на ваш сайт кидают ссылку в соц. сетях, они автоматически подцепят нужные данные, ведь уже все настроено!

URL вы уже могли увидеть из скриншотов выше, а вот так генерируются хлебные крошки.

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

Подводя итоги

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

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

Демо и загрузка: Drupalife Store

Оставайся на связи

Будь всегда в курсе новых материалов! Подписывайся на каналы\паблики\рассылки чтобы получать оперативные оповещения.

DrupalCamp Краснодар 2017

DrupalCamp — важная часть жизни Друпал-сообщества, способствующая его сплочению, привлекающая внимание IT-сообщества к Друпалу и общества в целом к разработке приложений и сайтов, а также к смежным сферам.

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

Интересно будет всем, ждем вас 16 декабря в Краснодаре!

Официальный сайт мероприятия

Комментарии

А
Александр 25.02.2014 - 00:02

Привет, Никита! Спасибо, очень интересный опыт - взял на заметку.
И хоть интернет-магазины не входят в сферу моих коммерческих интересов, но когда возьмусь поизучать их, то начну с твоей сборки 100%!

Ответ на от Александр (не проверено)

N
Niklan 25.02.2014 - 01:02

Пожалуйста. Буду рад если кому-то сборка поможет.

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

Ответ на от Niklan

Д
Дмитрий 16.07.2014 - 09:07

Спасибо Вам за вашу сборку )) Реально большую работу сделали... и самое главное нужную )) В сравнении с  тормозным и достаточно запутаным Commerce ваша сборка просто летает )

Но вот при установке drupalife_store-7.x-1.0-beta3  повылазили ошибки (привожу только одну):

  • Warning: include(www/themes/seven/templates/fields/field--type-checkbox.tpl.php) [function.include]: failed to open stream: No such file or directory intheme_render_template() (line 1517 of www\includes\theme.inc).

Отвалились чекбоксы в админке. Не стал особо разбираться пофиксил так: скопировал из папки темы магазина папку  templates с подпапкой fields и добавил их в папку темы админки (/profiles/drupalife_store/themes/drupalife_store/templates/  ----->/themes/seven/)

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

M
Mr. Lulzwut 25.02.2014 - 09:02

Привет! Приятная получилась тема, спасибо за большой проделанный труд!

С
Сергей 25.02.2014 - 11:02

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

А
Артур 26.02.2014 - 04:02

Понравилась! Обязательно установлю!

Р
Роман 26.02.2014 - 13:02

Добрый день! Хорошая сборка, но очень сложно ее настраивать пустую. Не могли бы вы выложить ее в том виде в котором она стоит на демо-сайте?

Ответ на от Роман (не проверено)

N
Niklan 26.02.2014 - 13:02

В чём сложность? На демо-сайте отличий никаких нету. Она просто наполнена товарами, категориями и новостями, всё!

Ответ на от Роман (не проверено)

N
Niklan 26.02.2014 - 16:02

Потомучто, по каким-то причинам не подключилась тема seven из ядра. Перекачайте архив, возможно повредились файлы.

i
iGift 26.02.2014 - 16:02

Не открывает:

Этот аккаунт заблокирован

Свяжитесь с отделом оплат или технической поддержки как можно скорее.

Ответ на от iGift (не проверено)

N
Niklan 26.02.2014 - 17:02

Ой! Забыл бабла закинуть на хостинг. Ща оплачу.

Ответ на от Niklan

i
iGift 26.02.2014 - 17:02

Слушайте Niklan, вы просто гений!

Отличная работа!

Всем советую!

Буду держать Вас в списке разработчиков первым!

Ответ на от iGift (не проверено)

N
Niklan 26.02.2014 - 18:02

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

S
Serezh 26.02.2014 - 18:02

Блоки не выводит( почему?

S
Serezh 26.02.2014 - 18:02

А как на главную выводить блоки?

S
Serezh 26.02.2014 - 18:02

Теперь блоки выводит, но когда пишу - <front> то не выводит блок на главную

Ответ на от Serezh (не проверено)

N
Niklan 26.02.2014 - 18:02

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

Ответ на от Serezh (не проверено)

N
Niklan 26.02.2014 - 18:02

Ага, выше отписал. Если очень надо я могу хотфикс написать хоть сейчас.

S
Serezh 26.02.2014 - 18:02

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

Ответ на от Serezh (не проверено)

N
Niklan 26.02.2014 - 18:02

По поводу хотфикса ждите, скоро запилю.

По поводу слайдера. В КОРЕНЬ_ДРУПАЛА/profiles/drupalife_store/themes/drupalife_store/page.tpl.php с 87-101 строки отвечают за вывод содержимого на главной. Там можно подкорректировать. В идеале конечно создавать свою сабтему на основе темы дистрибутива и уже у себя переопределять шаблоны, а то со следующим апдейтом диза все вернется на свои места.

Ответ на от Serezh (не проверено)

N
Niklan 26.02.2014 - 19:02

Фикс готов. Пока можно скачать на гитхабе https://github.com/Niklan/drupalife_store - там справа будет кнопка скачать в zip. Заменить старое на новое и все будет ок.

Д
Денис 28.02.2014 - 13:02

А функциональность "купить в 1 клик" там есть? Это очень важная вещь с маркетинговой точки зрения.

А
Андрей 01.03.2014 - 21:03

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

Ответ на от Андрей (не проверено)

N
Niklan 01.03.2014 - 21:03

Где ошибки? Где еррорит? Как я помогу если не знаю в чем проблема.

Что за хостинг?

Детали, нужны детали.

Ответ на от Гость (не проверено)

N
Niklan 02.03.2014 - 15:03

Вы устанавливаете на русском языке? Если да,  то я в статье писал что переводы ОЧЕНЬ сложная операция в момент инстала и длится порядка 20-30 минут на слабых или не настроенных компьютерах\серверах. Вероятнее всего ваш сервер достаточно слабый для такой операции, это уже привычная практика для друпал-сайтов. Не спроста существуют специализирующиеся на друпале хостинги.

Вот посмотрите как должно быть: http://simplytest.me/project/drupalife_store/7.x-1.x Это совершенно независимая песочница, но с настроенным сервером для друпала (примерно как на друпалхостинге, если судить по скорости). Там сборка прямо в момент запуска песочницы качается с drupal.org, так что там вообще никаких обманов. Если там не взлетит таких еррор, а их там с вероятностью 100% не будет, то стоит задуматься о хостинге своем.

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

Для начала попробуйте на денвере\хостинге (хотя денвер я крайне не рекомендую, если вы его не затачивали руками под друпал) установить англоязычную версию. Если она установится, то потом просто переведите на русский штатными средствами. Если и она вышебет, то тут проблема в серввере, с вероятностью 99%. Я бы вообще порекомендовал для разработки\теста друпал-сайтов на локалке использовать Acquia Dev Desktop, это по сути тот же денвер но заточеный под друпал, проивзодительность вырастет раз в 10, если не больше, что покажет в свою очередь, как важно имено настроенный сервер, а также позволит установить сборку.

P.s. все равно, если сервер не очень сильный и надо быстро развернуть сборку, то проще ставить на английском а потом переводить. Так выйдет в разы быстрее, минут 15-20 сэкономите.

P.p.s. Если вылезут какие-либо ошибки, кидайте, тогда я уже буду искать проблемы в коде, но они мловероятны. Вы единственный пока что кто обратился с подобной проблемой, живые сайты уже кстати в сети заметны на сборке, поэтому я думаю что это не массовая проблема а единичная. Поэтому чтобы я мог помочь вам, мне нужно больше сведений. Как вариант, можете скинуть (когда вышебет страница не найдена), последние логи апача. Вероятнее всего там будет истечен лимит на исполнение скрипта.

Ответ на от Niklan

Г
Гость 02.03.2014 - 16:03

да денвере такая же песня, это я сделал в первую очередь. И еще, когда сайт установлен он отображается полностью как на анонсе, или нужно все блоки включать?

Ответ на от Гость (не проверено)

N
Niklan 02.03.2014 - 17:03

Всё настроено, нужно лишь добавить категории и товары\новости. Все встанет как нужно и куда нужно ;) Т.е. блоки уже на местах.

Да денвер вообще не показатель. Баганая фигня из коробки. На нем чистый друпал то умудряется лагать о каких сборках магазинов речь. На Acquia dev desktop попробуйте
 

Ответ на от Niklan

Г
Гость 02.03.2014 - 21:03

установил на Acquia dev desktop, встало без ошибок, не пойму как остальное запустить, товар добавил, но что то не получилось..

 

Ответ на от Гость (не проверено)

N
Niklan 02.03.2014 - 21:03

Надо добавлять карточку товара /node/add/product-display а не товар в магазин. Просто добавление товара - это на склад, который видят только админы, а вот карточка, уже выводит товар со склада для пользователей. Во время добавления карточки, также можно добавить на склад или со склада один, или несколько товаров. Это уже вам надо поизучать Commerce, в особенности про отличите товара на складе, и товара в магазине. Если очень коротко, то товар для юзеров - нода (Карточка товара, что в первом предложении) в которую кидают товары со склада и оно собирается в один товар.

Ответ на от Гость (не проверено)

N
Niklan 02.03.2014 - 21:03

На русском, к сожалению ничего порекомендовать не могу по Commerce. Можно поискать на podrupalim или еще где, а так не встречал, изучал по Lynda.com, но там на английском видеоуроки.
 

Г
Гость 03.03.2014 - 13:03

Не работает в песочнице

Ответ на от Гость (не проверено)

N
Niklan 03.03.2014 - 13:03

Ага, тоже заметил. Но с drupal.org всё качается и удачно работает.

Та песочница не выкачивает весь архив с орга, она тянет из репозитария проекта, а там только профиль. Разумеется этого мало и он начинает по make файлу собирать сборку и выкачивать все необходимое, модули, темы, ядро, но где-то спотыкается и не идет дальше.  Но это сугубо их проблема, я думаю это связано как-то с их активностью по поводу Drupal 8, который сейчас там тоже не ставится из-за старой версии PHP. Возможно чего задели когда делали и какая-то функция загрузки не отрабатывает. Так что, к сожалению тут помочь ничем не могу, только ждать и верить ;)
 

Г
Гость 03.03.2014 - 16:03

На Denwer ставлю данную сборку и при выборе русского языка выдает:

Fatal error: Maximum execution time of 30 seconds exceeded in Z:\home\kirgof.ru\www\includes\file.inc on line 2072

Ответ на от Гость (не проверено)

N
Niklan 03.03.2014 - 16:03

На данный вопрос есть ответ в самой статье и парой комментариев выше. Я уже сказал, что денвер не заточенный под друпал не годится для него. Лучше юзать Acquia dev desktop, который из коробки заточен под друпал. В противном случае я ничем помочь не могу, это уже проблемы настройки вашего локального сервера, он просто не успевает импортировать перевод. Как бороться также указано и в статье и парой комментариев выше.
 

M
MadMax 04.03.2014 - 08:03

Нашел незначительный баг:

На странице admin/appearance/settings/drupalife_store не срабатывает "Установка цвета" почему-то, пробовал менять версии jquery_update и отключать/сбрасывать кеш, все бес тольку, вручную на круге цвет задается, а из селекта не подхватывается почему-то

Ответ на от MadMax (не проверено)

Р
Рустем 30.03.2014 - 20:03

Сборка версии от 2014-Mar-11 на странице  admin/appearance/settings/drupalife_store  не срабатывает "Установка цвета" .

Это ошибка весрии? или что-то у меня не так?

 

M
MadMax 04.03.2014 - 08:03

Еще (незнаю насколько актуально для вас, но для меня - да), немного ползет верстка в admin_menu.

Чтоб поправить достаточно вот это прописать в css темы:

#admin-menu-menu{
  float:left;
}

Если честно, не уверен, что это баг сборки, но все же =)

Г
Гость 04.03.2014 - 10:03

Подскажите дураку почему не запускается мастер установки друпал на Acquia dev desktop.

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

Добавить комментарий

Содержимое данного поля является приватным и не предназначено для показа.