September 2026
Release 2026.9.0, published September 30, 2026.
Storefront packages
Section titled “Storefront packages”Feature
Section titled “Feature”- Added feature-content-blocks, which renders CMS blocks (hero, columns, teasers, product and category rows, FAQ, and more) for every supported CMS
- Added the
analyticspackage, a typed event bus the cart, checkout, and quote features emit to - Added the
consentpackage, oneuseConsentinterface with Usercentrics and Cookiebot adapters - Added the
testingpackage andevolve add e2e: Playwright fixtures, API helpers for customers, carts, orders, and quotes, merchant simulation, test-data cleanup, and SpamOK and Mailpit mailboxes - Added the chat-proxy, contentful-preview, and storyblok-preview packages
- Added order history filters by state and date, and order search by SKU
- Added a paginated, searchable company address book, and
useAddressBookfor the checkout - Added estimated shipping, reverse-charge, and export (0% VAT) rows to the cart, order, and quote summaries
- Reworked the checkout: line items beside the summary, the address book in a drawer or dialog, and focus on the next step after Continue
- Added a sticky total and checkout bar on narrow carts, and made
CartGridfollow the cart’s own width - Added “order again”, the payment method, the carrier logo, tracking codes, and delivered items to the order detail, and a page-level action to the order confirmation
- Added a brand contrast check and
evolve add brand-contrast, and made every component story pass axe and WCAG 2.2 target-size checks
Changed
Section titled “Changed”- Made
OrderDetailandQuoteDetailtake their pay and order actions as nodes instead of callbacks, so pages stay Server Components (breaking: passpayAction,orderAction, ororderLink) - Renamed the order mutation error fields to
orderErrors(breaking: upgrade the framework first) - Stopped selecting
Order.currency(breaking: read the currency from an amount, such asorder.total.gross.currency) - Made persisted document ids
sha256:-prefixed hashes, matching GraphQL Codegen client-preset 6 (breaking: upgrade codegen alongside) - Made the
QuantityStepperlabels required, so they are always localized (breaking: pass the labels)
- Fixed every add-to-cart creating a new cart
- Fixed centered dialogs overflowing the screen, and their footer covering a focused field
- Fixed the password reset confirmation never showing
- Fixed unknown invoice and return statuses showing a translation key
Dependency
Section titled “Dependency”- Updated dependencies, clearing all audit advisories, including two critical Next.js advisories, and made
nexta peer dependency
Framework packages
Section titled “Framework packages”Feature
Section titled “Feature”- Added reverse charge and export at 0% VAT for company carts, based on the billing country, and estimated shipping costs on the cart
- Added shipment status, delivered items, and tracking to orders, and order search by SKU with filters by state and date
- Added
orderPlacefor Medusa and SFCC, andpaymentCreatefor SFCC - Added a commercetools API Extension module with built-in extensions
- Added internal events to the module contract, with a commercetools producer for the CMS packages
- Added an associate-invited notification, and
parseNotificationto read notifications back - Let any associate who may check out add a company address, added the
MANAGE_COMPANY_DETAILScapability, and added search to a business unit’s associates - Carry the customer’s default addresses onto the cart on sign-in and when a default changes
- Added test tooling: the back-office simulator as a library, a test-support service, and the
evolve simulateandevolve cleanupcommands - Made a bare
evolvelist the available commands, and run workspace commands from a monorepo root - Added a choice of one tracer (OpenTelemetry or Sentry), reporting of a blocked event loop, and span names that say which host and resource a call reaches
Changed
Section titled “Changed”- Removed
checkoutComplete(breaking: useorderPlaceandpaymentCreate), and renamed the order mutation error fields toorderErrors - Removed
Order.currency(breaking: read the currency from an amount, such astotal.gross.currency) - Moved the AWS Lambda entry points to
cloud-adapter-aws, andinitObservabilityandconfigureSentryto@evolve-framework/core/observability/configure, which keeps Sentry and OpenTelemetry out of the logger import (breaking: update the imports) - Made each commercetools module ask only for the custom type keys it writes, and fail at startup when one is missing
- Served one CMS GraphQL contract from
schemas, and removedQuery.site - Made the commercetools
productsquery work without the deprecated Product Projection Search - Made a business unit cart go through the associate endpoint (requires
CreateMyCartsin the unit)
- Fixed associate management: a deactivated associate loses their permissions, a colleague without an account can be invited, a conflicting change is retried, and a deleted customer leaves their business units
- Fixed
Order.createdBybeing empty for business unit orders - Fixed an abandoned payment redirect leaving an order unpayable
- Fixed queued user notifications failing validation, and message publishers reporting success after a failed publish
- Fixed the configured commercetools user scopes being ignored
- Kept credentials and access tokens out of commercetools errors and Storyblok logs
Dependency
Section titled “Dependency”- Updated dependencies, and moved build and test tooling out of runtime dependencies

