If you’re on an older version than 4.1 please follow previous upgrade guides and perform those upgrades incrementally**, eg.

  1. upgrade 3.7 to 4.0
  2. upgrade 4.0 to 4.1

Update gems

Run the following command to update your gems to 4.2:

bundle update

Remove SpreeMultiCurrency optional

If you used that gem in the past you need to remove it. Multi-Currency is now incorporated into Spree core and you cannot use that gem anymore.

  1. Remove spree_multi_currency from your Gemfile

    bundle remove spree_multi_currency
    
  2. Remove these preferences from your Spree initializer config/initializers/spree.rb:

    • allow_currency_change
    • show_currency_selector
    • supported_currencies
  3. Remove //= require spree/frontend/spree_multi_currency from vendor/assets/javascripts/spree/frontend/all.js

  4. Remove //= require spree/backend/spree_multi_currency from vendor/assets/javascripts/spree/backend/all.js

Optional Remove SpreeI18n config

All international configuration is now kept on the Store model in the database rather than in initializer files.

If you used spree_i18n gem before please remove any SpreeI18n::Configreferences from your config/initializers/spree.rb file.

Optional Add deface gem

If you used Deface overrides you will need to include deface in your Gemfile as it was removed from Spree / Spree Auth Devise / Spree Gateway dependencies.

bundle add deface

Fix RMA migration

Please find a add_stock_location_to_rma migration in your db/migrate directory and change:

class AddStockLocationToRma < ActiveRecord::Migration[4.2]

to

class AddStockLocationToRMA < ActiveRecord::Migration[4.2]

Install missing migrations

bin/rake railties:install:migrations

Run migrations

bin/rails db:migrate

Other things to remember

Replace fast_json with jsonapi-serializer

Please follow this guide to migrate your custom serializers.

Migrate select2 3.5 to 4

Only if you’ve added new Admin Panel pages with Select2 dropdown - this guide will help

Make sure you’ve got up to date Spree templates Storefront

If you’re using Spree default Storefront spree_frontend gem make sure to update your templates, especially:

Or simply run bin/rails g spree:frontend:copy_storefront

Read the release notes

For information about changes contained within this release, please read the 4.2.0 Release Notes.

More info