Version 4.3.0 #11339
damianlegawiec
started this conversation in
General
Version 4.3.0
#11339
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Major new features
With this latest Spree 4.3 release we’re going headless and API-first unlocking limitless UX customization possibilities with best-in-class decoupled JS storefronts. Save hundreds of hours on development and build amazing eCommerce platforms in a matter of days.
Use the pre-built integrations with Next.js Commerce (see demo), Vue Storefront 2 or custom-built frontend apps using Spree Javascript/TypeScript SDK. Exceed expectations in page load speed, create delightful online experiences and make data-driven iterative improvements independent from the Spree backend. Keep that Spree upgrade path clean and future-proof.
Connect your Spree headless backend to any number of storefronts, mobile apps, social commerce or other sales channels and effortlessly grow your omnichannel footprint. Maintain your product data integrity and stock levels synced across all channels with Spree headless backend serving as the source of truth and system of record. Integrate Spree with any 3rd party solutions: payment, shipping, marketing automation or reporting tools you require.
Experiment with new brands or country-specific experiences leveraging the multi-store functionality from a single headless Spree instance and admin dashboard. Curate custom homepages and shoppable content for each store with the brand new built-in Spree CMS in any language and for any currency. Enable product discovery with advanced product filters and media-rich menus.
Join the headless revolution!
Modular API-first architecture
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: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.
Next.js Commerce integration
Next.js Commerce is an all-in-one React starter kit for high-performance eCommerce sites. With the new API-first architecture it was very easy to connect Spree APIs via Spree SDK to the new blazing fast react storefront.
BTW we have more storefront integrations news lined up in the coming weeks!
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
Standard Pages
Feature pages
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:
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.
Advanced Product Filters
We've greatly expanded product filters feature. Now you can:
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
Follow Getting Started guide
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!
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#cachingAdded universal collection caching for Platform/Storefront API responses Added universal collection caching for Platform/Storefront API #11245
Increased API v2 per page limit to 500 Increased API v2 per page limit to 500 #11257
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
Multi-Store Return only Store resources in Storefront API, Platform API and Storefront UI Return only Store resources in Storefront API, Platform API and Storefront UI #11126 (damianlegawiec)
Fix API V2 Platform products by price sorting Fix API V2 Platform products by price sorting #11276 (szymoniwacz)
Platform API Classifications endpoints Platform API Classifications endpoints #11195 (damianlegawiec)
Platform API - Products endpoints Platform API - Product & Variants serializers #11194 (damianlegawiec)
Added API endpoint for changing cart currency Add API endpoint for changing cart currency #11331 (rafalcymerys)
Storefront API Products endpoint returns filter options with products Return filter options with products #11318 (rafalcymerys)
Storefront API Adresses endpoint - display addresses from countries supported in the current store [SD-1377] Display addresses from countries supported in the current store #11271 (v10110)
Add public preferences to payment methods in Storefront API Checkout endpoints Feature/payment gateway public preferences #11301 (damianlegawiec)
Storefront Countries API returns all countries on a single page Storefront Countries API should return all countries on a single page… #11289 (damianlegawiec)
Fix API V2 Platform products by price sorting Fix API V2 Platform products by price sorting #11276 (szymoniwacz)
Storefront API / Platform API - allow to dynamically specify image dimensions/quality in API URLs to get the transformed image Allow to specify image dimensions/quality in API URLs to get the transformed image #11264 (damianlegawiec)
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 warningMulti-Store Deprecated
Store.current
in favour ofStores::FindCurrent
Damian LegawiecAlso, this finder class can be replaced by custom one by setting
in
config/initializers/spree.rb
(please check documentation)Multi-Store
Product
,Promotion
andPaymentMethod
models require at least oneStore
associated Damian LegawiecMulti-Store
Promotion
is now associated to multipleStore
records viaStorePromotion
model Damian LegawiecYou can disable this behaviour by setting:
in your
config/initializers/spree.rb
fileMulti-Store
Store Credit
model is now associated withStore
Szymon IwaczTaxon
model now requiresTaxonomy
presence and thatTaxonymy
needs to match Taxon's Parent (if present) Damian LegawiecTransactional emails were extracted into a separate gem called
spree_emails
Damian LegawiecReplaced
twitter_cldr
gem with much smallervalidates_zipcode
Damian KaczmarczykRemoved
premailer-rails
gem dependency Damian LegawiecRemoved
rails
dependency - only require Rails gems that we really use Damian LegawiecRemoved
responders
dependency Damian LegawiecRemoved
sprockets
dependency Damian LegawiecMoved
spree.js
file to frontend/backend Damian LegawiecMoved
polyfill.min.js
andfetch.umd.js
files to frontend Damian LegawiecMoved
cleave.js
file to frontend/backend Damian LegawiecMoved
jquery.payment.js
file to frontend Damian LegawiecMigrate User Roles code from Spree Auth Devise to Spree Core Migrate User Roles code from Spree Auth Devise to Spree Core #11108 (damianlegawiec)
Change integer id columns into bigint Change integer id columns into bigint #11182 (szymoniwacz)
Admin Panel
Storefront
Full Changelog
CHANGELOG.md
This discussion was created from the release Version 4.3.0.
Beta Was this translation helpful? Give feedback.
All reactions