Oops... your message was not sent

Your message has been successfully sent

тематические истории, основанные на опыте компании JetRuby
Электронная коммерция

Spree 3.0 — обзор обновленной версии

Spree — это популярный open-source фреймворк на Ruby on Rails, предназначенный для электронной коммерции и создания интернет-магазинов. Совсем недавно вышла новая, третья версия этой платформы, и мы уже успели её опробовать. Предлагаем вашему вниманию обзор Spree 3.0 с описанием новинок и самых интересных фишек.

Что нового в Spree 3.0?

    1. Front- и Backend теперь используют bootstrap из коробки;
    2. Поддержка Rails 4.2;
    3. Добавлена поддержка Google Analytics Enhanced Ecommerce;
    4. Прочие изменения.

Предыдущие релизы Spree (2.2.11, 2.3.9 и 2.4.6) в основном были сосредоточены на починке багов, связанных с предыдущими обновлениями и безопасности Spree. Работа над версией 3.0 получилась куда более продуктивной. Изменения — налицо. И каждое из них достойно отдельного описания.

Bootstrap

Самое заметное с визуальной точки зрения изменение — это Bootstrap из коробки вместо фреймворка Skeleton, который использовался ранее. Разработчики перелопатили, как frontend, так и backend, сохранив при этом бОльшую часть структуры сайта. Таким образом, обновление markup’а с предыдущих версий будет происходить максимально просто. Кстати, в предыдущих версиях тоже можно использовать Bootstrap, но для этого потребуется добавить гем:

gem ‘spree_bootstrap_frontend’, github: ‘200Creative/spree_bootstrap_frontend’

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

01

Поддержка Rails 4.2

Одной из ключевых особенностей нового релиза является поддержка Rails 4.2. Это создает почву для будущих улучшений, ведь 4.2 — более стабильная, безопасная и быстрая версия, обеспечивающая улучшение любого проекта. Кроме того, она располагает интересными новыми фичами, такими как Adequate Record, Active Job и другими, также использующимися в Spree 3.0.

Здесь стоит сделать небольшое отступление.

Отступление

Некоторое время назад на GitHub-странице Spree сообщалось о том, что проект больше не поддерживается. Это было связано с тем, что его создатели прекратили разработку новых версий платформы. Вполне естественно, что сразу же поползли слухи, будто Spree “умер” и о новых релизах можно забыть. Возник вопрос — стоит ли в нынешней ситуации связываться с этим фреймворком? Как стало известно чуть позже, слухи о смерти оказались явно преувеличенными. Поэтому вопрос об актуальности Spree благополучно закрылся.

Чтобы пролить свет на ситуацию, давайте разберемся. Вся история с закрытием проекта была связана с тем, что на основе текущей, 3-ей версии Spree, началась разработка нового фреймворка для создания интернет-магазинов, который получил название Solidus.

Solidus — это форк Spree 3.0, open-source платформа, предназначенная для e-commerce.  Основная цель этого проекта — увеличение стабильности API, безопасности и использование в высоконагруженных интернет-магазинах. В ближайшие планы его разработчиков входит исправление критических ошибок.

В то же время представители Spark Solutions и Vinsol уже собрали команду для продолжения активной разработки Spree. Они анонсировали новую roadmap и регулярно выпускают обновленные версии платформы (на момент написания статьи уже вышла v.3.0.8). Среди основных целей команды разработчиков:

  • поддержка текущего сообщества и интернет-магазинов, созданных на Spree;
  • поддержка Spree 3.0 минимум на протяжении 2-х лет с момента релиза
  • выпуск новых версий;
  • максимально быстрый выпуск Spree 3.1;
  • работа над Spree 3.2, которая будет совместима с текущими версиями Ruby 2.3 / Rails 5;

В ближайшие планы также входит работа над следующими версии. Даты их выпуска будут названы позднее. По активности разработки Spree как минимум не уступает Solidus:

Наряду с этим, стоит отметить, что для Spree 2.x-проектов, которые слишком сильно кастомизированы для миграции на 3-ю версию, разработчики самостоятельно рекомендуют воспользоваться платформой Solidus. В то же время, если вы решили осуществить такую миграцию, сообщество готово предоставить комплексную консультационную поддержку.

Поддержка Google Analytics Enhanced Ecommerce (Расширенная Электронная Торговля)

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

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

Для подключения функции необходимо обновить Google Analytics аккаунт до Universal Analytics.

Прочие изменения

  • Удаление поля «Промо код» со страницы карточки. Это предотвращает проблему использования промо кода до завершения заказа, а также устраняет возможность активировать бесплатную доставку товара перед выбором способа его транспортировки.

02

  • Обновлене интерфейса админки. Она стала работать быстрее.

03

  • Продолжение работы над тем, чтобы некоторые вещи, которые реализуются на уровне Rails application, делались именно там, а не в Spree (например, определение environments и определение SSL);
  • Обновление гема jquery-rails до версии 4.1.

Процесс обновления платформы до версии Spree 3.0

Как это происходит? Первым делом следует вручную проверить, что гемы-расширения для Spree будут работать с 3-ей версией. Обычно расширения, совместимые с ней, имеют ветку с названием “3-0-stable” на Гитхабе.

Кроме того, потребуется обновить Rails как минимум до 4.2.0.

gem ‘rails’, ‘~> 4.2.0’

Гему “spree” также лучше указать ветку 3-0-stable:

gem ‘spree’, github: ‘spree/spree’, branch: ‘3-0-stable’

Обновляем spree командой bundle update spree.

Затем копируем миграции из Spree и прогоняем их:

rake railties:install:migrations

rake db:migrate

Вот и все.

Поддержка Spree 3.0 спришными гемами

На одном из своих проектов мы использовали определенный набор расширений для Spree.

Название гемаURLКраткое описание
spree_gatewayhttps://github.com/spree/spree_gatewayРасширение для Spree Payment Method Gateways. Различные методы оплаты в вашем магазине
spree_auth_devisehttps://github.com/spree/spree_auth_deviseОсуществляет аутентификацию в Spree, используя Devise
spree_i18nhttps://github.com/spree-contrib/spree_i18nИнтернационализация Spree
spree_static_contenthttps://github.com/spree-contrib/spree_static_contentСоздание статических страниц из админки магазина
spree_reviewshttps://github.com/spree-contrib/spree_reviewsФункционал для написания отзывов, выставления рейтинга продукта, лайки отзывов
spree_admin_roles_and_accesshttps://github.com/vinsol/spree_admin_roles_and_accessЭто расширение построено на CanCan. Динамически добавляет роли пользователям и устанавливает

В таблице приведены самые распространенные гемы, и каждый из них поддерживает Spree 3.0.

Вывод

Spree is back! Не стоит бояться строить интернет-магазины на основе этой платформы. Слухи о том, что она не имеет будущего успешно развеяны. Проект развивается и полнится амбициозными планами.
Если же вам нужно сделать upgrade интернет-магазину, который уже работает на Spree 2.x имеет смысл посмотреть в сторону Solidus. Тем не менее, spree community вкладывает колоссальные усилия в развитие проекта и выражает готовность прийти на помощь в slack public channels, Spree mailing lists или на GitHub страницах гемов. Кроме того, обратите внимание на Trello-доску с голосованиями и комментированием roadmap features.

department
Статью подготовил
Отдел Электронной коммерции
Команда имеет богатый опыт в разработке онлайн-решений для бизнеса. Мы используем только самые передовые технологии из области электронной коммерции.
New Articles