Spree Commerce
Open-source headless ecommerce platform with a REST API and Next.js storefront
Alternative to: Shopify, Magento, WooCommerce, Salesforce Commerce Cloud
v5.4.2
2026-04-27This release includes a huge number of fixes and improvements from the Spree community! 🌟
Highlights
New CSV importer
Importer now runs in parallel, greatly shortening the time required to import large CSV files (e.g., 100k rows).
New payment integrations
Adyen and PayPal are now officially available, and both are now supported by Storefront out of the box!
Products API improvements
Products API can now easily handle a large collection of SKUs (100k+) with great performance, both with database and Meilisearch.
Other changes
Core
- Fix Carmen deprecation warning for Rails 8.2 compatibility by @damianlegawiec in https://github.com/spree/spree/pull/13917
- Fix duplicate event logging across Zeitwerk reloads by @damianlegawiec in https://github.com/spree/spree/pull/13922
- Fix error when creating promo coupon code with blank expiration date by @KacperMekarski in https://github.com/spree/spree/pull/13925
- Fix nil errors when trying to call
Address#country_isowithout coun… by @damianlegawiec in https://github.com/spree/spree/pull/13927 - Consolidate pagy dependency to spree_core by @damianlegawiec in https://github.com/spree/spree/pull/13931
- Move CreditCard/PaymentSource post-destroy cleanup to models/concern by @damianlegawiec in https://github.com/spree/spree/pull/13941
- Parallel CSV import processing for large files by @damianlegawiec in https://github.com/spree/spree/pull/13944
- Fix PostgreSQL volume mount path in docker-compose by @damianlegawiec in https://github.com/spree/spree/pull/13947
- Add 30s delay to AutoMatchTaxonsJob by @damianlegawiec in https://github.com/spree/spree/pull/13956
- Fix applying gift cards in a multi-store scenario by @mad-eel in https://github.com/spree/spree/pull/13958
API
- Fix FulfillmentSerializer crash when line item is deleted by @damianlegawiec in https://github.com/spree/spree/pull/13918
- fix changing shipping rate when gift card is applied by @KacperMekarski in https://github.com/spree/spree/pull/13928
- Allow payment session lookup by external_id by @damianlegawiec in https://github.com/spree/spree/pull/13935
- Fixed Payment Sessions API concurrency issues by @damianlegawiec in https://github.com/spree/spree/pull/13938
- Improve performance of Products API with database adapter for large S… by @damianlegawiec in https://github.com/spree/spree/pull/13945
Admin
- Use Spree::Money instance correctly as an argument for money column type by @KacperMekarski in https://github.com/spree/spree/pull/13924
- Paginate option values in admin option type form by @damianlegawiec in https://github.com/spree/spree/pull/13949
Documentation
- How-to Guide: Set Up Multiple languages by @jaburghes in https://github.com/spree/spree/pull/13923
- Update PayPal setup guide by @jaburghes in https://github.com/spree/spree/pull/13933
- Updated Adyen setup guide by @jaburghes in https://github.com/spree/spree/pull/13934
- improve CONTRIBUTING guide by @damianlegawiec in https://github.com/spree/spree/pull/13959
Installation
npx create-spree-app@latest my-store
Updating
1. Update gems
bundle update
2. Run DB migrations
This release includes a small database migration as well:
bin/rake spree:install:migrations
bin/rails db:migrate
Feedback / Support
Join our Discord server to chat with Spree core team members and other Spree developers!
Full Changelog: https://github.com/spree/spree/compare/v5.4.1…v5.4.2