Ruby HTML CSS CoffeeScript JavaScript Shell
Latest commit 57894fe Feb 24, 2017 @jhawthorn jhawthorn committed on GitHub Merge pull request #1720 from vfonic/coffee-linter
Add CoffeeScript linter
Failed to load latest commit information.
.github Add an for github Jan 9, 2017
api ruby 1.9 style hash colons Feb 21, 2017
backend Merge pull request #1720 from vfonic/coffee-linter Feb 24, 2017
core Merge pull request #1722 from brchristian/hash-colons Feb 24, 2017
frontend Merge pull request #1720 from vfonic/coffee-linter Feb 24, 2017
guides Merge pull request #1609 from mamhoff/asset-configuration-guide Feb 17, 2017
lib Use set -e for Jul 19, 2016
sample Don't run common:seed inside of sample test_app Nov 22, 2016
.editorconfig Adds editorConfig. Oct 24, 2014
.gitignore Cleanup .gitignore Sep 25, 2015
.hound.yml Add coffeelint config file and enable coffeescript linting on hound Feb 19, 2017
.rubocop.yml Disable RuboCop Style/EmptyElse Oct 3, 2016
.teatro.yml Fix problems with “database: true” on Teatro Oct 7, 2014
.travis.yml Test against ruby 2.3.0 Mar 15, 2016 Add note about removal Feb 3, 2017 Fix typo in Jun 1, 2016
Gemfile Revert "Use eval_gemfile instead of plain eval" May 9, 2016 Capitalize Jun 12, 2015 it's Rails 5.0 on master now. Aug 19, 2016
Rakefile Use require_relative to require version.rb Apr 25, 2016
app.json Add app.json for heroku demo deploy May 20, 2016
build-ci.rb Change some yarddocs from @return [undefined] to @return [void] Sep 19, 2016 Update documentation to use DB=postgresql Nov 24, 2015
circle.yml Use phantomjs 2.1.1 on CircleCI Mar 15, 2016
coffeelint.json Add coffeelint config file and enable coffeescript linting on hound Feb 19, 2017
common_spree_dependencies.rb Add rails-controller-testing gem Aug 18, 2016
solidus.gemspec Require ruby version 2.2.2 for all gems Oct 3, 2016
solidus.png Add a logo Jun 12, 2015


Solidus is a complete open source e-commerce solution built with Ruby on Rails. It is a fork of Spree.

Solidus actually consists of several different gems, each of which are maintained in a single repository and documented in a single set of online documentation. By requiring the solidus gem you automatically require all of the necessary gem dependencies which are:

All of the gems are designed to work together to provide a fully functional e-commerce platform. It is also possible, however, to use only the pieces you are interested in. For example, you could use just the barebones solidus_core gem and perhaps combine it with your own custom frontend instead of using solidus_frontend.

Circle CI Gem License


Try out Solidus with one-click on Heroku:


Getting started

To add solidus, begin with a Rails 5 application. Add the following to your Gemfile.

gem 'solidus'
gem 'solidus_auth_devise'

Run the bundle command to install.

After installing gems, you'll have to run the generators to create necessary configuration files and migrations.

bundle exec rails g spree:install
bundle exec rails g solidus:auth:install
bundle exec rake railties:install:migrations

Run migrations to create the new models in the database.

bundle exec rake db:migrate

Finally start the rails server

bundle exec rails s

The solidus_frontend storefront will be accessible at http://localhost:3000/ and the admin can be found at http://localhost:3000/admin/.

Default Username/Password

As part of running the above installation steps, you will be asked to set an admin email/password combination. The default values are and test123, respectively.


The best way to ask questions is via the #support channel on the Solidus Slack.

Installation options

Instead of a stable build, if you want to use the bleeding edge version of Solidus, use this line:

gem 'solidus', github: 'solidusio/solidus'

Note: The master branch is not guaranteed to ever be in a fully functioning state. It is unwise to use this branch in a production system you care deeply about.

By default, the installation generator (rails g spree:install) will run migrations as well as adding seed and sample data. This can be disabled using

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

You can always perform any of these steps later by using these commands.

bundle exec rake railties:install:migrations
bundle exec rake db:migrate
bundle exec rake db:seed
bundle exec rake spree_sample:load

There are also options and rake tasks provided by solidus_auth_devise.


You may notice that your Solidus store runs slowly in development mode. This can be because in development each css and javascript is loaded as a separate include. This can be disabled by adding the following to config/environments/development.rb.

config.assets.debug = false

Developing Solidus

  • Clone the Git repo

    git clone git://
    cd solidus
  • Install the gem dependencies

    bundle install


Solidus is meant to be run within the context of Rails application. You can easily create a sandbox application inside of your cloned source directory for testing purposes.

This sandbox includes solidus_auth_devise and generates with seed and sample data already loaded.

  • Create the sandbox application (DB=mysql or DB=postgresql can be specified to override the default sqlite)

    bundle exec rake sandbox
  • Start the server

    cd sandbox
    rails server



We use CircleCI to run the tests for Solidus as well as all incoming pull requests. All pull requests must pass to be merged.

You can see the build statuses at

Running all tests

To execute all the tests, run this command at the root of the Solidus project to generate test applications and run specs for all projects:


This runs using postgresql by default, but can be overridden by specifying DB=sqlite or DB=mysql in the environment.

PhantomJS is required for the frontend and backend test suites.

Running an individual test suite

Each gem contains its own series of tests, and for each directory, you need to do a quick one-time creation of a test application and then you can use it to run the tests. For example, to run the tests for the core project.

cd core
bundle exec rake test_app
bundle exec rspec spec

If you would like to run specs against a particular database you may specify the dummy apps database, which defaults to sqlite3.

DB=postgresql bundle exec rake test_app

You can also enable fail fast in order to stop tests at the first failure

FAIL_FAST=true bundle exec rspec spec/models/state_spec.rb

If you want to run the simplecov code coverage report

COVERAGE=true bundle exec rspec spec


In addition to core functionality provided in Solidus, there are a number of ways to add features to your store that are not (or not yet) part of the core project.

A list can be found at


Solidus is an open source project and we encourage contributions. Please read before contributing.