Apps must enable bulk operations before use
Apps must now explicitly enable access to bulk queries or mutations in the Partner Dashboard to use them with the GraphQL Admin API. Unauthorized requests will return an access denied error.
Public · Ottawa, Canada · 444 releases · 9 this month
Also onQuarterly(SHOP earnings calendar)·Paydays(Pay schedule)
Apps must now explicitly enable access to bulk queries or mutations in the Partner Dashboard to use them with the GraphQL Admin API. Unauthorized requests will return an access denied error.
Shopify order routing functions in the unstable Function APIs can now rank locations across multiple fulfillment groups.
Shopify launched a feature preview on dev stores allowing developers to test app network access configurations and verify allowed navigation hosts and external server requests.
Starting in API version 2027-01 , in customer account full-page extensions the Navigation API currententrychange event sets event.from to the page the customer navigated away from, instead of the page they navigated to. This is a breaking change for customer account full-page extensions that read the new page from event.from .
In REST Admin API version 2027-01 and later, the line_item_id property on the Gift Card resource is read-only. Shopify ignores the property in create and update requests. Remove it from those requests before you upgrade.
As of GraphQL Admin API version 2027-01 , the FulfillmentOrderDestination object has a provinceCode field . It returns the alphanumeric code of the destination's province or state, such as ON for Ontario, so apps can read the code directly instead of mapping the province name themselves.
Shop SDK lead capture now supports Rich Authorization Requests (RAR), allowing developers to request specific profile data fields. Developers can now mark required or optional fields in a serialized JSON array.
The Promoted Placements beta now integrates Shop Campaigns, allowing developers to earn merchant-funded commissions on catalog search results. No code changes are required for existing integrations.
Apps can now configure metaobject definitions in shopify.app.toml to be queryable in Shopify analytics and ShopifyQL. This allows compatible fields to be used as dimensions and filters in reports.
Polaris Web Components 2.0 is now available on stable CDN channels, featuring a redesigned appearance that matches the updated Shopify admin.
You can now enable the analytics_queryable capability on metafield and metaobject definitions that you declare in shopify.app.toml . Merchants can then use those metafields and metaobjects as dimensions and filters in Shopify Analytics and ShopifyQL. Previously, you could set this capability only through the GraphQL Admin API.
As of API version 2026-10 , an exclusive lower bound ( > ) on a timestamp filter in the GraphQL Admin API search syntax excludes the full second. For example, created_at:>'2026-09-15T12:00:02Z' no longer returns an order created at 12:00:02.500 .
Checkout MCP and Cart MCP now support the UCP buyer consent extension ( dev.ucp.shopping.buyer_consent ) starting with UCP 2026-08-25 . Buyers can now make the same privacy and marketing choices in your agent that they'd make in a shop's own checkout, like opting in to email or SMS. Shops receive those choices with the cart, checkout, and order.
The visibility fields on CheckoutBrandingFooterContent and CheckoutAndAccountsConfigurationBrandingFooterContent now control only merchant-configurable footer content. Checkout can display Shopify-provided transaction information in the footer regardless of this setting.
The new Hydrogen is generally available today. Since the developer preview started in June, we've shipped seven releases based on feedback from developers using it. The big deal about the new Hydrogen is that it isn't a big deal: Hydrogen now works with any JavaScript framework.
Shop MCP lets your agent or app search Shopify Catalog, build carts, and complete Shop Pay checkout through a single MCP connection. It works with over 1 billion products in Shopify Catalog and doesn't require an API key for search. Nothing changes for existing Catalog API integrations, and no action is required.
Cart operations that leave the cart unchanged, for example, resubmitting the same values a cart already has, no longer trigger a carts/update webhook. Shopify sends a webhook every time a cart's contents or properties change. Previously, every cart operation produced a carts/update webhook.
The Catalog API now returns a merchant’s compare-at price as list_price on each product variant. Your app or agent can use list_price to tell when a product is marked down and by how much. The price field doesn’t change. No action is required. list_price is an optional field defined in the UCP catalog specification, version 2026-08-25 .
What's changed Flow Trigger Lifecycle Callback extensions now support relative URLs in addition to absolute HTTPS URLs. This works similarly to relative URLs with Flow action extensions.
Shopify POS 11.15 corrects the value returned by Discount.amount for Percentage discounts to match the Cart API contract. Extensions that used this value as money need to update their logic. What changed A 25% discount on a $200 line item now returns amount: 25 . POS 11.14 and earlier returned amount: 50 , the monetary amount deducted.
Update your app to account for discount Rollouts Summary Admin GraphQL API version 2026-10 adds a read-only rollouts connection across Discount types. Apps that read discounts should use Discount.rollouts alongside existing discount fields to account for Rollout-driven schedules and buyer reach.
Apps that create new discount types using Shopify Functions can now register shopify/Discount app intents. This lets Sidekick launch an app’s create and edit flows and promote them in the disambiguation picker. Apps can register an intent using either of these targets: admin.app.intent.link navigates to an existing page in a React Router app.
Apps that bill with the Billing API can now move their existing subscriptions to Shopify App Pricing by using the migration tool in the Partner Dashboard or new commands in Shopify CLI. Subscriptions move at the start of their next billing cycle, and merchants don’t need to re-approve charges.
Sidekick now surfaces app extensions that declare only intents , with no tools file. Previously an extension had to declare tools to be eligible for Sidekick, so an admin.app.intent.link or admin.app.intent.render extension that registered only an intent was skipped and Sidekick never suggested the app.
With today's release of AI Toolkit , all existing shopify- skills are consolidated into a single shopify skill. If you use AI Toolkit skills with agents or npx skills , you might need to update your environment.
The Polaris 2.0 release candidate is now available for embedded App Home interfaces. It includes the Shopify admin’s new visual styles, allowing your app to adopt the new look. The new Shopify admin design began rolling out progressively to merchants on September 15, 2026.
As of API version 2026-10, the GraphQL Admin API includes a feeDetails query for retrieving specialized fees charged to a shop. No action is required for existing apps. What changed The new feeDetails query returns a connection of FeeDetails objects. Each FeeDetails object includes: feeName and amount : The name of the fee and the amount charged.
Polaris Web Components 1.1 is now available on the stable Polaris CDN channels. This is the first minor release under the CDN's new semantic versioning model . The following URLs now serve Polaris 1.1 Apps using polaris.js or polaris-1.js receive the update automatically. No action is required.
Developers using Shopify App Pricing can now create unlimited private plans per app and add unlimited target stores to each plan, replacing the previous limits of 15 private plans and 20 stores per plan. No action is required to continue using existing plans. What changed A private plan is an app pricing plan available only to stores you select.
The deprecated automaticDiscounts query is removed from the GraphQL Admin API in version 2027-01 . If your app reads a shop’s automatic discounts through automaticDiscounts , you need to move to the discountNodes query with a method:automatic filter before you upgrade to 2027-01 .
The GraphQL Admin API now includes the auditTrail field on ProductVariantContextualPricing in API version 2026-10 . Apps with the read_products access scope can use this field to inspect the ordered adjustments that Shopify applied to a contextual product variant price. Existing apps do not need to take action.
Starting today, we're updating Events payloads, trigger syntax, and delivery headers. Classic Webhook subscriptions are unaffected. What's changed fields_changed now describes how each path changed The flat array becomes an object containing three arrays: added , updated , and removed .
Shopify Functions can now read metafields attached to delivery options in the cart. On API version 2026-10 , you can call metafield(namespace:, key:) on any option in cart.deliveryGroups.deliveryOptions . This affects apps that build Delivery Customization Functions and any other function whose input includes delivery options. No action is required.
The Discounts Allocator Function API, available only through the Discounts Allocator developer preview, has been removed and won’t be released. The developer preview is closed. Most developers don’t need to take action. The one exception is an app that still declares the purchase.discounts-allocator.run extension target.
Shopify CLI 4.8 adds shopify store commands that let you create and manage dev stores from your terminal or coding agent. These commands are available after you update to Shopify CLI 4.8.
Starting with Customer Account API version 2026-10, customer address inputs and objects support countryCode . The existing territoryCode field is deprecated but remains fully supported, so current integrations continue working without interruption. Developers should migrate to countryCode when adopting API version 2026-10.
Shopify storefronts now advertise support for Universal Commerce Protocol (UCP) version 2026-08-25 in their discovery profiles at /.well-known/ucp . This update adds compatibility with the 2026-08-25 protocol release and doesn’t require any changes to your existing integrations.
The Hydrogen developer preview adds new capabilities to the toolkit and extends the ways developers can build Shopify storefronts: Variant links: Links that name a variant, like the ones Shopify submits to a Google Shopping feed, now open on that variant instead of the product's default.
Polaris Web Components loaded from the Shopify CDN are moving to semantic versioning. Most apps will continue receiving compatible improvements automatically, while developers can choose when to adopt breaking changes. Existing apps don’t need to take immediate action.
Expiring offline access token refreshes now retain the previously used refresh token until an app begins using its replacement. This rollout helps apps recover when a refresh response is lost or isn’t persisted. No migration is required, but apps should continue to store every refreshed token pair atomically.
Starting September 23, 2026, Theme commands on Shopify CLI for password protected storefronts will require version 3.84.0 or later . Versions 3.83.x and earlier will no longer be supported for theme development workflows on password protected storefronts.
Shopify releases official PHP and Python app packages Shopify now publishes official, open-source packages for building apps in PHP and Python. shopify/shopify-app-php on Packagist and shopifyapp on PyPI have reached version 1.0 . They provide framework-agnostic primitives for request verification, token exchange, and Admin GraphQL requests.
You can now deploy Hydrogen storefronts to Oxygen from trial plan stores . Previously, Oxygen hosting required a paid plan. Note that trial plan stores don't include public environments, so deployment URLs always require a store login. Learn more about supported plans .
Starting October 1, 2026, the scriptTagCreate and scriptTagUpdate mutations will return an user error, and the ScriptTag REST Admin API resource will reject POST and PUT . The deprecation applies to all API versions, including older ones, so pinning won't defer it. On March 1, 2027, Shopify will stop injecting script tags into storefronts.
When Sidekick invokes an app intent declared on the admin.app.intent.link extension target, the Shopify admin now navigates the merchant to your extension's url as a full page, matching how Shopify's own admin intents behave. Previously, the same intent always opened in an overlay on top of the page the merchant was already on.
The Hydrogen developer preview adds new capabilities to the toolkit and extends the ways developers can build Shopify storefronts: Cart session attribution: Carts and Customer Account sessions stay in step, so signed-in shoppers reach checkout with their saved details instead of a guest flow.
The shop_campaign_insights schema is now available in the ShopifyQL . Analytics and reporting apps can query Shop Campaigns performance data on behalf of authorized merchants using the existing shopifyqlQuery field with read_reports scope.
The updateCart standard action now updates cart attributes, and a new shopify:cart:attributes-update event fires whenever an attributes update is initiated. Before this, changing an attribute meant calling the Storefront API yourself, and nothing told your app when one changed.
Online stores now expose WebMCP tools that AI agents can call. Agents can search your catalog, manage the shopper's cart, and go to checkout on the shopper's behalf, all in the tab they're looking at. The tools work through WebMCP , a proposed web standard that lets a page register tools with the browser.
We’ve added a trackingNumbers field to OrderCreateFulfillmentInput , so you can attach multiple tracking numbers to a fulfillment when importing orders. If you use the orderCreate mutation to import orders that ship in more than one package, you no longer need to update the fulfillment after creation to add additional tracking numbers.
We've updated three Built for Shopify requirements for Fulfillment services apps . The updated thresholds better reflect how fulfillment operations run in practice, making Built for Shopify achievable for more high-quality fulfillment apps. No action is required.
The Hydrogen developer preview adds new capabilities to the toolkit and extends the ways developers can build Shopify storefronts: Vue bindings: Build your storefront in Vue with the same Hydrogen APIs you know from React, through the new @shopify/hydrogen/vue entrypoint.
Collaborator access is built on trust. When a merchant approves a request, they're giving a partner access to a live store , and merchants need enough context to make that decision with confidence. Building on identity verification for partners , merchants now see details about your partner organization on every new collaborator request.
POS UI Extensions 2026-07 introduces the Printing API ( shopify.printing ), which enables extensions to discover hardware printers with getPrinters() and send documents directly to a connected receipt printer with print() . The Printing API supersedes shopify.print , which is now deprecated.
Starting in API version 2026-10, the GraphQL Admin API returns an error when a query filters by a metafield that isn't set up for filtering, instead of silently returning incorrect results. This is a breaking change. It affects apps that filter resources by metafield on version 2026-10 or later, and you'll need to update affected queries before you upgrade.
The Liquid July ’26 developer preview introduces a simpler way to build theme pages. Page structure can live directly in a Liquid template, where developers and coding agents can read and edit everything in one place. The peview adds two Liquid tags: {% block %} renders a reusable theme block directly from a template.
The physical inventory feature preview gives you early access to a new set of inventory APIs in the unstable version of the GraphQL Admin API. Enable it on a development store to build and test against the core primitives merchants use to organize a stockroom: bins, counts, and purchase orders.
Shopify's card-deposit endpoint now requires a Shopify-issued mTLS client certificate. Apps that store cardholder data with the customerPaymentMethodCreditCardCreate and customerPaymentMethodCreditCardUpdate GraphQL Admin API mutations must first deposit that data at Shopify's /sessions card-deposit endpoint to receive a session identifier.
Starting with POS UI Extensions API version 2026-07, product bundle components in cart line item data include discount allocation details. Apps can access component-level discount allocations from bundle components on a cart line item, for example: shopify.cartLineItem.components?.[0]?.discountAllocations The same LineItem shape is also used in Cart API...
We’ve made several updates to App Pricing: Increased plan limits: You can now create up to 8 public plans (previously 4) and 15 private plans (previously 10) per app.
| Release-notes page | Site | Feed |
|---|---|---|
| Shopify Changelog changelog.shopify.com | changelog.shopify.com | None |
| Shopify POS version 11.0 changelog.shopify.com | changelog.shopify.com | None |
| The Spring '26 Edition is live changelog.shopify.com | changelog.shopify.com | None |