Skip to main content
Version: Next

Solidus v4.7 (2026-04-16)

Minimal requirements:

Ruby
v3.2
Rails
v7.2

We're excited to announce the release of Solidus v4.7.0! This release brings a new in-memory order updater for improved performance, continued promotions enhancements, and Rails 8.1 support.

🚀 Key Highlights

In-Memory Order Updater

Solidus now has an alternative order updater implementation optimized for reducing database interactions. The team at SuperGood has worked on getting this change ready for production use.

  • Increased performance for order updates — By default, the new order updater makes fewer write calls to the database. This means that order- and checkout-related controller actions can resolve faster, with fewer round trips to the database server.
  • Order update simulation — By passing persist: false to the in-memory order updater, an order can be recalculated and rolled back to its last state without any database writes. This enables stores to let administrators and customers preview changes to orders before accepting those changes.

To use this you need to opt-in by updating the order_recalculator_class in your app configuration.

In-memory order updater
info

We would love to hear if you enable this on your store and have feedback on the implementation!

Rails 8.1 Support

This release adds support for Rails 8.1, thanks to Alistair Norman. Rails 7.2 is now the minimum required version.

Require Rails 7.2+

Solidus Promotions

Martin Meyerhoff continues to improve the solidus_promotions implementation with a number of enhancements and refactors:

Configurable Stock Quantifier

The stock quantifier is now configurable, allowing stores to customize how available stock is calculated for variants.

Configurable stock quantifier

Configurable Order Mergeable Scope

The scope used to determine which orders can be merged is now configurable, giving stores more control over order merging behavior during sign-in.

Configurable Order Mergeable Scope

Configurable State Change Tracker

The state change tracker is now a configurable class, making it possible to customize or replace how order state changes are tracked.

Make state change tracker a configurable class

Recalculate Cart Prices

A new recalculate_cart_prices option allows stores to update line item prices when an order is recalculated, useful for handling price changes while a cart is still open.

Allow to recalculate cart prices

📦 Component Updates

Solidus Core

  • In-Memory Order Updater: New alternative order updater optimized for fewer database interactions
  • Rails 8.1 Support: Full compatibility with the latest Rails release
  • Product Filters: Made product filters easier to override (PR)

Solidus Admin

  • Lookbook Fix: Fixed the Lookbook in sandbox applications (PR)

🔧 Technical Improvements

Linting & Code Quality

  • Upgraded to newest ESLint (v10) (PR)
  • Switched to StandardRB for Ruby linting (PR)

Extension Updates

Huge thanks to Alistair Norman for updating CI to GitHub Actions across multiple extensions:

  • solidus_subscriptions
  • solidus_i18n
  • solidus_starter_frontend
  • solidus_dev_support

Alistair also added Ruby 4 support to:

  • solidus_affirm
  • solidus_frontend_bootstrap

🔄 Breaking Changes

  • Rails 7.2 is now the minimum required Rails version. Applications on Rails 7.0 or 7.1 will need to upgrade before updating Solidus.

For the complete list of changes, see the full changelog.