rails new your-store-name
gem 'spree_backend', github: 'spree/spree'
gem 'devise'
rails g spree:install --sample=false --seed=false
rails g devise:install
rails g devise User
bundle exec rake db:migrate
has_and_belongs_to_many :spree_roles
def has_spree_role?(role)
self.spree_roles.all.include? role
end
- Generate custom user set up for spree
rails g spree:custom_user User
- Change Spree.user class to User on initializer spree.rb
Spree.user_class = "User"
- Add fields to custom user
bundle exec rake db:migrate
- Remove both all.css and all.js
rm vendor/assets/javascripts/spree/frontend/all.js
rm vendor/assets/stylesheets/spree/frontend/all.css
Rails.application.routes.draw do
root to: "spree/admin/orders#index"
mount Spree::Core::Engine, :at => '/'
devise_for :users
end
# since we don't need signup on a backend install
def spree_login_path
'/users/sign_in'
end
def spree_signup_path
'/users/sign_up'
end
def spree_logout_path
'/users/sign_out'
end
user = User.create(email: "spree@example.com", password: "spree123")
user.spree_roles << Spree::Role.find_or_create_by(name: "admin")
Create this file in app/overrides/add_logout_to_admin_panel.rb
Deface::Override.new(virtual_path: 'spree/admin/shared/_tabs',
name: 'add_logout_to_admin_panel',
insert_after: "erb[loud]:contains('users')",
text: "<li class='tab-with-icon'>
<%= link_to(main_app.destroy_user_session_path, method: :delete, class: 'fa fa-sign-out icon_link with-tip') do %>
<span class='text'>LOGOUT</span>
<% end %>
</li>")