Releases: spree/spree
Version 4.3.0.rc1
Major/New Features
Modular API-first architecture
Monolith is gone replaced with a truly headless modular design!
We've completely decoupled Storefront (spree_frontend
), Admin Panel (spree_backend
) and extracted transactional Emails into their own gem (spree_emails
). Thanks to this you can:
- Easily replace Storefront and Admin Panel with your own
- Use the version of Storefront and Admin you like, so you can update the Spree Core and API without the need to upgrade these two
- Easily replace standard transactional emails with Klaviyo, Mailchimp and other 3rd parties
We're also making Spree less dependent on the Rails framework, while supporting Rails 5.2, 6.0 and 6.1 on Ruby 2 and 3.
Pages & Navigation CMS
This release gives Spree users a powerful content management system that goes beyond creating basic text pages.
Spree Content Management System allows you to create:
Home Pages
- Create many home pages per store.
- Each home page is unique by language.
- Add multiple sections to each home page.
Standard Pages
- Standard pages consist of WYSIWYG text editor content.
- Each standard page has a slug that is unique to the store.
- Each page is assigned a language.
Feature pages
- Feature pages use page sections.
- Each feature page has a slug that is unique to the store.
- Feature pages are assigned a language.
Menus
Users can create navigation menus for their Spree stores.
Each menu is unique by language and location within the store and has the following features:
- Menus contain many menu items. Each menu item can link to a product, taxon, URLs, home page or CMS page.
- Menu items can be nested inside other menu items creating nested links.
- Menus can have container items used to organize links within the menu.
- Menu items can have images allowing you to create promotions within the main menu.
Platform API Developer Preview
A new set of fast and modern APIs for application to application integrations based on oAuth 2.0 authentication and permissions.
This API completely replaces API v1 which will be extracted from Spree core in 5.0. Platform API is built on the same
foundations and technology as Storefront API
that means JSON API format, Swagger (Open API) documentation and oAuth 2.0 authentication.
Platform API is the biggest and most robust API for Spree with the biggest number of API endpoints to cover all features
available in Admin Panel plus more. All API v1 usage in Admin Panel was also replaced with Platform API.
Advanced Product Filters
We've greatly expanded product filters feature. Now you can:
- Filter by Properties - you can set which Properties should be filterable and the ones you choose will be visible and supported in the Storefront and API
- Filter by Option Types - you can set which Oprion Types should be filterable and the ones you choose will be visible and supported in the Storefront and API
- Filters on Storefront, both Properties and Option Types will be automatically shown only when Products in selected Taxon have these Option Types/Properties attached, same goes for values, we're only displaying values from Products in the given Taxon
This way you can create new custom filters in the Admin UI from Option Types or Properties and the system will do the rest work for you.
Installation
- Install Docker
- Download Spree Starter
- Unzip it
- Run
bin/setup
inspree_starter-main
directory
Upgrade
Follow 4.2 to 4.3 upgrade guide
Noteworthy changes
Please review each of the noteworthy changes to ensure your customizations or extensions are not affected. If you are affected by a change and have any suggestions, please submit a PR to help the next person!
Storefront
- Upgraded Sprockets to v4 and added support for ES6, Source Maps and Manifest.js Damian Legawiec
- Multi-Store Only Store Orders are returned Damian Legawiec
- Multi-Store Only Store Products are returned Damian Legawiec
- Added clearing all filters on PLP / Taxon page Lukasz Adamczyk
- Added filtering Products on PLP by a custom price range Lukasz Adamczyk
- Display only these Product Filters that have Products attached Lukasz Adamczyk
API
-
Added caching to API v2 serialized increasing API responsiveness 3-5 times Damian Legawiec
This also includes new confirmation option
Spree::Api::Config[:api_v2_cache_ttl]
for the cache expiration TTL. Defualt value is3600
(1 hour). Cache also auto-expires when cachd record is updated, more on this topic: https://github.com/jsonapi-serializer/jsonapi-serializer#caching -
Multi-Store Storefront Products API returns Products from the current Store Damian Legawiec
-
Multi-Store Storefront Account Orders API returns Orders from the current Store Damian Legawiec
-
Multi-Store Storefront Order Status API returns Order from the current Store Damian Legawiec
Core
-
Multi-Store
Order#available_payment_methods
by default will return only Payment Methods available in Order's Store Damian LegawiecPassing
store
argument to that method will result in deprecation warning -
Multi-Store Deprecated
Store.current
in favour ofStores::FindCurrent
Damian LegawiecAlso, this finder class can be replaced by custom one by setting
Spree::Dependencies.current_store_finder = YourCustomStoreFinder
in
config/initializers/spree.rb
(please check documentation) -
Multi-Store
Product
,Promotion
andPaymentMethod
models require at least oneStore
associated Damian Legawiec -
Multi-Store
Promotion
is now associated to multipleStore
records viaStorePromotion
model Damian LegawiecYou can disable this behaviour by setting:
Spree::Config[:disable_store_presence_validation] = true
in your
config/initializers/spree.rb
file -
Multi-Store
Store Credit
model is now associated withStore
Szymon Iwacz -
Taxon
model now requiresTaxonomy
presence and thatTaxonymy
needs to match Taxon's Parent (if present) Damian Legawiec -
Transactional emails were extracted into a separate gem called
spree_emails
Damian Legawiec -
Replaced
twitter_cldr
gem with much smallervalidates_zipcode
Damian Kaczmarczyk -
Removed
premailer-rails
gem dependency Damian Legawiec -
Removed
rails
dependency - only require Rails gems that we really use Damian Legawiec -
Removed
responders
dependency Damian Legawiec -
Removed
sprockets
dependency Damian Legawiec -
Moved
spree.js
file to frontend/backend Damian Legawiec -
Moved
polyfill.min.js
andfetch.umd.js
files to frontend Damian Legawiec -
Moved
cleave.js
file to frontend/backend Damian Legawiec -
Moved
jquery.payment.js
file to frontend Damian Legawiec
Full Changelog
You can view the full changes using Github Compare.
Version 4.2.5
Spree 4.2 now runs on Rails 5.2, 6.0, and 6.1 馃殌
Core
- Added more flexibility for Product validation ab117b0
- Relax dependencies to allow for more flexibility with Gemfiles 853bc79
Storefront
- Fixed JS undefined errors when the application does not use the updated 4.2 views a7096f6
- Add spree current user to the base cache key cb54344
- Fixed
localizedPathFor
function for API addresses 432a890
API
- Fixed filtering Products by multiple options 9534cd0
Version 4.1.14
- Spree 4.1 now runs on both Rails 5.2 and 6.0 馃殌
- Fixed compatibility with Doorkeeper 5.5+ da19a8f
Version 4.0.8
- Spree 4.0 now runs on both Rails 5.2 and 6.0 馃殌
- Fixed compatibility with Doorkeeper 5.5+ da19a8f
Version 4.2.3.1
Fixed compatibility with https://github.com/rails/rails/releases/tag/v6.0.3.7 and https://github.com/rails/rails/releases/tag/v6.1.3.2
Version 4.2.3
This patch release contains bug fixes backported from the master branch. We'd like to thank all the contributors who made this happen 馃憤
API
- Fixed: do not return (soft) deleted Addresses in Storefront API Account Address endpoint cb10e88
- Fixed scope for admin users in Storefront API Account Credit Cards dd3d234
Full changelog: v4.2.2...v4.2.3
Version 4.1.13.1
Fixed compatibility with https://github.com/rails/rails/releases/tag/v6.0.3.7
Version 4.0.7.1
Fixed compatibility with https://github.com/rails/rails/releases/tag/v6.0.3.7
Version 3.7.14.1
Fixed compatibility with https://github.com/rails/rails/releases/tag/v5.2.4.6
Version 4.2.2
This patch release contains bug fixes backported from the master branch. We'd like to thank all the contributors who made this happen 馃憤
Storefront
- Fixed
Spree.localizedPathFor
method 7df40f5 - Made product modal reusable 30e081d
- Added support for different cache keys for signed/not-signed/admin users when viewing Storefront cached pages f7fffbf
API
- Added missing destroy address API v2 endpoint 24152ef
- Fix jsonapi_serializer compatibility with version > 2.2 cd681ed
Admin Panel
- Fixed Added missing "'" in the link in store_form 622a245
Full changelog: v4.2.1...v4.2.2