SolidusでECサイトをつくる
Solidusを利用してECサイトをつくる手順をまとめました。
Solidusとは
SolidusはRuby on Rails製の電子商取引(E-Commerce, EC)システムです。商品管理やカート機能、会計システムといったECサイトに必要な基本機能を提供してくれます。
SolidusはSpreeというECシステムの後継であるため、Solidusについて調べるときは「Spree」をキーワードに検索するのも一案です。
導入方法
SolidusのREADME.mdの説明に沿って導入していきます。
前提
- Rails 5以降
- Imagemagickインストール済み(画像添付用Gem「Paperclip」が依存)
Railsプロジェクトの作成
$ rails new solidus-ec-site --skip-bundle --skip-test
RailsはデフォルトでMinitestを生成しますが、SolidusではテストフレームワークとしてRSpecを使用するため、--skip-testによってMinitestを生成しないようにしておきます。
Gemのインストール
# Gemfile gem 'solidus' gem 'solidus_auth_devise'
Gemをbundleインストール。
$ bundle install --path vendor/bundle
このように--path vendor/bundle
をつけてbundle installすると/vendor/bundleディレクトリ以下にgemがインストールされます。
管理者アカウントと商品サンプルデータの作成
$ bundle exec rails g spree:install
途中で管理者アカウント情報の入力を求められます。何も入力せずにEnterキーを押すとデフォルトのメールアドレス(admin@example.com)、パスワード(test123)で登録されます。
Create the admin user (press enter for defaults). Email [admin@example.com]: Password [test123]:
最後に
Solidus has been installed successfully. You're all ready to go! Enjoy!
と表示されたらOK!
ユーザー認証機能
$ bundle exec rails g solidus:auth:install
deviseの設定ファイルが作成されます。
create config/initializers/devise.rb run bundle exec rake railties:install:migrations FROM=solidus_auth_devise from "." run bundle exec rake db:migrate from "."
エンジンの設定
$ bundle exec rake railties:install:migrations
エンジンについて詳しくは Rails エンジン入門 - Rails ガイド
DBのマイグレーション
$ bundle exec rake db:migrate
サーバー起動
$ bundle exec rails s
正常に起動できていればブラウザで以下のURLにアクセスできます。
ストアページ:http://localhost:3000/
管理画面:http://localhost:3000/admin/
動作軽量化
development環境ではCSSとJavaScriptを別々に読み込むため本番環境よりアプリの動作が遅いとのこと。
config/environments/development.rbにおいてconfig.assets.debugをtrueからfalseに変更するとdevelopment環境でのパフォーマンス向上が見込めます。
# config/environments/development.rb config.assets.debug = false
テストについて
SolidusはテストフレームワークとしてRSpecを使用しています。 テストを書くときは事前にrspec-railsをインストールしておきましょう。
# Gemfile group :development, :test do gem 'rspec-rails' end
$ bundle update
エクステンション
Solidusはエクステンション(拡張機能)をインストールすることでブログや多言語対応など様々な追加機能を実装することができます。
https://extensions.solidus.io/
自分でエクステンションを書きたい場合はsolidus_cmdを利用できます。
Herokuへデプロイ
次のコマンドを順に実行します。
$ heroku login $ heroku create アプリ名(任意。未入力の場合はランダムな単語を組み合わせてURLが生成される) $ heroku pg:reset DATABASE $ bundle exec rake assets:precompile $ git push heroku master $ heroku addons:create heroku-postgresql $ heroku run rails db:migrate $ heroku run rails g spree:install $ heroku run rails g solidus:auth:install $ heroku run rake railties:install:migrations $ heroku restart