<Back to Updates

Developer preview release notes: October 8, 2026

October 8, 2026

New

Predictive search in the React Router template

The React Router template has a predictive search drawer that suggests products as the shopper types.

Swap a cart line's variant

Cart line updates accept a merchandiseId, so you can switch a line to another variant without removing it and adding it again.

UCP business profile

handleShopifyRoutes serves your store's UCP business profile at /.well-known/ucp.

Changed

Product view prices include the currency

product_viewed events take the variant's full price instead of the amount string, so Shopify analytics reads the currency from the event. Pass variant.price where you used to pass variant.price.amount.

Destinations that read price get the {amount, currencyCode} object too.

One kind of cart change per request

The cart route rejects JSON requests that mix line, discount code, attribute, and note changes. Send each kind as a separate request. The cart store rolls back the rejected call's optimistic changes. Hydrogen's cart forms already work this way.

Background cache refreshes

Stale-while-revalidate refreshes of Storefront API responses keep running after the request that started them ends, up to the client's defaultTimeoutInMs.

Agent skills

The cart, collection, and variant form skills cover these changes.

Fixes

  • Discount codes and fields from your custom CartFragment update as soon as a cart change settles, instead of waiting for the next refresh.
  • formatMoney() ranges with withoutTrailingZeros no longer round the maximum. $10.00 – $19.99 used to render as $10 – $20.
  • formatMoney().amount no longer ends with a space in locales like fr-FR.
  • handleShopifyRedirects logs Storefront API errors from the redirect lookup, such as THROTTLED, instead of dropping them.
  • The React Router and Next.js templates pass the shop's currency to ShopifyScripts. If your app started from an earlier preview template, pass it in the i18n prop too.

Removed

  • The standalone useCartActions export from @shopify/hydrogen/vue. Use the one from createCartComponents(), which keeps your CartFragment types and still has refresh().

Migration

For migration guidance, compare the commits that bracket this release. The diff shows the changes between the previous preview and this release:

Code Example

git diff 5fa006e3b..00e9dd849

Get building

Spin up a new Hydrogen app in minutes.

See documentation