5/9/2026, 12:00:28 AM
The discountNodes query now supports a richer filter set—context, customerIds, marketIds and segmentIds—allowing tighter scoping of discount discovery. The metaobjectUpsert mutation gains a new JSON values input; it can replace the entire metaobject while the metaobject input remains optional, and the description clarifies the exclusive use of each. All subscription‑contract related mutations now accept an additional actor enum argument that records whether the shop owner, employee or app initiated the action. AnalyticsTarget changes include a CurrencyCode enum for currencyCode and a nullable presentmentExpectedValue that is only returned for money metrics. BillingPlanFeature now exposes a requiresShopifyPayments boolean indicating whether a feature mandates Shopify Payments. The Market type now includes discounts and discountsCount, while ProductVariant gains a suite of publication‑related fields; deprecated older publication flags are marked and new status indicators are introduced.
Returns a paginated list of analytics targets
for the shop. Each target represents a merchant-defined goal for a specific metric over a date range.
Results can be filtered by metric, name, date range, or filter expression, and sorted by fields
such as start_date, expected_value, or metric.
Use the analyticsTargetCreate
mutation to add new targets.
Returns a list of discounts.
The total number of discounts for the shop. Limited to a maximum of 10000 by default.
Returns a single Shop Pay payment request receipt by its ID. Payment request receipts document completed Shop Pay transactions, including the amount, customer details, and payment status. Use this to look up a specific Shop Pay transaction for order reconciliation or customer support.
Returns a paginated list of Shop Pay payment request receipts for the shop. Each receipt documents a completed Shop Pay transaction. Use this to review Shop Pay transaction history, generate reports, or audit Shop Pay payment activity.
Returns the payment gateway currently used for subscription charges on the shop. Subscription orders may use a dedicated gateway separate from the shop's primary payment provider.
Returns the list of payment gateways available for subscription contract migrations, allowing merchants to move existing subscriptions from one payment gateway to another.
This mutation removes InventoryTransferLineItems,
or portions of them, from a DRAFT or READY_TO_SHIP Transfer.
For each referenced line item, if its entire quantity is still unallocated to a
shipment, the line item is removed; otherwise the line item remains on the
transfer with its quantity reduced to the allocated portion. Quantity allocated
to a shipment (whether the shipment is in draft, in transit, or already
received) is preserved.
On READY_TO_SHIP transfers, removing items also returns the affected reserved
quantity to available inventory at the origin location.
To change the quantity of a line item without removing it, useinventoryTransferSetItems.
This mutation sets the quantity for one or more line items on a Transfer.
Only the items you include in the lineItems field are updated. Items already on
the transfer but not referenced in your update will stay unchanged. Each inventory
item may appear at most once in lineItems; duplicate inventoryItemId entries
are rejected.
For each entry in lineItems:
processableQuantity.Passing a quantity of 0 is only allowed for transfers in DRAFT status; onREADY_TO_SHIP or IN_PROGRESS transfers it returns an INVALID_QUANTITY error.
On DRAFT transfers, quantity: 0 leaves a zero-quantity line item on the
transfer; it does not remove the item. To remove a line item from a transfer, useinventoryTransferRemoveItems.
Caution:
As of 2026-01, this mutation supports an optional idempotency key using the@idempotentdirective.
As of 2026-04, the idempotency key is required and must be provided using the@idempotentdirective.
For more information, see the idempotency documentation.
Creates or updates a Metaobject based on its handle. If a metaobject with the specified handle exists, the mutation updates it with the provided field values. If no matching metaobject exists, the mutation creates a new one.
The handle serves as a unique identifier within a metaobject type. Field values map to the MetaobjectDefinition's field keys and overwrite existing values during updates.
Adds a ProductVariant as a line item to an Order that's being edited. The mutation respects the variant's contextual pricing.
You can specify a Location to check for inventory availability and control whether duplicate variants are allowed. The quantity must be a positive value.
Learn more about editing existing orders.
Creates a fraud risk assessment for a specific order, evaluating the likelihood that the order is fraudulent based on various risk signals. Use this to trigger risk analysis on orders that need manual review or to integrate custom risk scoring into order processing workflows.
Activates or deactivates payment customizations for the shop. Payment customizations allow apps to hide, reorder, or rename payment methods at checkout based on cart contents, customer attributes, or other conditions. Use this to toggle customizations on or off without deleting them.
Creates a new payment customization for the shop. Payment customizations let apps modify the payment methods shown at checkout — hiding, reordering, or renaming options based on cart contents, customer attributes, or other business logic.
Permanently deletes a payment customization. Once deleted, the customization will no longer affect which payment methods appear at checkout.
Updates an existing payment customization, modifying its configuration for how payment methods are displayed at checkout. Use this to change the customization's title or enabled state. The customization's function can't be changed once set; create a new payment customization to use a different function.
Creates a return from an existing order that has at least one fulfilled
line item
that hasn't yet been refunded. If you create a return on an archived order, then the order is automatically
unarchived.
Use the returnCreate mutation when your workflow involves
approving or
declining requested returns
outside of the Shopify platform.
The returnCreate mutation performs the following actions:
OPEN state, and assumes that the return request from the customer has already beenAfter you've created a return, use thereturn query to retrieve the
return by its ID. Learn more about providing a
return management workflow
for merchants.
Edit the contents of a subscription contract for the specified billing cycle.
Activates a Subscription Contract. Contract status must be either active, paused, or failed.
Cancels a Subscription Contract.
Expires a Subscription Contract.
Fails a Subscription Contract.
Pauses a Subscription Contract.
Allows for the easy change of a Product in a Contract or a Product price change.
Creates a draft of an existing SubscriptionContract. The draft captures the current state of the contract and allows incremental modifications through draft mutations such as subscriptionDraftLineAdd, subscriptionDraftDiscountAdd, and subscriptionDraftUpdate.
Changes remain in draft state and don't affect the live contract until committed. After you've made all necessary changes to the draft, commit it using subscriptionDraftCommit to apply the updates to the original contract.
Learn more about updating subscription contracts.
An unrecognized customer selection type. Use the context field on the parent discount type instead.
Markets where the discount is available.
The input fields for the markets where the discount is available.
currencyCodepresentmentExpectedValuerequiresShopifyPaymentsWhether the feature requires Shopify Payments to be enabled.
productDiscountsWithTagsOnSameCartLinediscountsThe discounts that are available in this market.
discountsCountThe number of discounts that are assigned to this market.
DISCOUNT_NOT_MARKET_CONTEXTUALDISCOUNT_EXCEEDS_MARKET_LIMITDISCOUNT_NOT_COMPATIBLE_WITH_B2B_MARKETsizeInBytesThe size of the metafield value in bytes.
valuesThe values of the metaobject.
availablePublicationsCountThe number of
publications
that a resource is published to, without
feedback errors.
publicationCountThe number of
publications
that a resource is published to, without
feedback errors.
publishedOnChannelWhether the resource is published to a specific channel.
publishedOnCurrentChannelWhether the resource is published to a
channel.
For example, the resource might be published to the online store channel.
publishedOnCurrentPublicationWhether the resource is published to the app's
publication.
For example, the resource might be published to the app's online store channel.
publishedOnPublicationWhether the resource is published to a specified
publication.
resourcePublicationsThe list of resources that are published to a
publication.
resourcePublicationsCountThe number of
publications
that a resource is published to, without
feedback errors.
resourcePublicationsV2The list of resources that are either published or staged to be published to a
publication.
unpublishedChannelsThe list of channels that the resource is not published to.
unpublishedPublicationsThe list of publications
that the resource isn't published to.
CANNOT_COMBINE_PRODUCTS_AND_VARIANTSVARIANTS_BELONG_TO_MULTIPLE_PRODUCTSPRODUCT_LOCK_ERRORVARIANT_PUBLISHING_UNSUPPORTED_PRODUCT_TYPEanalyticsTargets