← All vendor deprecations

Shopify deprecations and shutdown dates

Deprecations, shutdowns and breaking changes Shopify has announced, from its official changelogs and reviewed by the StackClock team.

Upcoming (0)

Nothing dated is coming up right now.

Past and undated (6)

ShopifymediumBreaking change

metafieldInteger collection condition removed in Admin API 2027-01

No date announced · published 4 Oct 2026

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 align with the metafield value field on the Storefront API. For details, see the Storefront Metafield.value field reference . The following types and fields are replaced: CollectionSourceInclusionConditionMetafieldInteger is replaced by CollectionSourceInclusionConditionMetafieldInt CollectionSourceInclusionConditionMetafieldIntegerRelation is replaced by CollectionSourceInclusionConditionMetafieldIntRelation CollectionSourceInclusionConditionInput.metafieldInteger is replaced by CollectionSourceInclusionConditionInput.metafieldInt CollectionSourceInclusionConditionUpdateInput.metafi

ShopifymediumBreaking change

Segment query functions switch to MATCHES operators in Admin API 2026-10

No date announced · published 4 Oct 2026

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(quantity: 5) = true would now be represented as products_purchased MATCHES (quantity = 5) . This expands the functionality of parameters. For example, the following queries were not possible before: products_purchased MATCHES (quantity != 5) , products_purchased MATCHES (quantity > 5) . Additionally, the following named dates have been deprecated: 12_months_ago , 90_days_ago , 30_days_ago , 7_days_ago . Instead, the you can use the existing date offsets in your segment queries. For example, the named date 12_months_ago is equivalent to the date offset -12m . Learn more about customer

ShopifymediumBreaking change

Events subscription query complexity limit drops from 250 to 100 points

No date announced · published 4 Oct 2026

We’re reducing the query complexity limit for Events subscriptions from 250 to 100 points. This change does not affect Classic Webhooks. Shopify assigns each Events query a complexity score based on the fields it selects, the types of data those fields return, and the number of items requested in connections using first or last, following the GraphQL query cost calculation . The limit applies to each subscription query, and queries executed by Events subscriptions don’t count toward your app’s API rate limits . What to do Review subscription queries that exceed 100 points and shape each subscription around the changes your app handles: Split subscriptions by the work they do : You can configure multiple subscriptions for the same topic, each with its own triggers and query. Query the changed resource directly : For example, for a variant price change, query the affected variant’s price, SKU, and parent Product ID instead of fetching the Product’s first 250 variants. This avoids re

ShopifyhighBreaking change

automaticDiscounts query removed in Admin API 2027-01

No date announced · published 4 Oct 2026

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 . Apps on 2026-10 and earlier keep working unchanged while those versions are supported. What changed As of API version 2027-01 , automaticDiscounts no longer exists on QueryRoot . Requests that include automaticDiscounts on 2027-01 return a validation error instead of data. The DiscountAutomaticConnection and DiscountAutomaticEdge types are also removed, because no other fields in the schema return them. Use discountNodes instead, with query: "method:automatic" . It returns a connection of DiscountNode objects, each exposing the discount itself on the discount field. discountNodes accepts filters similar to the removed query, including status , discount_type , discount_class , created_at , and starts_at . F

ShopifymediumBreaking change

POS UI Extensions: session.currentSession.staffMemberId removed in API 2026-10

No date announced · published 4 Oct 2026

As of API version 2026-10, the static session.currentSession.staffMemberId field has been removed from the POS UI Extensions Session API. It was deprecated in 2026-07 in favour of session.staffMember, a reactive signal that updates when a different staff member pins into POS. Before targeting API version 2026-10, replace reads of session.currentSession.staffMemberId with session.staffMember.value?.id. To react to staff changes while your extension is running, subscribe to the signal with session.staffMember.subscribe((staffMember) => { ... }), or read .value during render in a Preact component with @shopify/ui-extensions/preact imported to re-render automatically. Extensions on 2026-07 and earlier are unaffected. The BaseData session.staffMemberId available to receipt targets is a separate API and is unchanged. https://shopify.dev/docs/api/pos-ui-extensions/2026-10/apis/session-api

ShopifyhighBreaking change

Events payloads, trigger syntax and delivery headers changed

No date announced · published 4 Oct 2026

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 . Developers can distinguish a resource or relationship being added, a value being updated, or a resource or relationship being removed without querying just to infer what happened. Update payload handling to read fields_changed.added , fields_changed.updated , and fields_changed.removed . Adding a variant to a Product, for example, keeps the Product's action as update and places the variant path in fields_changed.added . Before: { "topic": "Product", "action": "update", "fields_changed": [ "product[id: 'gid://shopify/Product/123'].variants[id: 'gid://shopify/ProductVariant/456']" ] } After: { "topic": "Product", "action": "update", "fields_changed": { "added": [ "product[id: 'gid://shopify/Produ

Which of these affect you?

Paste your package.json or requirements.txt and see the Shopify changes that match the SDKs you use, free and without signing up.

Check my stack
Shopify deprecations and shutdown dates · StackClock