Back to Spree

Adding to an existing Rails app

docs/developer/advanced/adding_spree_to_rails_app.mdx

5.4.22.8 KB
Original Source
<Warning> This guide is aimed at advanced users who want to add Spree to an existing Rails application. If you are new to Spree, please follow the [Quickstart guide](/getting-started/quickstart). </Warning>

Overview

If you already have a Ruby on Rails application, you can add Spree to it by following these steps.

<Info> Spree works with **PostgreSQL**, **MySQL**, and **SQLite** — whatever database your Rails app already uses. No database migration is needed. </Info>

1. Add Spree gems

Add these lines to your project Gemfile:

ruby
spree_opts = { 'github': 'spree/spree', 'branch': 'main' }
gem 'spree', spree_opts # core, API, and CLI
gem 'spree_admin', spree_opts # Admin panel (optional)
gem 'spree_emails', spree_opts # transactional emails (optional)

And run the following command to install the gems:

bash
bundle install

2. Run the install generators

Spree uses a modular installation approach. First install the core, then add optional components.

Install core Spree

This installs core models, API, CLI, and authentication:

bash
bin/rails g spree:install --user_class=Spree::User --authentication=devise

Core installation options:

OptionDescription
user_classThe class for your users, eg. Spree::User or User
admin_user_classThe class for admin users (defaults to user_class)
authenticationAuthentication gem: devise or custom
migrateWhether to run migrations (default: true)
seedWhether to run the seed file (default: true)
sampleWhether to add sample data (default: false)
admin_emailEmail of the first admin user
admin_passwordPassword of the first admin user

Install Admin Panel (optional)

bash
bin/rails g spree:admin:install
bin/rails g spree:admin:devise  # if using Devise authentication

Add sample data (optional)

To add sample data to your store, run:

bash
bin/rake spree:load_sample_data

This will add some products, categories and multiple markets to your store.

Accessing Admin Panel

Navigate to http://localhost:3000/admin and log in with the default credentials:

Email[email protected]
Passwordspree123

Upon successful authentication, you should see the admin screen:

<Frame caption="Spree Admin Dashboard"> </Frame>

Congrats! You've set up your Spree Commerce and it's looking amazing!

Give Spree a GitHub Star<Icon icon="star" iconType="solid" color="#FFD43B" />, why dont't ya? Thank you for supporting Spree open-source! <Icon icon="heart" iconType="solid" color="#FF0000" />

Need support or want to give some feedback? Join our Discord