Shopify Release Notes
429 release notes curated from 237 sources by the Releasebot Team. Last updated: May 22, 2026
Shopify Products
- May 21, 2026
- Date parsed from source:May 21, 2026
- First seen by Releasebot:May 22, 2026
Shopify CLI 4.0: SemVer, auto-updates, removing deprecated flags and commands
Shopify Developers releases Shopify CLI 4.0 with clearer semantic versioning, automatic self-updates, and the removal of the deprecated --force flag from app deploy and app release, alongside other deprecated command and flag cleanups.
The release of Shopify CLI 4.0 today brings clarity to CLI versioning, the introduction of automatic updates, and the announced removal of the deprecated --force flag from shopify app deploy.
Semantic Versioning
Shopify CLI is now following semantic versioning practices. Releases with new features will be minor versions, and bug fixes will be patch versions. When required, major version releases will be used to communicate breaking changes to CLI command structure or behavior.
For more information, see our announcement of the move to SemVer.
Automatic Upgrades
Starting with Shopify CLI 4.0, Shopify CLI upgrades itself automatically using the package manager you installed it with. Auto-upgrade is skipped in CI, project-local installs, and for major version releases. Automatic upgrades can be disabled with the shopify config autoupgrade off command.
For more information, see Shopify CLI documentation.
Removal of the --force flag for app releases
The --force flag on the app deploy and app release commands didn’t distinguish between low-risk operations (adding or updating extensions) and high-risk ones (deleting them). This flag has been removed in Shopify CLI 4.0. The previously released --allow-updates and --allow-deletes flags give you granular control, so your CI/CD pipelines can run unattended without the risk of accidental, irreversible deletions.
For more information, see the March 2026 changelog.
Other removed commands and flags
The following deprecated commands and flags have also been removed in Shopify CLI 4.0:
- shopify webhook trigger (use shopify app webhook trigger)
- shopify theme serve (use shopify theme dev)
- shopify app generate schema (use shopify app function schema)
- shopify app webhook trigger --shared-secret (use --client-secret)
- shopify app generate extension --type (use --template)
- May 20, 2026
- Date parsed from source:May 20, 2026
- First seen by Releasebot:May 22, 2026
Feature preview: Customer account improvements
Shopify Developers previews a refreshed customer accounts experience with improved navigation, cleaner layouts, and more consistent behavior across devices, while helping developers test Shopify Extensions against the new single-column design and updated order action visibility before release to merchants.
Customer accounts are getting a visual refresh, featuring improved navigation, layout, and consistency across devices. You can preview these changes now and test your Shopify Extensions within the updated layout.
What's changing:
- Single-column native pages: These are now consistent across both desktop and mobile, with simplified navigation. Inline extensions will render in a narrower page width compared to the previous wider layout. Full-page extensions can either adopt our mobile-first, narrow layout that matches native pages or expand to a wider layout for data-heavy content.
- Increased visibility for order action extensions: Order action extensions are now more visible, and order summary extensions are no longer hidden behind a tap on mobile devices. This change makes it easier for customers to discover and use the features you've built.
- Existing extension targets are mapped to the new layout: Ensuring compatibility with the new design. See extension targets by page.
All current extension targets remain supported. However, this is an ideal time to review them. Testing now gives you a head start on any adjustments needed to ensure your extensions integrate seamlessly before these design updates are released to merchants. The feature preview will be available until June 12, 2026.
Read our documentation to start the preview. You can ask questions and share feedback in the Shopify community.
Original source All of your release notes in one feed
Join Releasebot and get updates from Shopify and hundreds of other software products.
- May 20, 2026
- Date parsed from source:May 20, 2026
- First seen by Releasebot:May 22, 2026
Shop Minis March April 2026 update
Shopify Developers releases major Shop Minis updates with optional consent, new hooks for scopes and permissions, and intent-based launch context. It also adds async storage limits, out-of-stock handling with availableForSale, pnpm support, and tighter storage and ESLint rules.
New Features
Optional Consent
Users can now reject scopes and continue using your Mini. Consent is no longer all-or-nothing — if a user declines a scope, your Mini should gracefully degrade rather than block the experience. If your Mini hard-fails when a scope is rejected, please update it using the new hooks below.
useCheckScopesConsent Hook
Check at runtime which scopes a user has granted. Use this to conditionally render features that depend on a particular scope.
Usage:
import {useCheckScopesConsent} from '@shopify/shop-minis-react' function MyMini() { const {scopes} = useCheckScopesConsent() if (scopes.includes('product_lists:write')) { return <SaveToListButton /> } return <SignInPrompt /> }useRequestScopesConsent Hook
Re-request consent after a user has previously declined. The hook must be invoked from a user interaction — you cannot re-prompt automatically. Use this for flows where granting consent unlocks a clear, user-initiated action.
Usage:
import {useRequestScopesConsent} from '@shopify/shop-minis-react' function GrantAccessButton() { const {requestScopesConsent} = useRequestScopesConsent() return ( <button onClick={() => requestScopesConsent(['product_lists:write'])}> Enable saving products </button> ) }useCheckPermissions Hook
Separate from scopes, useCheckPermissions lets your Mini check OS-level permissions (camera, photo library, and so on) before invoking an action that requires them.
Usage:
import {useCheckPermissions} from '@shopify/shop-minis-react' function CameraFeature() { const {permissions} = useCheckPermissions(['camera']) if (permissions.camera === 'granted') { return <CameraView /> } return <RequestCameraButton /> }request_blocked Sentinel
When a user has declined a scope or permission and the platform will not re-prompt, the relevant hooks now return a request_blocked sentinel value instead of null. This lets you distinguish "not asked yet" from "asked and blocked" and tailor your UI accordingly. See the Scopes Consent docs on shopify.dev for the full state machine.
Intents
Intents are a new communication layer between the Shop app and Shop Minis. The Shop app launches your Mini from contextually relevant moments — such as a product detail page — and passes along the context (typically a product). For partners, this opens a new path to distribution: instead of relying on the Explore tab alone, your Mini can be surfaced where buyer intent is highest.
Two intents are supported today:
Intent What it's for try_on Virtual try-on Minis — clothing, accessories, anything wearable view_in AR and room-placement Minis — furniture, decor, anything you'd visualize in a spaceIf your Mini fits one of the supported intents, or you have a different use case in mind (recipe building, gift finding, custom configurations, and so on), reach out to the Shop Minis team — we're onboarding partners now and actively scoping new intents.
useIntent Hook
Parse the intent that launched your Mini. Use this to read the context the Shop app passed in and route the user to the right experience.
Usage:
import {useIntent} from '@shopify/shop-minis-react' function MyMini() { const intent = useIntent() if (intent?.action === 'try_on') { return <TryOn productId={intent.productId} /> } return <DefaultExperience /> }Async Storage Limits
To keep Minis fast, we're introducing limits on useAsyncStorage and useSecureStorage:
- 10 keys max per Mini
- 1 MB per key
Most Minis are well under both limits. Async storage is intended for small structured data — if you're persisting larger assets like images, use a dedicated upload hook and store the resulting URL instead of the raw bytes.
availableForSale on Product Hooks
Product hooks now expose availableForSale on variants, and the SDK's commerce buttons (AddToCartButton, BuyNowButton) handle the out-of-stock state out of the box. If you render product cards or build a custom commerce flow, check availableForSale before letting users add to cart.
pnpm Support in the CLI
npx minis create now detects and supports pnpm alongside npm and yarn.
Usage:
npx minis create # Select pnpm when promptedDocumentation Updates
Scopes Consent
The Scopes Consent page on shopify.dev has been updated to reflect optional consent. It now documents the full state machine (granted, declined, request_blocked) and includes guidance for the new useCheckScopesConsent, useRequestScopesConsent, and useCheckPermissions hooks.
Intents
A new documentation page covers intents end-to-end: what they are, which intents are supported today (try_on, view_in), the launch-context contract, and how to parse the intent in your Mini with the useIntent hook.
Deprecations
localStorage and sessionStorage
Browser storage is no longer permitted inside the Mini webview — it's disabled on Android and reset between sessions on iOS. The Shop Minis ESLint config now flags any use of localStorage or sessionStorage. Migrate to useAsyncStorage (persistent) or useSecureStorage (encrypted).
Package Versions
Package Version @shopify/shop-minis-platform 0.17.0 @shopify/shop-minis-react 0.20.0 @shopify/shop-minis-cli 0.3.11Other Changes
- Phantom dependency imports blocked: The partner ESLint config flags imports of packages not declared in your package.json.
- Transitive SDK deps allowed: clsx, tailwind-merge, and cva are now explicitly available for partner use.
- TypeScript 6: The SDK is now built against TypeScript 6.0.2 (up from 5.8.3).
Summary
March-April 2026 brings significant improvements to the Shop Minis platform:
- Optional consent is now the default — three new hooks let your Mini gracefully degrade when scopes are declined.
- Intents are a new communication layer for launching your Mini from contextually relevant moments in the Shop app — try_on and view_in supported today.
- Async storage limits of 10 keys per Mini, 1 MB per key.
- availableForSale on product variants for first-class out-of-stock handling.
- localStorage and sessionStorage are no longer permitted in the Mini webview.
For questions or feedback, reach out to the Shop Minis team.
Original source - May 20, 2026
- Date parsed from source:May 20, 2026
- First seen by Releasebot:May 22, 2026
Expiring offline access tokens required for all public apps as of January 1, 2027
Shopify Developers expands expiring offline access tokens to all public apps using the Admin API, strengthening merchant data protection. Starting January 1, 2027, public apps still using non-expiring tokens will get authentication errors, while custom apps and merchant-created apps are unaffected.
We're changing how public apps handle offline access tokens to enhance merchant data protection. Starting January 1, 2027, all public apps must use expiring offline access tokens when calling the Admin API. After that date, public apps still using non-expiring tokens will receive authentication errors.
This extends the April 1, 2026 change, which applied only to newly created public apps, to all public apps, including those created before April 1, 2026.
What apps are affected
Public apps making Admin API requests using non-expiring offline access tokens, including apps created before April 1, 2026
What apps are unaffected
- Custom apps
- Apps created by merchants either in the Dev Dashboard or in the admin
Why we're making this change
Non-expiring tokens, if leaked, remain valid indefinitely. Expiring tokens close that window in 60 minutes and rotate automatically, dramatically reducing the impact of a credential leak. This aligns with modern OAuth best practices, and as a developer it gives your app a predictable refresh flow.
Action required
Existing public apps: Migrate from non-expiring to expiring offline access tokens.
Merchants don't need to reinstall, as your app exchanges existing tokens through code. Follow the migration guide for the step-by-step path. If you use Shopify's app templates and official API libraries, refresh handling is already implemented; you only need to handle the token exchange and storage updates.
Need help? Engage with the dev platform community for support and questions.
Original source - May 20, 2026
- Date parsed from source:May 20, 2026
- First seen by Releasebot:May 22, 2026
A refreshed sign-in page for customer accounts, now customizable in the editor
Shopify adds a branded two-column customer account sign-in page with customizable image, logo, colors, and typography.
Bring your brand to life on the customer account sign-in page.
A new two-column layout adds a customizable brand image, alongside controls for logo, colors, and typography in the editor.
Original source - May 20, 2026
- Date parsed from source:May 20, 2026
- First seen by Releasebot:May 22, 2026
View cumulative metrics over time in Analytics
Shopify adds cumulative views for time-series metrics with targets and prior-period comparisons to track running totals.
Toggle cumulative view on various time-series metric to see running totals over time. Use it on its own, with targets, or with prior-period comparisons to track progress.
Original source - May 19, 2026
- Date parsed from source:May 19, 2026
- First seen by Releasebot:May 20, 2026
Next Generation Events now available in developer preview
Shopify Developers releases Next Generation Events in developer preview, bringing field-level triggers, custom GraphQL payloads, delivery change details, query filtering, and code-based subscription setup for more precise event handling.
Next Generation Events are now available in developer preview, with field-level control over when events fire, what data they carry, and what triggered each delivery.
Subscribe to exactly what you care about
Field-level triggers pre-qualify deliveries before they reach your endpoint. A subscription scoped to
product.variants.pricewon't fire on title edits, tag updates, or status changes. Only when the price changes.Get the payload your app needs, not a fixed schema
You define the delivery payload with a standard Admin GraphQL query. No over-fetching fields you'll discard. No extra API call to get the data you actually wanted after the webhook lands.
Know what fired for each delivery
Every delivery includes
fields_changed: an explicit list of the fields that triggered the event, with full entity paths and IDs. That means you don't need to infer, or diff against prior state.Filter on current state
query_filternarrows deliveries based on the current state of your query output. Use it to skip events that don't meet your conditions, like only delivering for active products.Configure in code
Subscriptions live in
shopify.app.tomlalongside your other app configuration. Version-controlled, reviewable, and deployable.As a developer preview, Events are available in the unstable API version and APIs may change. Product and Customer topics are live today.
Configuration and payload
[events] api_version = "unstable" [[events.subscription]] handle = "price_sync" topic = "Product" actions = ["update"] triggers = ["product.variants.price", "product.variants.compareAtPrice"] uri = "/api/events" query = """ query priceSync($productId: ID!, $variantsId: ID!) { productVariant(id: $variantsId) { id price compareAtPrice sku } product(id: $productId) { id title status } } """ query_filter = "product.status:'ACTIVE'"Every delivery includes
fields_changed, data from your query, andquery_variablesused to fetch it:{ "topic": "Product", "action": "update", "handle": "price_sync", "data": { "productVariant": { "id": "gid://shopify/ProductVariant/456", "price": "24.99", "compareAtPrice": "34.99", "sku": "SIGNAL-NOT-NOISE" }, "product": { "id": "gid://shopify/Product/123", "title": "Peace & Quiet Tee", "status": "ACTIVE" } }, "fields_changed": [ "product[id: 'gid://shopify/Product/123'].variants[id: 'gid://shopify/ProductVariant/456'].price" ], "query_variables": { "productId": "gid://shopify/Product/123", "variantsId": "gid://shopify/ProductVariant/456" } }Learn more
Learn more about how Events relate to Webhooks: Get started by Creating an Events subscription.
Original source - May 19, 2026
- Date parsed from source:May 19, 2026
- First seen by Releasebot:May 20, 2026
Create SMS marketing automations in Shopify Messaging
Shopify adds automatic SMS messages to recover abandoned carts, checkouts, and more.
Automatically send SMS messages to recover abandoned carts, abandoned checkouts, and more.
Original source - May 18, 2026
- Date parsed from source:May 18, 2026
- First seen by Releasebot:May 19, 2026
Shipping line field now available on FulfillmentOrderLineItem
Shopify Developers adds shipping Line query support on Fulfillment Order Line Item, giving apps access to the associated Shipping Line when available. This helps order management and fulfillment apps map each line item to the right shipping method with greater accuracy.
You can query the shipping Line field on Fulfillment Order Line Item
This field returns the Shipping Line associated with a fulfillment order line item, if available. This feature simplifies the process for order management and fulfillment apps to identify the shipping method for each line item. It is particularly useful in scenarios where fulfillment orders are merged across different delivery profiles, and the original per-line shipping service is not identified by the fulfillment order's delivery method.
For example, apps can use properties such as shipping Line.code, shipping Line.title, and shipping Line.source to accurately map line items to the correct carrier service or shipping method.
For more information, refer to the Fulfillment Order Line Item reference.
Original source - May 15, 2026
- Date parsed from source:May 15, 2026
- First seen by Releasebot:May 16, 2026
Sell from multiple legal entities in the same country using Shopify Payments
Shopify now supports multiple Shopify Payments accounts for different legal entities in one country through Markets.
Merchants can now use multiple Shopify Payments accounts for different legal entities in the same country, managed from one store with Markets.
Original source - May 14, 2026
- Date parsed from source:May 14, 2026
- First seen by Releasebot:May 15, 2026
Flow: Make test events for your workflows with existing shop data
Shopify adds workflow testing with existing shop data using Sidekick or selected Admin resources.
Test workflows before activating using existing shop data with two new options: generate using Sidekick or choose orders, products, and other resources from the Admin.
Original source - May 14, 2026
- Date parsed from source:May 14, 2026
- First seen by Releasebot:May 15, 2026
The Balance mobile app has a new look
Shopify adds a new Balance mobile app design for smoother money management.
The Balance mobile app has a new design for smoother money management.
Original source - May 13, 2026
- Date parsed from source:May 13, 2026
- First seen by Releasebot:May 14, 2026
Function run log details are now automatically visible with the right access scopes
Shopify Developers now supports automatic function run logs in the Dev Dashboard, giving apps access to run details based on granted scopes without needing merchants to share logs manually. Developers can verify and request the scopes needed to view these logs.
What's Changed
You no longer need to ask merchants to share function run logs with you. These logs are now automatically available in the Dev Dashboard for any function your app has the necessary access scopes to view.
Function run logs in the Dev Dashboard are now accessible based on the access scopes granted to your app by the merchant. The required scopes to view a log are determined by the function's input query. If your app has the necessary scopes to read these fields via the GraphQL Admin API, you will automatically see the run details without needing any additional action from the merchant.
What You Need to Do
If you expect to see function run details but don't, ensure your app has the scopes required by the input query. Here's how you can check:
- Request the scopes during your app's installation/authentication process: This is ideal for scopes your app consistently needs. Refer to Access scopes for instructions on declaring and requesting access scopes.
- Request protected customer data scopes when accessing customer data: Some fields, like customer details and addresses, require additional protected customer data access. Consult Protected customer data for the approval process and necessary data-level scopes.
- Use optional scopes for temporary or debugging access: If a scope is needed occasionally, such as for debugging, request it as an optional scope. Merchants can grant or revoke it without reinstalling the app.
Once the required scopes are granted, the run details will automatically be visible the next time you access the log.
Original source - May 13, 2026
- Date parsed from source:May 13, 2026
- First seen by Releasebot:May 14, 2026
Shopify Tax has expanded to Canada
Shopify adds smart categorization for Canada sales tax rates and provincial tax liability tracking in Shopify Tax.
You can now use smart categorization to accurately calculate sales tax rates in Canada and track tax liability across provinces and territories using Shopify Tax.
Original source - May 13, 2026
- Date parsed from source:May 13, 2026
- First seen by Releasebot:May 14, 2026
Unified branding customization across checkout and customer accounts
Shopify expands checkout branding settings across checkout, customer accounts, and sign-in pages from the checkout and accounts editor.
Your checkout branding settings now apply consistently across checkout, customer accounts, and sign-in pages — all from the checkout and accounts editor.
Original source
Curated by the Releasebot team
Releasebot is an aggregator of official release notes from hundreds of software vendors and thousands of sources.
Our editorial process involves the manual review and audit of release notes procured with the help of automated systems.
Similar to Shopify with recent updates:
- Perplexity release notes24 release notes · Latest May 11, 2026
- Anthropic release notes574 release notes · Latest May 22, 2026
- OpenAI release notes682 release notes · Latest May 21, 2026
- Obsidian release notes84 release notes · Latest Mar 23, 2026
- Notion release notes128 release notes · Latest May 15, 2026
- xAI release notes74 release notes · Latest May 21, 2026