Spree 4.2 is a collaborative work of 34 outstanding individuals from around the globe who contributed over 1500 commits since Spree 4.1.
This release was intended to make Spree accessible to everyone in every country using every major language. Besides new features, this release includes hundreds of bug fixes and improvements.
Spree 4.2 can be run on Ruby 2.5, 2.6, 2.7, and recently released 3.0. Spree 4.2 supports Rails 5.2, 6.0 and 6.1 out of the box, so you don’t need to upgrade to Rails 6.1 straight away, you can first move to Spree 4.2 and later perform the Rails upgrade independently, minimizing the risk of any issues. Please see Rails 6.1 announcement to check out the new amazing features that are packed in that release.
Thanks to the awesome work of Matthew Kennedy supported by the Spark team, we were able to deliver a brand new and modern Admin UI which works great on mobile and tablet devices.
This was done in a gradual enhancement process of the current codebase, so all of the existing Extensions and customizations will still work as it is fully backward compatible.
The next releases will bring more Admin UI improvements such as a new Reporting dashboard.
- each Store can have a default currency and a list of other supported currencies - this will affect products shown in each Store (only Products with prices in those currencies)
- each Store can have a default locale (language) and a list of other supported locales
- each Product can have different prices in each currency for different Variants
- you can have multiple Stores with different default locales/currencies or a single Store with multiple locales/languages which you can switch between in the Storefront UI
- API v1 and v2 also support this by simply passing
?currency=EURin the URL
- Locale and Currency settings will be also respected in all Spree extensions
- Additional language packs are available via Spree I18n gem
Besides currency and language, we’ve greatly improved the Multi-Store support in Spree.
There are new additional settings and features for Store management available in the Admin UI:
- Logo - you can now upload logos through the Admin Panel for each Store :) (Spark Solutions)
- Mailer Logo - same as above, but it will be displayed in the email notifications (Spark Solutions)
- Checkout Zone - which Zone record is used for Checkout; this limits the Checkout for selected Countries or States (Spark Solutions)
- Default Country - which country should be pre-selected on Checkout Address (Spark Solutions)
- Order Notification Email for Store Owners (Derek Johnson)
- Checkout Payment Methods - which Payment Methods should be available in each Store. Each payment method can now be assigned to multiple stores instead of one (Spark Solutions and Matthew Kennedy)
- Store Contact info that appears in the Storefront footer can now be set in the UI Spark Solutions
Thanks to the El Passion team we now have brand new and mobile-first email templates for notifications such as Order Confirmation, Shipment notification and so on. All emails were rebuilt with Postmark Email Templates to meet current needs and standards.
As part of these improvements, more of the email layouts can be managed via Admin UI, this includes:
- setting a different logo for each Store
- setting the locale (language) of a Store will be reflected in emails which will be translated automatically, based on Spree I18n
- setting the Store name will automatically change the copy in emails
- all URLs in emails will point to the selected Store; this is also supported by Spree Auth Devise emails as well
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!
- Admin users can set which Option Types should be shown as a filter option in Storefront Spark Solutions
- Added Compare At price to Products Spark Solutions
- Added support of OpenGraph meta tags in Storefront Spark Solutions
- Allow user to add names to addresses Matthew Kennedy
- Set Product Variant Via URL Query Parameter Matthew Kennedy
- Adds The Ability To Show / Not Show Specific Product Properties Matthew Kennedy
- Add ship-to address on Checkout “Choose Delivery Method” page Matthew Kennedy
- Added support for multiple Relation Types via Related Products gem on product page Spark Solutions
etaghelper methods for
- Replace jquery.payment with cleave Matthew Kennedy
- Make config
show_raw_product_descriptionusable in new storefront Matthew Kennedy
product_add_to_cartevent triggering Spark Solutions
Spree.readyinstead of document ready on checkout address book Chien-Fu
- Shows my account store credits in current currency Spark Solutions
- Improved Performance and caching Spark Solutions
API v2 Storesendpoints Prabin Poudel
concat_taxonsfilter to API v2 Products endpoint Florian Bergmann
- Moved from
- Fixed N+1 queries on
- API v1 controllers now inherit from
- Replace jquery.ui calendar with mobile-friendly Flatpickr Cal Matthew Kennedy
- Refactored splitting order products into shipments by stock location Spark Solutions
- Add random string instead of ‘new’ in duplicated promotions Spark Solutions
- Add timezone to dates across entire app Spark Solutions
- Improve customer attribute editor Gary Lai
- includes translations to avoid n + 1 query Gary Lai
- Upgraded Select2 to 4.x Spark Solutions and Matthew Kennedy
Store#unique_namemethod Mathew Kennedy
Product#default_variant_cache_keymethod Spark solutions
CarmenData Import Matthew Kennedy
- Normalize promotion code before validation Maksim Shylau
- Outstanding balance uses reimbursement Chris Hummel
- Added unique index on
active_storage_validationsgem to dependencies Spark Solutions
- Use Spree Dev Tools in extension generator Spark Solutions
- Updated migrations with column_exists checks to avoid upgrade issues Spark Solutions
You can view the full changes using Github Compare.