The Global Catalog REST API, which was deprecated in April 2026, stops serving traffic on November 2, 2026. If your app still calls it, you need to migrate to Global Catalog MCP, which implements the Universal Commerce Protocol (UCP), before that date.
Developer Changelog
npx @buildinternet/releases get developer-changelogThe 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.
Starting with API version 2026-10, Checkout and Customer Account UI extensions can specify an owner_type for each metafield declaration in shopify.extension.toml. Starting with API version 2027-01, owner_type is required for every metafield declaration, and deployments…
Shopify POS 11.15 corrects the value returned by Discount.amount for Percentage discounts to match the Cart API…
In POS UI extensions API version 2026-10, Cart API mutations reject when Shopify POS doesn't confirm that the cart changed. In earlier versions these mutations resolve whether or not…
Starting with Admin GraphQL API version 2027-01, apps that use Shopify-managed installation can call appDowngradeAccessScopes to replace optional write scopes with their matching…
The Customer Account API now enforces a per-customer rate limit of 3000 requests per minute per store, shared across all apps. This affects all apps that call the Customer Account API, but you typically don't need to make changes because normal buyer traffic stays well under…
Polaris 2.0.0-rc.1 brings more components in line with the new admin style update, fixes several layout and event-handling bugs, and improves mounting and update performance.
With the 2026-10 API version Next Gen Events, Shopify's successor to classic webhooks, is now generally available. Events give you more customization than classic webhooks, letting you choose what changes your app receives, and what data comes with the payload.
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…
As of the 2026-10 GraphQL Admin API version, the orderCancel mutation returns a new jobResult field of type OrderCancelJobResult.
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…
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.
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…
Update your app to account for discount Rollouts
Starting in API version 2026-10, ShopifyQL adds Shop Campaigns fields to two schemas. The shop_campaign_insights schema adds a shop_campaign_orders metric and country and country_code dimensions. The sales schema adds four Shop Campaign dimensions, so you can break…
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…
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 like bundled products, Shopify Functions, and consistent pricing calculations.
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…


