Skip to content

September 2026

Release 2026.9.0, published September 30, 2026.

  • Added feature-content-blocks, which renders CMS blocks (hero, columns, teasers, product and category rows, FAQ, and more) for every supported CMS
  • Added the analytics package, a typed event bus the cart, checkout, and quote features emit to
  • Added the consent package, one useConsent interface with Usercentrics and Cookiebot adapters
  • Added the testing package and evolve 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 useAddressBook for 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 CartGrid follow 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
  • Made OrderDetail and QuoteDetail take their pay and order actions as nodes instead of callbacks, so pages stay Server Components (breaking: pass payAction, orderAction, or orderLink)
  • 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 as order.total.gross.currency)
  • Made persisted document ids sha256:-prefixed hashes, matching GraphQL Codegen client-preset 6 (breaking: upgrade codegen alongside)
  • Made the QuantityStepper labels 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
  • Updated dependencies, clearing all audit advisories, including two critical Next.js advisories, and made next a peer dependency
  • 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 orderPlace for Medusa and SFCC, and paymentCreate for 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 parseNotification to read notifications back
  • Let any associate who may check out add a company address, added the MANAGE_COMPANY_DETAILS capability, 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 simulate and evolve cleanup commands
  • Made a bare evolve list 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
  • Removed checkoutComplete (breaking: use orderPlace and paymentCreate), and renamed the order mutation error fields to orderErrors
  • Removed Order.currency (breaking: read the currency from an amount, such as total.gross.currency)
  • Moved the AWS Lambda entry points to cloud-adapter-aws, and initObservability and configureSentry to @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 removed Query.site
  • Made the commercetools products query work without the deprecated Product Projection Search
  • Made a business unit cart go through the associate endpoint (requires CreateMyCarts in 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.createdBy being 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
  • Updated dependencies, and moved build and test tooling out of runtime dependencies