5/1/2026, 12:00:39 AM
AutomaticDiscountNodes, AutomaticDiscounts, CodeDiscountNodes, and DiscountNodes now include an optional filter field named combines_with.product_discounts_with_tags_on_same_cart_line, allowing vendors to specify tags that enable multiple product discounts to apply on the same cart line (Shopify Plus only). A new input type, ProductDiscountsWithTagsOnSameCartLineInput, was introduced along with the productDiscountsWithTagsOnSameCartLine list field on the DiscountCombinesWith type, and several new error enum values were added to handle invalid or duplicate tag configurations. The Shop type’s productVariants field has been deprecated and moved to the root query, so consumers should use QueryRoot.productVariants instead. The tagsAdd and tagsRemove mutations now support tagging of DiscountNode resources in addition to orders, draft orders, customers, products, and articles. The AnalyticsTargetCreate mutation’s description was clarified to state that the currency defaults to the shop’s currency rather than an explicit currencyCode argument, and a new currency_mismatch error code is available for manual payment creation. The disputes query received a richer description detailing that it returns status, amount, reason, and order information for Shopify Payments disputes. Developers should update their queries to include the new tag‑based filter where applicable, migrate any usage of Shop.productVariants to the root query, and handle the newly added error codes for discount tag operations and order creation.
Returns a list of automatic discounts that are applied in the cart and at checkout without requiring a discount code.
Returns a list of discounts.
The total number of discounts for the shop. Limited to a maximum of 10000 by default.
Returns a paginated list of all Shopify Payments disputes for the shop. Disputes occur when a buyer files a complaint with their payments provider, and the merchant must provide evidence to contest it. Each dispute includes the status, amount, reason, and associated order. Use this to monitor and manage open chargebacks and track dispute resolution outcomes.
Retrieves a list of product variants
associated with a product.
A product variant is a specific version of a product that comes in more than
one option,
such as size or color. For example, if a merchant sells t-shirts with options for size and color,
then a small, blue t-shirt would be one product variant and a large, blue t-shirt would be another.
Use the productVariants query when you need to:
The productVariants query supports pagination
to handle large product catalogs and saved searches
for frequently used product variant queries.
The productVariants query returns product variants with their associated metadata, including:
Learn more about working with Shopify's product model.
Creates an analytics target that
defines a merchant's goal for a specific metric over a date range. For example, a merchant
can set a target of $50,000 in total sales for a quarter, or 1,000 orders in a month.
Provide the target attributes through the input argument. The target's currency is set to
the shop's currency. A target is uniquely identified by the combination of metric, startDate,endDate, and filters — attempting to create a duplicate returns a user error.
Use analyticsTargetUpdate
to modify an existing target, oranalyticsTargetsDelete
to remove targets.
Updates the evidence package for a Shopify Payments dispute. Merchants submit evidence — such as shipping confirmations, customer communications, and refund policies — to contest a dispute filed by a cardholder. This mutation updates the evidence fields.
Adds tags to a resource. If the resource type doesn't support tagging, the id argument returns a resource-not-found error.
Tags help merchants organize and filter resources. See the tags argument for supported input formats.
Learn more about using tags to organize subscription orders.
Removes tags from a resource. If the resource type doesn't support tagging, the id argument returns a resource-not-found error.
Tags are searchable keywords that help organize and filter these resources.
The product discount tags that determine which product discounts can apply
together on the same cart line. By default, only one product discount
applies per cart line. When each of two product discounts lists a tag in
this field that matches a tag on the other discount, both discounts can
apply to the same cart line. For example, if Discount A lists "SEASONAL"
in this field and Discount B is tagged "SEASONAL", and Discount B lists
"LOYALTY" in this field and Discount A is tagged "LOYALTY", both discounts
can apply to the same cart line. To use this field, productDiscounts
must also be set to true. This field is available only on a Shopify Plus
plan.
productDiscountsWithTagsOnSameCartLineThe product discount tags that determine which product discounts can apply together on
the same cart line. By default, only one product discount applies per cart line. When
each of two product discounts lists a tag in this field that matches a tag on the other
discount, both discounts can apply to the same cart line. For example, if Discount A
lists "SEASONAL" in this field and Discount B is tagged "SEASONAL", and Discount B
lists "LOYALTY" in this field and Discount A is tagged "LOYALTY", both discounts can
apply to the same cart line. To use this field, productDiscounts must also be set to
true. This field is available only on a Shopify Plus plan.
TOO_MANY_PRODUCT_DISCOUNTS_WITH_TAGS_ON_SAME_CART_LINEINVALID_PRODUCT_DISCOUNTS_WITH_TAGS_ON_SAME_CART_LINE_FOR_DISCOUNT_CLASSINVALID_PRODUCT_DISCOUNTS_WITH_TAGS_ON_SAME_CART_LINE_WITHOUT_PRODUCT_DISCOUNTSINVALID_PRODUCT_DISCOUNTS_FALSE_WITH_EXISTING_TAGS_ON_SAME_CART_LINEPRODUCT_DISCOUNTS_WITH_TAGS_ON_SAME_CART_LINE_NOT_ENTITLEDCURRENCY_MISMATCHproductVariantsanalyticsTargetsA list of analytics targets that match the query's metric, date range, and filters.