Major/New Features
Spree 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 :)
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 affected. 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
-
Better multi store support for Spree frontend (use
current_store
withlast_incomplete_spree_order
) -
Added OptionTypes & OptionValues API V1 Documentation
-
Removed previously deprecated
Shipment#editable_by?
&Shipment#send_shipped_email
-
Removed previously deprecated
Variant#having_orders
&Variant#on_backorder
-
Removed previously deprecated
DelegateBelongsTo
-
Updated
Address#require_phone?
to useaddress_requires_phone
preference -
Performance optimization - replaced
pluck.sum
andmap.sum
withsum
-
Performance optimization - replaced
.count > 0
with.exists?
-
Removed previously deprecated
Calculator::PercentPerItem
-
Removed deprecated
StoreHelper
from frontend -
Removed deprecated
TestingSupport::MicroData
-
Deprecated
ContentController#show