Upgrading Spree 4.0 to 4.1
This guide covers upgrading a 4.0 Spree application to Spree 4.1.
If you have any questions or suggestions feel free to reach out through Spree slack channels
If you’re on an older version than 4.0 please follow previous upgrade guides and perform those upgrades incrementally, eg.
This is the safest and recommended method.
Update Gemfile
gem 'spree', '~> 4.1'
gem 'spree_gateway', '~> 3.7'
Run bundle update
Install missing migrations
rails spree:install:migrations
Run migrations
rails db:migrate
Decide what to do next
Now you have two options:
- Migrate to the new Storefront UI
- Stay at the current UI
Migrate to the new Storefront UI
Spree 4.1 comes with a completely new mobile-first ultra-fast Storefront powered by Turbolinks.
To replace your current frontend with the new Spree UI follow these steps:
-
Update Spree Auth Devise to 4.1 in your
Gemfile
gem 'spree_auth_devise', '~> 4.1'
-
In your project root directory run:
rails g spree:frontend:copy_storefront
WARNING this will overwrite your current project templates, it’s required for the new UI, so if you’ll be asked by the generator what to do please choose A to proceed
-
Next, you will need to copy over two files:
- spree_storefront.rb to
config/initializers/spree_storefront.rb
- spree_storefront.yml to
config/spree_storefront.yml
- spree_storefront.rb to
- If you overwrote any
spree_frontend
controllers you will need to either remove your local copies or move your custom logic to decorators - Same goes for helpers
-
You will also need to remove this line:
//= require spree/frontend/spree_auth
from
vendor/assets/javascripts/spree/frontend.all.js
file
Stay at the current UI
If you wish to not move to the new Storefront UI it’s still an option. Just proceed with the steps described below.
-
Keep Spree Auth Devise at the version you’re currently using
If you’re using Spree Auth Devise gem you need to lock it at 4.0.0 in your
Gemfile
:gem 'spree_auth_devise', '~> 4.0.0'
-
Copy over all views from Spree 4.0
Copy over views from: https://github.com/spree/spree/tree/4-0-stable/frontend/app/views to your application views directory:
app/views
WARNING remember to not overwrite your custom changes!
-
Copy over all Stylesheets from Spree 4.0
Copy over stylesheets from: https://github.com/spree/spree/tree/4-0-stable/frontend/app/assets/stylesheets to
app/stylesheets
WARNING remember to not overwrite your custom changes!
-
Copy over all JavaScript from Spree 4.0
Copy over stylesheets from: https://github.com/spree/spree/tree/4-0-stable/frontend/app/assets/javascripts to
app/javascripts
WARNING remember to not overwrite your custom changes!
Read the release notes
For information about changes contained within this release, please read the 4.1.0 Release Notes.
More info
If you have any questions or suggestions feel free to reach out through Spree slack channels