Skip to main content
Latest

2026-07: Release notes

The 2026-07 release focuses on merchandising, returns, extension capabilities, customer account, POS, and Storefront API changes.

Several changes in this version require code updates, especially around inventory mutation safety, customers, metaobjects, and products and collections. Review and adjust affected integrations before adopting 2026-07.

2026-07 is the latest stable API version. It's available for production use until at least July 1, 2027 at 15:00 UTC:


GraphQL Admin API updates include POS cash management, gift cards, shipping, inventory, markets, orders, merchandising, and customer data.

Shopify Flow now accepts action payloads that differ from the deployed configuration.

Shopify Flow no longer rejects third-party action payloads solely because their fields differ from the currently deployed configuration. Workflows using older action versions continue executing, and your endpoint receives the request so it can handle missing, extra, or legacy fields.

Jul 7, 2026

Customer updates add tax ID access and WhatsApp marketing consent management.

Apps with read_customers or read_taxes can query Customer.taxSettings.taxId in the GraphQL Admin API to read a customer tax ID, such as a VAT number. taxIdValidation remains unavailable without approved protected customer data access.

Apr 24, 2026

If you manage WhatsApp marketing consent, use customerWhatsAppMarketingConsentUpdate in the GraphQL Admin API or Customer Account API to update consent for a customer’s default phone number, and read it from CustomerPhoneNumber.whatsAppMarketingConsent.

Jun 17, 2026

Anchor to Discounts and marketingDiscounts and marketing

Discount and marketing updates change cumulative marketing engagement behavior and subscription discount defaults.

The isCumulative argument on the marketingEngagementCreate mutation is deprecated and now defaults to false. Update integrations to send non-cumulative marketing engagements as needed; existing cumulative activities can migrate at any time.

Jul 1, 2026

The default value of appliesOnSubscription is now true on DiscountCodeAppInput and DiscountAutomaticAppInput in the GraphQL Admin API. No action is required, and explicitly set values keep existing behavior.

May 4, 2026

Gift card updates add line item access and cash-out transaction resolution.

The GiftCard GraphQL object now includes a lineItem field, so apps can query the line item associated with a gift card directly from the gift card record.

Jul 1, 2026

GiftCardCashOutTransaction is now a variant of the GiftCardTransaction interface for gift card balances paid out through POS. Use __typename when querying giftCard.transactions to distinguish cash-out transactions from credits and debits.

Jun 5, 2026

GraphQL Admin API types add identifiers: BusinessEntity.legalEntityId exposes a nullable stable legal entity ID, and PaymentMandateResource.id identifies mandate records returned from customer payment method mandates.

BusinessEntity in the GraphQL Admin API now includes nullable legalEntityId, a stable organization-level BigInt identifier for the same legal entity across shops, markets, and sales channels. It can be null when no stable Central Legal Entity ID exists.

Jul 1, 2026

PaymentMandateResource now includes an id field on mandate records returned by the CustomerPaymentMethod.mandates connection. The value matches the corresponding CustomerPaymentMethod.id, which identifies the payment method for a mandate scope such as SUBSCRIPTIONS.

Jun 27, 2026

Inventory updates add direct metafield support, transfer webhook fields, clearer mutation documentation, a delete error, and a required migration away from inventorySetScheduledChanges.

The inventorySetScheduledChanges mutation is removed with no replacement. Review your app for any usage and remove it; consider inventoryAdjustQuantities for immediate inventory adjustments or other inventory tools.

Mar 9, 2026

Inventory transfers now support transfer-specific metafields using MetafieldOwnerType.TRANSFER. Pass metafields to inventoryTransferCreate, inventoryTransferCreateAsReadyToShip, and inventoryTransferEdit; inventoryTransferDuplicate also copies metafields from the source transfer.

Jun 17, 2026

Selected inventory transfer webhook payloads now include origin.id and destination.id location GIDs when both endpoints are locations, reducing extra transfer fetches. inventoryTransferSetItems and inventoryTransferRemoveItems now provide clearer docs and mutation error messages.

Jun 5, 2026

The inventoryTransferDelete mutation can now return INVALID_STATE in InventoryTransferDeleteUserErrorCode when deleting an inventory transfer is blocked by an in-progress related product import. Older API versions still provide context in the message field.

Mar 17, 2026

Metaobjects add Storefront API access visibility, JSON-compatible field access, and a visibleToStorefrontApi migration.

StandardMetaobjectDefinitionTemplate now includes an access field that exposes the template’s access rules. Use it to check whether a template is configured for Storefront API access before planning integrations.

Apr 1, 2026

visibleToStorefrontApi is removed from MetaobjectFieldDefinition, MetaobjectFieldDefinitionCreateInput, MetaobjectFieldDefinitionUpdateInput, and StandardMetaobjectDefinitionFieldTemplate.

Mar 30, 2026

Metaobjects now support a values property for reading all fields as a JSON-compatible object and creating or updating with automatic serialization. When mutating with values, omitted fields are cleared; use field or fields for field details or patch-style updates.

Jun 11, 2026

The GraphQL Admin API adds draft order deposits for Shopify Plus, order checkoutToken and cartToken, and line item pricing and weight fields.

DraftOrderLineItem.grams is being removed from the GraphQL Admin API; after the API version becomes unsupported, queries referencing it return an error. Replace grams with DraftOrderLineItem.weight, which returns both value and unit.

Apr 13, 2026

Apps can set deposits when creating or updating draft orders for Shopify Plus stores using DraftOrderInput.deposit in the GraphQL Admin API. The Customer Account API exposes read-only draft order deposit details, including amounts due now and later.

Jul 1, 2026

Order object now includes checkoutToken, which returns the token associated with the checkout used to create the order. This aligns GraphQL with the REST Admin API checkout_token field.

May 15, 2026

Order object now includes cartToken, which returns the token associated with the cart used to create the order. This matches the existing REST Admin API cart_token field.

May 12, 2026

LineItem in the GraphQL Admin API now includes priceAfterAllDiscountsBeforeTaxesSet, equivalent to REST Admin API current_subtotal_price_set. It returns line item totals in shop and presentment currencies after discounts, excluding taxes, refunded quantities, and removed quantities.

Apr 27, 2026

Query weight on the GraphQL Admin API LineItem type to retrieve a Weight object with value and unit, making line item weights available without converting from the REST Admin API grams field.

Apr 15, 2026

POS cash management resources expose drawer balances and cash count details.

Cash management resources in the GraphQL Admin API now expose more detail. CashDrawer.balance returns the current drawer balance as MoneyV2, and CashCountActivity.note and CashCountActivity.reasonCode add context for cash count activities.

Jul 31, 2026

Anchor to Products and collectionsProducts and collections

Products and collections updates include market-driven shipping, the new Collection model, market delivery settings, app-owned delivery profiles, channel markets, local-currency gift cards, variant-level publishing, subscription mutation actors, and collection sorting.

Market-driven shipping moves merchant-owned shipping configuration from the delivery profile API to the Markets API, while app delivery profiles continue using the delivery profile API. If your app reads, creates, or updates merchant shipping settings, update and test it in the feature preview.

Jul 1, 2026

For shops using market-driven shipping, merchant-owned GraphQL Admin API delivery profile APIs such as deliveryProfiles and deliveryProfileUpdate might return stale data or no-op writes. Apps that read or manage merchant-owned shipping must migrate per the market-driven shipping upgrade guide.

Jul 1, 2026

Collections now use Collection.sources with typed CollectionSource objects instead of only Collection.ruleSet. This supports multiple sources, exclusions, sub-collections, and shareable app-owned sources. Migrate reads and writes from ruleSet and legacy input arguments to sources and collection inputs.

Jun 17, 2026

The GraphQL Admin API supports market-level shipping configuration through Market.delivery.shipping, marketCreate, and marketUpdate. Apps can create, update, remove, disable, or inherit flat-rate, value-based, weight-based, and carrier-calculated shipping options per market.

Jul 1, 2026

App-owned shipping delivery profiles now support coversAllItems on DeliveryProfile and DeliveryProfileInput, so authorized apps can apply profile rates to every shippable variant without explicit assignments.

Jun 17, 2026

Supports channel markets using MarketType.CHANNEL and MarketConditionType.CHANNEL. Apps can create and update markets with channel conditions, query Market.channels and Channel.markets, filter by type with markets(type: CHANNEL), and manage channel-specific availability, pricing, and currency.

Jun 17, 2026

The GraphQL Admin API now supports local-currency gift cards through giftCardProductSet, with create-time-only issuanceCurrency and crossCurrencyRedeemable settings on Product.giftCardSettings.

Jun 5, 2026

ProductVariant now implements Publishable, so publishablePublish and publishableUnpublish accept variant IDs for per-publication visibility.

May 7, 2026

Subscription mutations now accept an optional actor argument to identify whether customer, merchant, or partner initiated billing attempts, contract edits, and status updates across supported GraphQL Admin API subscription mutations.

May 4, 2026

CollectionSortOrder enum now includes the MOST_RELEVANT value for collection sorting options.

Apr 15, 2026

Anchor to Shipping and fulfillmentShipping and fulfillment

Shipping and fulfillment updates add label purchasing and fulfillment order shipping lines.

Use the new shippingLabelPurchase GraphQL Admin API mutation to buy Shopify Shipping labels asynchronously for eligible fulfillment orders. Poll the returned ShippingLabelPurchaseResult for PENDING_PURCHASE, PURCHASED, or PURCHASE_FAILED status and access labels on shippingLabels.

Jun 17, 2026

The FulfillmentOrderLineItem object now includes a shippingLine field, so apps can access the associated shipping line for a fulfillment order line item through the GraphQL Admin API.

May 18, 2026

Shopify Payments requires gateway payment method identifiers for remote payment method creation.

The customerPaymentMethodRemoteCreate mutation requires gateway payment method identifiers for remote Stripe, Authorize.net, and Braintree inputs: paymentMethodId, customerPaymentProfileId, or paymentMethodToken. Include the appropriate identifier so remotely created payment methods can process payments.

Apr 1, 2026

Anchor to Customer Account APICustomer Account API

Customer Account API adds draft order discount details and deprecates discounted unit price.

The DraftOrderLineItem.discountedUnitPrice field in the Customer Account API is deprecated. Update queries to use approximateDiscountedUnitPrice, which returns the discounted total divided by quantity as an approximate per-unit price reduction.

Jul 1, 2026

Draft orders in the Customer Account API now expose discount details through DraftOrder.discountApplications and per-line-item allocations through DraftOrderLineItem.discountAllocations, so you can query applied discounts and their impact on individual draft order line items.

Jul 1, 2026

Flow extensions pick up redeployed runtime URLs without merchant reactivation.

Shopify Flow now resolves an action’s runtime_url on each execution, so redeployed URL changes automatically apply to existing workflows without merchant reactivation. During local development, shopify app dev also updates runtime_url in development shops using the action.

Jul 7, 2026

Shopify Functions gains checkout access to Shop User metafields.

Partners using metafields on Shop User can now read those metafields during checkout with Shopify Functions, enabling access to buyer-specific data for customized checkout experiences.

Jun 13, 2026

Partner API adds app subscription cancellation for public app owners.

Anchor to Cancelling subscriptionsCancelling subscriptions

Clients can use the new appSubscriptionCancel mutation to cancel app subscriptions for public apps they own, including immediate or deferred cancellation, prorated credit requests, and optionally skipping final usage charges. Requires View financials permission in the Partner Dashboard.

Jun 16, 2026

Polaris updates include App Home, order attribution, and POS extension capabilities.

Custom-distribution apps can now build Shopify-hosted App Home pages.

Custom-distribution apps can now build App Home as a Shopify-hosted Preact UI extension targeting admin.app.home.render, using Polaris web components and shopify.extension.toml. Use this for lightweight extension-only apps that fit the extension runtime constraints.

Jun 1, 2026

Checkout updates add order attribution definitions and deprecate buyer journey interception.

useBuyerJourneyIntercept and the dependent block_progress capability in shopify.extension.toml are deprecated and scheduled for removal in a future version. Migrate rule enforcement to a cart and checkout validation Function, or discount code rejection to the discount Function API.

Jul 2, 2026

Sales channel apps with a channel_config extension can create and manage granular order attribution definitions using order_attribution_config, orderAttributionDefinitionUpsert, and orderAttributionDefinitions, pass definition handles through orderCreate or source_name, and read results with Order.attribution.

Jun 30, 2026

POS UI extensions add per-unit discount requirements, hardware printing, bundle discount allocations, and a background target.

Action required: update POS UI extensions that pass FixedAmount discounts to setLineItemDiscount or bulkSetLineItemDiscounts to send per-unit amounts. Shopify POS no longer converts total line-item fixed discounts to per-unit values; percentage discounts are unaffected.

Jul 8, 2026

POS UI extensions can use shopify.printing.getPrinters() to discover connected receipt printers and shopify.printing.print() to print HTML or images directly without a dialog. shopify.print is deprecated; plan to migrate when adopting this API.

Jul 27, 2026

POS UI extensions now expose component-level discount allocations for product bundles through components[].discountAllocations on cart line items, including line items read from shopify.cart.current.value.lineItems. Handle the property as absent or empty when a bundle component has no discount allocations.

Jul 15, 2026

POS extensions can use the new pos.app.ready.data target to run headless background logic for the full POS session. Use shopify.addEventListener() to subscribe to events such as transactioncomplete, cashtrackingsessionstart, and cashtrackingsessioncomplete.

Jul 9, 2026

Storefront API updates include cart line identification and clearer discount allocation fields.

Cart updates add viewKey support and require discount allocation query changes.

Update cart discount queries: use cart.discountApplications, cart.lines[].discountAllocations(lineLevelOnly: false), and cart.deliveryGroups[].discountAllocations instead of deprecated cart.discountAllocations.

Apr 10, 2026

CartLine now exposes viewKey, returning the same value rendered by Liquid storefronts and accepted by cartLinesUpdate and cartLinesRemove. Use it to correlate returned cart lines without changing existing UUID-based id handling.

Jun 12, 2026

cartLinesUpdate and cartLinesRemove can now identify cart lines using view_key as an alternative to cart line id. Use viewKey on CartLineUpdateInput or viewKeys on cartLinesRemove, mutually exclusive with id or lineIds.

Jun 2, 2026

CartWarning includes a new warning code, PRODUCT_UNAVAILABLE_IN_BUYER_LOCATION, for cart lines containing products that can’t be purchased from the buyer’s location.

May 12, 2026

Was this page helpful?