Summary Apps can now discover Rollouts, inspect their schedules, traffic allocation, and resource changes, and receive notifications when they change. These capabilities help apps understand and respond to coordinated launches, experiments, and temporary events across discounts, catalogs, themes, and checkout and accounts configurations. What's new Discover and read Rollouts. Use the root rollouts
Developer ChangelogAction RequiredNewAdmin GraphQL API
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. What's changing Merchants can include discounts in Rollouts to coordinate launches, test discounts with
Line items in Orders webhook payloads now include a selling_plan_id field. This field identifies the selling plan applied to a subscription line item, which helps you avoid extra API calls to look up that information. The change applies to API version 2026-10 and later, and you don’t need to take any action to keep your app working. Previously, if your app needed to know which selling plan applied
As of the 2026-10 GraphQL Admin API version, the PointOfSaleDevice object includes a new fiscalDeviceIdentifier field. This field returns the Shopify-assigned fiscal register identifier (manufacturing number) for a POS device. You only need to adopt it if your app supports in-person fiscal compliance workflows. What changed The PointOfSaleDevice object in the GraphQL Admin API now includes a nulla
Developer ChangelogAction RequiredBreaking API ChangeAdmin GraphQL API
As of API version 2027-01, the metafieldInteger collection source condition inputs and types is removed from GraphQL Admin API. If you use metafieldInteger to create or read collection source conditions, you need to migrate to metafieldInt before you upgrade to API version 2027-01. What changed With metafieldInt, the value field on integer metafield conditions changes type from Int to String, to a
Starting in API version 2026-10, the shopifyqlQuery query in the GraphQL Admin API returns a new parseWarnings field on ShopifyqlQueryResponse. This field surfaces non-fatal issues, such as the use of fields scheduled for deprecation, so you can detect and address them proactively. What changed shopifyqlQuery now returns a parseWarnings field alongside your results. The field is always present: it
As of the 2026-10 GraphQL Admin API version, the orderCancel mutation returns a new jobResult field of type OrderCancelJobResult. Order cancellations run asynchronously. The jobResult field provides a structured, cancellation-specific result, including the cancellation status, any errors, and the affected order. Use this field to check whether the cancellation completed successfully and to handle
Developer ChangelogAction RequiredNewAdmin GraphQL APICustomer Account API
SMS marketing consent is now available through the new smsMarketingConsent field on the CustomerPhoneNumber object. This field uses the same structured consent model as WhatsApp. The existing flat SMS marketing consent fields on CustomerPhoneNumber remain available for backward compatibility but are now deprecated. New integrations should use smsMarketingConsent, and existing integrations should p
Developer ChangelogAction RequiredBreaking API ChangeAdmin GraphQL APIEvents & webhooks
Starting with API version 2027-01, third-party tax apps will receive Global IDs (GIDs) in tax calculation requests and tax summary webhook payloads for all entity references of the summary section. This aligns with how Partners interact with other Shopify APIs. These apps can now use the same identifiers across all Shopify endpoints without managing different ID formats for tax-specific integratio
A new SubscriptionContractCalculation API is now available to manage subscriptions. This new API runs subscription contract edits through Shopify's checkout engine, enabling new capabilities: Shopify Functions, including cart transforms and delivery customizations are supported during contract calculations Contract edits align with what the subscriber sees during billing Get a preview of the full
Patch Changes 8351255: Wait for nested block validation in ValidBlockTarget and referenced block validation in ValidSettingsKey. Neither was awaited, so their offenses could arrive after check() returned and be lost. e0f63a0: Run all checks on a Liquid file in one walk of its AST, instead of one walk per check. Each check still runs its methods in the order it did before, each one settled before t
Canvas is a new design surface for your online store. Every page is laid out together in one interactive, infinite workspace, so you can see how your whole store feels and work on any part of it in context. In Canvas, you can: At launch, Canvas doesn't support third-party themes from the Shopify Theme Store, Markets, rollouts, translations, or app blocks and app embeds. Themes edited in Canvas don
We are introducing the inventory_transfer_id to several inventory_shipment webhook payloads to make it easier for developers to identify which inventory_transfer records, if any, a given shipment is related to. This will ease integration burdens and remove the need for developers to merge the datasets on their end to manually build the links. What changed Introduces an inventory_transfer_id field
Your reports show what changed. You know why. Now, you're able to capture that story directly in Shopify Analytics. Add annotations to supported time-series reports for the moments that shape your business, like a campaign launch, creator mention, supplier change, promotion, or operational improvement. Instead of leaving that context in memory, spreadsheets, or team threads, it stays beside the da
Developer ChangelogAction RequiredBreaking API ChangeAdmin GraphQL API
As of GraphQL Admin API version 2026-10, functions in the segment query language now use the operators MATCHES/NOT MATCHES instead of = true/= false. For example, the previous query shopify_email.opened() = true would now be represented as shopify_email.opened MATCHES (). The parameters for each function have also been expanded to use their own operators. For example, the query products_purchased(
API version 2026-10 adds return policy profiles to the GraphQL Admin API. A return policy profile is a set of return rules that you associate with markets, and it supersedes a store’s return policy text. Your app can now query each market's return rules as structured data, such as the length of the return window. What's added Two query fields: returnPolicyProfile: Returns a single profile by ID. r
You can now manage buyer-requested order edits through the GraphQL Admin API, Customer Account API, and three new webhook topics in API version 2026-10. Buyers can request the removal of unfulfilled line items from an order, and merchants (or apps acting on their behalf) can review, resolve, or decline those requests. What changed Buyers can now request edits to the unfulfilled line items on an or
As of API version 2026-10, the GraphQL Admin API exposes the tax amounts calculated for return shipping fees. These amounts reflect the tax calculated by the merchant's tax provider for the fee. What's new CalculatedReturnShippingFee.taxAmountSet (MoneyBag!) — the estimated tax on the return shipping fee, in shop and presentment currencies. Available on the returnCalculate query, and zero when no
Minor Changes 96af869: Support LiquidDoc string enums in hovers and completions Allowed values are kept through assignments, and render, content_for and block parameter completions insert the first one. The default filter widens enum values to string. Patch Changes 0bbd0f8: Complete and hover the implicit content parameter inside blocks/*.liquid. Bare content is a string variable in every theme bl
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. admin.app.intent.render renders a focused Admin UI exte
Shop's web experience has moved from shop.app to shop.com. Your store, products, and channel settings are unaffected — the change only affects the web address shoppers use to reach Shop. What's changing Shop's web experience now lives at shop.com instead of shop.app Existing shop.app links redirect automatically to shop.com What you need to do Nothing. Your store, products, and channel settings ca
Developer ChangelogUpdateAdmin GraphQL APIAdmin REST API
More resilient token exchanges when migrating to expiring offline access tokens When you migrate an app from non-expiring offline tokens to expiring offline access tokens without a user session, you can now recover a lost migration response by retrying the exchange with the original non-expiring token for up to seven days. This reduces how often you need a merchant to reopen the app to restore acc
Starting with the 2027-01 Admin GraphQL API version, apps can read and write packed product dimensions using InventoryItemMeasurement.packedDimensions and InventoryItemMeasurementInput.packedDimensions in the Admin GraphQL API. Shopify uses these measurements for automatic package selection on eligible multi-item orders. What changed The packedDimensions field returns the packed length, width, hei
You can now set return window overrides by market for specific collections, products, or variants. Overrides let you choose a different return period than your default return window - for example, 14 days for seasonal items instead of your standard 90 days. How it works Where to set it Example Learn more in return window overrides.
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. What changed You can now migrate existing Billing API subscriptions to Shopify App Pricing instead of cre
Patch Changes Shopify's consent API now returns visitor tracking values in the consentManagement response. Hydrogen now enables asynchronous consent initialization so the Customer Privacy API fetches and caches these values before analytics starts. This replaces Hydrogen's separate consent query and cache writes, as well as Server-Timing headers, which are no longer collected or forwarded for trac
Patch Changes Shopify's consent API now returns visitor tracking values in the consentManagement response. Hydrogen now enables asynchronous consent initialization so the Customer Privacy API fetches and caches these values before analytics starts. This replaces Hydrogen's separate consent query and cache writes, as well as Server-Timing headers, which are no longer collected or forwarded for trac
Patch Changes e084f75: Restrict where authenticate.admin follows exit-iframe redirects. The destination may now only be the app's own origin (including relative paths) or the Shopify admin (admin.shopify.com, and .myshopify.com under /admin), over https with no custom port. Other destinations are refused. Apps that passed their own external URL to the exit-iframe endpoint should use redirect(url,
Patch Changes e084f75: Restrict where authenticate.admin follows exit-iframe redirects. The destination may now only be the app's own origin (including relative paths) or the Shopify admin (admin.shopify.com, and .myshopify.com under /admin), over https with no custom port. Other destinations are refused. Apps that passed their own external URL to the exit-iframe endpoint should use redirect(url,
Shopify POS now lets store staff run cycle and full stock counts directly in POS, making it easier to count inventory on the sales floor while keeping planning, review, and approval in Shopify Admin. In Shopify Admin, users with the required permissions can create and schedule a stock count, select the location where the count will take place, and choose the products to include. Once created, the
Staff can now create local delivery orders at checkout in Shopify POS. When a customer can't take an item home, you can arrange delivery in the same sale. You no longer need to ask them to reorder online or leave notes on the order. Local delivery uses the delivery zones and rates you already set up for your online store. When you add shipping to a cart and the customer's address is in one of your
Until now, the color, material, fit, and other attributes you set when you categorize a product stayed on the product page. To see which materials or colors actually sell, you had to export. Those category metafields now show up in Analytics as dimensions and filters, next to your custom metafields. If you already categorized products, there's nothing to turn on. The attributes your products use a
If you attach a metaobject to a product, variant, customer, or order through a metafield, those fields can now be used in Analytics. A designer country, a warranty term, or a loyalty tier can group and filter a report the same way a custom metafield can. Merchant-owned metaobjects are already enabled. You can turn a definition off if you don't want it in reports. What you can do What stays the sam
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. This applies to all apps on all stores, with no API version to target and nothing to opt into. I
Browser agents can now read and update Shopify checkouts using WebMCP tools for checkout. The tools let agents interact with the active checkout in the buyer’s browser session. When the buyer’s input is required, such as 3D Secure authentication or for blocking UI extensions, the tools hand back control to the buyer. With storefront and cart tools already live, browser agents can now assist the fu
Starting October 23, 2026, for merchants using Shopify Tax or Tax Platform in the United States, return shipping fees will be taxed like any other shipping charge. Shopify calculates and applies the tax automatically, so you don’t need to fix under-collection on returns. When you create a return, you’ll see the estimated tax. When you process the return, we record the final amount. These taxes flo
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. What changed Shopify skills content in AI Toolkit was previously distributed across many skills, such as shopify-dev-onboarding, shopify-admin, and shopify-functions. The agent plugins and t
The Developer Dashboard shows how your custom apps perform, not only how they are set up. Open any custom app to see its API request volume, error rates, webhook delivery health, and embedded admin page load speed. Each measurement has a clear threshold, so you can tell good from bad at a glance. A single filterable stream holds every API request, webhook delivery, and app event, so you can find t
Today we're sharing the newest wave of improvements to the Dev Dashboard. You told us, in the community forums and in support conversations, that common work like managing collaborator access or understanding app health took too much juggling. This release brings that work into one home for your apps and the stores you work in: store management, collaborator access, and app health—one place to see
As of GraphQL Admin API version 2026-10, ShopifyPaymentsTransactionType now includes CURRENCY_CONVERSION type. Learn more about ShopifyPaymentsTransactionType on Shopify.dev.