Major/New Features

3.4 is a smaller release to lay the groundwork for major new features described in Spree Development Roadmap. It also contains number of bug fixes and improvements besides described in this document.

Enhanced codebase quality

We’ve removed tons of unused & deprecated code and on top of that, we’ve updated RuboCop rules and tidied up the code quality of all Spree modules.

Contributed to Spark Solutions

Enhanced Segment.com integration

We’ve added Segment.com integration in Spree 3.3 but it was still limited. Since then we’ve put a lot of work to implement tracking of nearly all e-commerce events supported by Segment.com.

Contributed to Spark Solutions

Updated User Documentation

We’ve updated the entire User section of Spree Documentation also adding new content describing new features like Store Credits.

This is part of our Guides 2.0 project

Contributed by Spark Solutions

Searchable Documentation

Thanks to cooperation with Algolia DocSearch you can easily search the entire Spree Documentation.

This is part of our Guides 2.0 project

Contributed by Spark Solutions

Spree Demo

You can fire up the newest fully functional version of Spree on Heroku with a just one click :)

Try it out!

Contributed by Spark Solutions

Spree Frontend views exporter

You can easily copy all of the default spree views into your project with just one command line:

rails g spree:frontend:copy_views

We hope will make frontend customization easier.

Contributed by Spark Solutions

Upgrade

Update Gemfile

gem 'spree', '~> 3.4.0'
gem 'spree_auth_devise', '~> 3.3'
gem 'spree_gateway', '~> 3.3'

Update your extensions

We’re changing how extensions dependencies work. Previously you had to match extension branch to Spree branch. Starting from Spree 3.2 release master branch of all spree-contrib extensions should work with Spree >= 3.1 and < 4.0. Please change your extensions in Gemfile eg.:

from:

gem 'spree_braintree_vzero', github: 'spree-contrib/spree_braintree_vzero', branch: '3-1-stable'

to:

gem 'spree_braintree_vzero', github: 'spree-contrib/spree_braintree_vzero'

Run bundle update

Install missing migrations

rails spree:install:migrations
rails spree_auth:install:migrations
rails spree_gateway:install:migrations

Run migrations

rails db:migrate

Other Gotchas

Migrate Spree::Taxon icons to Spree Assets

We changed Spree::Taxon icon to use Spree::Asset to unify attachment usage across all Spree models. If you were using icon images in Spree::Taxon please run this to migrate your icons:

rails db:migrate_taxon_icons

Noteworthy Changes

Also please review each of the noteworthy changes, and ensure your customizations or extensions are not effected. If you are affected by a change, and have any of your own tips please submit a PR to help the next person!

Full Changelog

You can view the full changes using Github Compare.

Noteworthy Changes

  • Moved Admin Panel account menu into Spree core and redesigning it

    Spark Solutions

  • Better multi store support for Spree frontend (use current_store with last_incomplete_spree_order)

    Alexandre Ferraille

  • Added OptionTypes & OptionValues API V1 Documentation

    Yatindra Rao

  • Removed previously deprecated Shipment#editable_by? & Shipment#send_shipped_email

    Spark Solutions

  • Removed previously deprecated Variant#having_orders & Variant#on_backorder

    Spark Solutions

  • Removed previously deprecated DelegateBelongsTo

    Spark Solutions

  • Updated Address#require_phone? to use address_requires_phone preference

    Spark Solutions

  • Performance optimization - replaced pluck.sum and map.sum with sum

    Spark Solutions

  • Performance optimization - replaced .count > 0 with .exists?

    Spark Solutions

  • Removed previously deprecated Calculator::PercentPerItem

    Spark Solutions

  • Removed deprecated StoreHelper from frontend

    Spark Solutions

  • Removed deprecated TestingSupport::MicroData

    Spark Solutions

  • Deprecated ContentController#show

    Spark Solutions