4.3 to 4.4
This guide covers upgrading a 4.3 Spree application to Spree 4.4.
If you’re on an older version than 4.3 please follow previous upgrade guides and perform those upgrades incrementally, eg.
Update Gems
Run the following command to update your gems to 4.4:
bundle update
to install the new gems.
Remove gems merged into Spree Core
These gems were merged into Spree Core in version 4.4. All of their functionality is now included in the spree
gem so you can remove them.
(Optional) Remove Spree Digital
If you used that gem in the past you need to remove it. Digital products are now incorporated into Spree core and you cannot use that gem anymore.
- Remove
spree_digital
from yourGemfile
(Optional) Remove Spree Wishlist
If you used that gem in the past you need to remove it. Wishlists are now incorporated into Spree core and you cannot use that gem anymore.
- Remove
spree_wishlist
from yourGemfile
- (Optional) Remove
//= require spree/frontend/spree_wishlist
fromvendor/assets/javascripts/spree/frontend/all.js
- (Optional) Remove
*= require spree/frontend/spree_wishlist
fromvendor/assets/stylesheets/spree/frontend/all.css
Update gems
bundle update
Install missing migrations
bin/rake railties:install:migrations
Run migrations
bin/rails db:migrate
Update Spree Dashboard (spree_backend
)
Update Gemfile
gem 'spree_backend', '~> 4.4'
Update gems
bundle update
Run install generators
This will copy some files from spree_backend
to your application.
bin/rails g spree:backend:install
If you’re using spree_frontend
you need to run the frontend install generator as well:
bin/rails g spree:frontend:install
Make sure that Node is available in your cloud environment
On Heroku, you need to add the node buildpack - https://devcenter.heroku.com/articles/buildpacks#using-multiple-buildpacks
Additional fixes and hints
Add Spree ActiveJob queues to your Sidekiq config
Spree uses ActiveJob for processing long running operations to not interrupt your web server performance.
If you’re using Sidekiq you need to update your config/sidekiq.yml
file and 2 new queues:
spree_stock_location_stock_items
spree_webhooks
Disabling webhooks
Spree 4.4 introduces webhook events for most of the Spree resources (Products, Orders, Customers, etc). If you wish to disable this globally you can set the environment variable:
DISABLE_SPREE_WEBHOOKS=true
If you would like to disable firing webhooks for certain elements of your application you can wrap these methods in a block:
Spree::Webhooks.disable_webhooks do
... run your code here ...
end
Webhooks do not fire on touch events. Webhooks also do not do anything until there is a first webhook subscriber created which can be done in the Admin Dashboard or via Platform API.
Update Spree SDK
To use the new features such as Wishlists and Digital Products in your storefront please update Spree SDK to v4.12 at least.
Update Spree Dependencies that was renamed
Please change in your codebase:
Spree::Dependencies.account_update_address_service
to
Spree::Dependencies.address_update_service
Read the release notes
For information about changes contained within this release, please read the CHANGELOG.
More info
If you have any questions or suggestions feel free to contact us via email or through Spree slack channels
Was this page helpful?