Ruby on Railsで構築されているオープンソースECをインストール~起動まで試してみました

オープンソースのECの代表格としてはやはりEC-CUBEでしょうか。サーバをレンタルすればEC-CUBEも利用できるというホスティングサービスも多いと思います。

EC-CUBEはPHPで構築されていますが、その他にもPHP製のオープンソースのECはたくさんあり、しかも高機能です。

しかし、Rubyアソシエーションの協賛企業となっている我々はPHPに傾く訳にもいきません!?ので、Rails製のオープンソースのECをいくつか試してみたいと思います。
これらのソースコードを解析することによって、自社のRailsノウハウ蓄積にもつながりますので。 今回は導入を行うところまで試しますが、いずれは機能比較まで行いたいですね。

Ruby on Rails製のオープンソースECとして、今回試すのは次の3つです。


spree

まずはspreeから。
spreeはWebサイトの情報によると、45,000以上の店舗に採用されているらしいです。
Ruby on Rails製のECサイトとしてはもっともメジャーなプロダクトではないでしょうか。
今回導入した時の関連する主なソフトウェアのバージョンは下記の通りです。

  • Ruby 2.2.4
  • Rails 4.2.5
  • spree 3.1.0beta
  • OS CentOS 7
  • Database PostgreSQL 9.2

spreeの導入はgithubのサイトにある手順通りに実施しました。
手順冒頭に記述されている、

gem install rails -v 4.2.2
gem install spree
rails _4.2.2_ new my_store
spree install my_store

ではうまくいかなかったため、

rails g spree:install --migrate=false --sample=false --seed=false

で進めました。またbundlerを利用していますので、実際には次のようなコマンドで進めました。

bundle exec rails g spree:install --migrate=false --sample=false --seed=false

となります。

また、ユーザ認証機能に、deviseを利用できるようになっており、こちらに記載されている通りの手順で認証機能も導入しました。

下記は起動後の画面です。

  • ショップ画面

shop


  • 管理画面

admin

spreeは残念ながら今後メンテナンスだけになってしまうようで、spreeから派生したsolidusへの移行を促しているようです。
今後新たな機能の取込みなどは次に紹介するsolidusで進められることが期待されます。

尚spreeのライセンスはNew BSD Licenseとなっています。


solidus

関連する主なソフトウェアのバージョンは下記の通りです。

  • Ruby 2.2.4
  • Rails 4.2.5
  • solidus 1.1.1
  • OS CentOS 7
  • Database PostgreSQL 9.2

spreeのgithubのサイトではこのsolidus(spreeをベースに並行して開発がすすめられていたようです)を勧めています。2013年頃から本家から分かれているようなのでどの程度互換性があるのかも気になります。

インストール手順はgithubGetting statedを参考に進めました。

一度bundle installした後に、インストールを実施したのですが、エラーとなってしまったため、bundle updateを改めて実施し、それからインストール作業を行っています。
また、サイトには記載がありませんが、環境に合わせてdatabase.ymlの更新とbundle exec rake db:createを実行しておく必要があります。

solidusはユーザ認証にdeviseの利用を前提としているようです。 ライセンスもspreeをベースとしているのでNew BSD Licenseと思われます。(ソースコードをご確認ください)

spreeと同様、ショップ画面と管理画面を掲載しておきます。

  • ショップ画面

shop


  • 管理画面

admin

画面は当然カスタマイズ可能ではありますが、個人的にはspreeの方が好みです。


ROR Ecommerce

最後はROR Ecommerceです。
spreeに比べると知名度は低いようですが、着実に開発を進めているようです。

インストール

インストール手順はgithubのサイトに記載の通りなのですが、若干不足している印象です。

まずは適当なディレクトリでgithubのリポジトリをcloneします。 Rubyのバージョンは2.1が指定されているのですが、今回お試しなので、2.2.4で確認してみたいと思います。

$ git clone https://github.com/drhenner/ror_ecommerce.git

$ cd ror_ecommerce
  # Rubyのバージョン指定

$ rbenv local 2.2.4

この後、.ruby-versionファイルの修正します。(2.1.5 → 2.2.4)
続いてGemfileを変更します。

  • Rubyのバージョンを2.2.4へ
  • Railsのバージョンを”~> 4.2.5”を指定
  • gem ‘pg’ を指定(環境毎の設定ではなく)
  • gem ‘therubyracer’ を追加
  • gem ‘config’ を追加(rails_configを削除)

上記修正に伴い、config/initializers/rails_config.rbも更新しました。

RailsConfig.setup do |config|
  :
end

 

Config.setup do |config|
  :
end

更に、config/database.ymlの作成(PostgreSQLで試したいので、spreeで作成したファイルをデータベース名を変更して適用)
ImageMagick-develのインストールも必要です。

$ sudo yum install ImageMagick-devel

以上の作業を行い、ようやくbundle installを行います。Gemfile.lockが残っているとエラーとなりますので、Gemfile.lockは削除しました。

$ bundle install

また、デフォルトの設定を変えたのが原因なのかわかりませんが、初回は依存ライブラリの確認にやたら時間がかかってしまいました・・・ (bundle update時も同様時間がかかります・・・)

そして以下のコードを実行して、初期データの投入まで行います。

$ bundle exec rake db:create
$ bundle exec rake db:migrate db:seed

起動

起動はいつものコマンドです。

$ bundle exec rails s

先に紹介した2つのECに比べると、rubygem化されていないことと、アプリケーションのソースコードの配置が一般的(と呼んでいいかわかりませんが)なので、ソースコードは検証しやすいように思えます。
採用しているgemが個人的には微妙な感じがしていますので(認証やページャ、ファイル添付など)もしこちらを採用するならgemを変更したいところです。

インストールには少々時間がかかりましたが、起動するところまで確認できました。
デモ用のデータがあまり用意されていないので、少々さみしい画面に見えてしまいます・・・

  • ショップ画面

shop


  • 管理画面

admin

ror_ecommerceのライセンスはMITとなっています。

また、最終的に動作させた主なソフトウェアのバージョンは下記の通りです。

  • Ruby 2.2.4
  • Rails 4.2.5
  • OS CentOS 7
  • Database PostgreSQL 9.2

ror_ecommerceのバージョンは管理画面にあるバージョン表記が正しければv2.1.0となります。


今後、それぞれの機能等を検証して、またご紹介できればと思います。