Solidus Status Update – Solidus v4.7

Chris Todorov

Chris Todorov

5 May 2026 - 4 mins read

Cover image of Solidus Status Update – Solidus v4.7 post

It’s been a few months since the last status update, but we’re excited to share with you all the great work that has happened over the past little while in the Solidus ecosystem.

Solidus v4.7.0 has been released! Head over to the release notes to see the list of changes in this release and check out the upgrade instructions in the guides. This version includes support for Rails 8.1 and also makes Rails 7.2 required for new versions of Solidus. (Thanks to Alistair!)

What’s new in v4.7.0

A new in-memory order updater

This is one change that is quite exciting! The team at Super Good worked hard to get this change ready for prime time. Solidus now has an alternative order updater implementation that is optimized for reducing database interactions.

Some of the reasons for why we are so excited about this change are

  • 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 whenever an order is updated (which is a very often).
  • Order update simulation: By passing persist: false to the in-memory order updater, an order can be recalculated without writing the changes to the database. This enables stores to let administrators and customers preview changes to orders before accepting those changes.

This PR for this in-memory order updater can be found here. To use this you need to opt-in by updating the order_recalculator_class in your app configuration. If you enable this on your store, head over to the GitHub Discussions and let us know how it worked! Early experiments show significant performance improvements over the existing order updater.

Solidus Promotions

Martin Meyerhoff has refactored and enhanced the Solidus Promotions implementation. If you use promotions on your Solidus store, take a look at all the great changes that are now merged in core:

  • Changes to promotion condition API, combining the applicable? and eligible? checks (#6360)
  • A new model to evaluate promotion eligibility without applying a promotion (#6430)
  • Updates to promotion migrator to better handle duplicate codes (#6422)
  • Changes to flatten promotion condition configuration (#6425)
  • Validating promotion uniqueness per order (#6424)
  • Deprecate promotion "level" (#6357)
  • Fix to First Order promotion condition to not fail on canceled orders (#6343)

Other changes

  • We’ve merged a change that makes product filters easier to override (#6408)
  • Improved linting in Solidus gem
    • Upgraded to newest ESLint (#6420)
    • Switched to StandardRB (#6421)
  • Fixed the Lookbook in sandbox applications (#6417)

Extension Changes

Huge thanks to Alistair Norman for a lot of progress on updating the CI for the following Solidus extensions to use GitHub Actions:

  • solidus_subscriptions
  • solidus_i18n
  • solidus_starter_frontend
  • solidus_dev_support

Alistair added Ruby 4 support to the following gems:

  • solidus_affirm
  • solidus_frontend_bootstrap