Query market hierarchies with the GraphQL Admin API
The GraphQL Admin API now includes fields for querying and traversing a store’s market hierarchy in API version 2026-10 . Apps that use the read_markets access scope can retrieve parent-child relationships, navigate between related markets, and check if the asynchronously rebuilt relationship data has changed. No action is required for existing apps.
Also shipped Sep 17, 2026Shopify in September 2026 →
You can add unit tests to pipelines to validate your SQL transformation logic against mock datasets
You can add unit tests to pipelines to validate your SQL transformation logic against mock datasets. Unit tests for pipelines are generally available (GA).
Metastore-level ABAC policies are in Beta
Metastore-level ABAC policies are in Beta in Unity Catalog. You can now attach an ABAC policy (row filter, column mask, GRANT, or DENY) at the metastore level, so a single policy applies across every catalog in the metastore, including catalogs created later.
Moonshot AI Kimi K2.7 is scheduled for retirement
Moonshot AI Kimi K2.7 will be retired on October 30, 2026. Kimi K3 is the recommended replacement. See Deprecated and retired models for migration guidance.
HTML generation in Snowflake CoWork (Preview)
HTML generation is now available in preview as part of document generation in Snowflake CoWork. You can ask Snowflake CoWork to generate an HTML file from your analysis, the same way you generate a PDF or PowerPoint. Generation requires the Cortex Agent code execution tool on the associated agent.
Base environments are now supported on classic compute (Beta)
You can now use base environments to manage Python dependencies on classic compute. You can use Databricks-provided environments or custom workspace-level environments. See Manage dependencies using environments .
Snowpark Container Services backup instance types (General availability)
Backup instance types for Snowpark Container Services compute pools are now generally available and are no longer in Preview .
More from Shopify developer platformEvery Shopify developer platform release →
Request a bundle size exception for existing UI extensions
UI extensions using API version 2025-10 or later are limited to a 64 KB compressed JavaScript bundle per extension. Full page customer account extensions may use up to 128 KB. If your extension remains over the limit after optimization, run shopify app build and submit the minified bundle and its esbuild metafile through the bundle size exception form .
Adding a canceled receive action to the inventory shipments API
The GraphQL Admin API now supports a CANCELED receive action for inventory shipments in version 2026-10 . You can mark inventory shipment line item units as canceled when they’ll never arrive, and you can read canceled quantities on shipments and their line items. This is an additive change to the 2026-10 release candidate.
Removed session.currentSession.staffMemberId from POS UI Extensions (2026-10)
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.
New Pricing audit trail for contextual product variant prices
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.
The `automaticDiscounts` query is removed in API version 2027-01
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 .
Updates to Events payloads and subscription configuration
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 .
Filter Catalog search results by media type
The Catalog API now returns video and 3D model media on products that have it, and supports filtering search results by media type. You can request only products that have video or 3D model media attached, and matching products return links to those assets in the same response.
Dynamic complexity cost for `metafieldsSet` mutation
The metafieldsSet mutation now uses dynamic complexity costing. Instead of a flat cost for every call, a request's cost reflects how many distinct resources metafields were changed. Most apps need no changes, as updating a single resource remains cheap. Apps setting many metafields across many different owners may hit their rate limit faster.