Discount Automatic
Requires Apps must have access scope.
The types of automatic discounts applied in the cart and at checkout when an order meets specific criteria.
Includes for custom logic using the Discount Function API, for percentage or fixed amount reductions, for Buy X Get Y promotions, and for delivery incentives.
Anchor to Possible typesPossible types
- •OBJECT
The
object stores information about automatic discounts that are managed by an app using Shopify Functions. Usewhen you need advanced, custom, or dynamic discount capabilities that aren't supported by Shopify's native discount types.Learn more about creating custom discount functionality.
NoteThe
object has similar functionality to theobject, with the exception thatstores information about discount codes that are managed by an app using Shopify Functions.API versions prior to
2025-10only return automatic discounts withcontextset toall, discounts with other values are filtered out.- Anchor to appDiscountTypeapp•App
Discount Type Discount Type! non-null The details about the app extension that's providing the discount type. This information includes the app extension's name and client ID, App Bridge configuration, discount class, function ID, and other metadata about the discount type, including the discount type's name and description.
- Anchor to appliesOnOneTimePurchaseapplies•Boolean!
On One Time Purchase non-null Whether the discount applies on one-time purchases.
- Anchor to appliesOnSubscriptionapplies•Boolean!
On Subscription non-null Whether the discount applies on subscription items. Subscriptions enable customers to purchase products on a recurring basis.
- Anchor to asyncUsageCountasync•Int!
Usage Count non-null The number of times that the discount has been used. For example, if a "Buy 3, Get 1 Free" t-shirt discount is automatically applied in 200 transactions, then the discount has been used 200 times. This value is updated asynchronously. As a result, it might be lower than the actual usage count until the asynchronous process is completed.
- Anchor to combinesWithcombines•Discount
With Combines With! non-null The discount classes that you can use in combination with Shopify discount types.
- Anchor to contextcontext•Discount
Context! non-null The context defining which buyers can use the discount.
- Anchor to createdAtcreated•Date
At Time! non-null The date and time when the discount was created.
- Anchor to discountClassesdiscount•[Discount
Classes Class!]! non-null The classes of the discount.
- Anchor to discountIddiscount•ID!
Id non-null The globally-unique ID for the discount.
- Anchor to endsAtends•Date
At Time The date and time when the discount expires and is no longer available to customers. For discounts without a fixed expiration date, specify
null.- Anchor to errorHistoryerror•Functions
History Error History The error history for the latest version of the discount type that the app provides.
- Anchor to recurringCycleLimitrecurring•Int!
Cycle Limit non-null The number of billing cycles for which the discount can be applied, which is useful for subscription-based discounts. For example, if you set this field to
3, then the discount only applies to the first three billing cycles of a subscription. If you specify0, then the discount applies indefinitely.- Anchor to startsAtstarts•Date
At Time! non-null The date and time when the discount becomes active and is available to customers.
- Anchor to statusstatus•Discount
Status! non-null The status of the discount that describes its availability, expiration, or pending activation.
- Anchor to titletitle•String!non-null
The discount's name that displays to merchants in the Shopify admin and to customers.
- Anchor to updatedAtupdated•Date
At Time! non-null The date and time when the discount was updated.
- Anchor to discountClassdiscount•Discount
Class Class! non-nullDeprecated
- •OBJECT
The
object lets you manage amount off discounts that are automatically applied on a cart and at checkout. Amount off discounts give customers a fixed value or a percentage off the products in an order, but don't apply to shipping costs.The
object stores information about automatic amount off discounts that apply to specific products and variants, collections, or all items in a cart.Learn more about working with Shopify's discount model, including limitations and considerations.
Note- Anchor to asyncUsageCountasync•Int!
Usage Count non-null The number of times that the discount has been used. For example, if a "Buy 3, Get 1 Free" t-shirt discount is automatically applied in 200 transactions, then the discount has been used 200 times. This value is updated asynchronously. As a result, it might be lower than the actual usage count until the asynchronous process is completed.
- Anchor to combinesWithcombines•Discount
With Combines With! non-null The discount classes that you can use in combination with Shopify discount types.
- Anchor to contextcontext•Discount
Context! non-null The context defining which buyers can use the discount.
- Anchor to createdAtcreated•Date
At Time! non-null The date and time when the discount was created.
- Anchor to customerGetscustomer•Discount
Gets Customer Gets! non-null The items in the order that qualify for the discount, their quantities, and the total value of the discount.
- Anchor to discountClassesdiscount•[Discount
Classes Class!]! non-null The classes of the discount.
- Anchor to endsAtends•Date
At Time The date and time when the discount expires and is no longer available to customers. For discounts without a fixed expiration date, specify
null.- Anchor to minimumRequirementminimum•Discount
Requirement Minimum Requirement The minimum subtotal or quantity of items that are required for the discount to be applied.
- Anchor to recurringCycleLimitrecurring•Int!
Cycle Limit non-null The number of billing cycles for which the discount can be applied, which is useful for subscription-based discounts. For example, if you set this field to
3, then the discount only applies to the first three billing cycles of a subscription. If you specify0, then the discount applies indefinitely.- Anchor to shortSummaryshort•String!
Summary non-null An abbreviated version of the discount
summaryfield.- Anchor to startsAtstarts•Date
At Time! non-null The date and time when the discount becomes active and is available to customers.
- Anchor to statusstatus•Discount
Status! non-null The status of the discount that describes its availability, expiration, or pending activation.
- Anchor to summarysummary•String!non-null
A detailed explanation of what the discount is, who can use it, when and where it applies, and any associated rules or limitations.
- Anchor to titletitle•String!non-null
The discount's name that displays to merchants in the Shopify admin and to customers.
- Anchor to updatedAtupdated•Date
At Time! non-null The date and time when the discount was updated.
- Anchor to discountClassdiscount•Merchandise
Class Discount Class! non-nullDeprecated - Anchor to usageCountusage•Int!
Count non-nullDeprecated
- •OBJECT
The
object lets you manage buy X get Y discounts (BXGY) that are automatically applied on a cart and at checkout. BXGY discounts incentivize customers by offering them additional items at a discounted price or for free when they purchase a specified quantity of items.The
object stores information about automatic BXGY discounts that apply to specific products and variants, collections, or all items in a cart.Learn more about working with Shopify's discount model, including limitations and considerations.
Note- Anchor to asyncUsageCountasync•Int!
Usage Count non-null The number of times that the discount has been used. For example, if a "Buy 3, Get 1 Free" t-shirt discount is automatically applied in 200 transactions, then the discount has been used 200 times. This value is updated asynchronously. As a result, it might be lower than the actual usage count until the asynchronous process is completed.
- Anchor to combinesWithcombines•Discount
With Combines With! non-null The discount classes that you can use in combination with Shopify discount types.
- Anchor to contextcontext•Discount
Context! non-null The context defining which buyers can use the discount.
- Anchor to createdAtcreated•Date
At Time! non-null The date and time when the discount was created.
- Anchor to customerBuyscustomer•Discount
Buys Customer Buys! non-null The items eligible for the discount and the required quantity of each to receive the discount.
- Anchor to customerGetscustomer•Discount
Gets Customer Gets! non-null The items in the order that qualify for the discount, their quantities, and the total value of the discount.
- Anchor to discountClassesdiscount•[Discount
Classes Class!]! non-null The classes of the discount.
- Anchor to endsAtends•Date
At Time The date and time when the discount expires and is no longer available to customers. For discounts without a fixed expiration date, specify
null.- Anchor to eventsevents•Event
Connection! non-null The paginated list of events associated with the host subject.
- Anchor to firstfirst•Int
The first
nelements from the paginated list.- Anchor to afterafter•String
The elements that come after the specified cursor.
- Anchor to lastlast•Int
The last
nelements from the paginated list.- Anchor to beforebefore•String
The elements that come before the specified cursor.
- Anchor to reversereverse•BooleanDefault:false
Reverse the order of the underlying list.
- Anchor to sortKeysort•Event
Key Sort Keys Default:ID Sort the underlying list using a key. If your query is slow or returns an error, then try specifying a sort key that matches the field used in the search.
- Anchor to queryquery•String
A filter made up of terms, connectives, modifiers, and comparators. You can apply one or more filters to a query. Learn more about Shopify API search syntax.
- Anchor to comments•boolean
Whether or not to include comment-events in your search, passing
falsewill exclude comment-events, any other value will include comment-events.falsetrue- Anchor to created_at•time
Filter by the date and time when the event happened.
created_at:>2020-10-21created_at:<now- Anchor to subject_type•string
The resource type affected by this event. See EventSubjectType for possible values.
PRODUCT_VARIANTPRODUCTCOLLECTION
Example:
Example:
Example:
Arguments
- Anchor to startsAtstarts•Date
At Time! non-null The date and time when the discount becomes active and is available to customers.
- Anchor to statusstatus•Discount
Status! non-null The status of the discount that describes its availability, expiration, or pending activation.
- Anchor to summarysummary•String!non-null
A detailed explanation of what the discount is, who can use it, when and where it applies, and any associated rules or limitations.
- Anchor to titletitle•String!non-null
The discount's name that displays to merchants in the Shopify admin and to customers.
- Anchor to updatedAtupdated•Date
At Time! non-null The date and time when the discount was updated.
- Anchor to usesPerOrderLimituses•Int
Per Order Limit The maximum number of times that the discount can be applied to an order.
- Anchor to discountClassdiscount•Merchandise
Class Discount Class! non-nullDeprecated - •ID!non-nullDeprecated
- Anchor to usageCountusage•Int!
Count non-nullDeprecated
- •OBJECT
The
object lets you manage free shipping discounts that are automatically applied on a cart and at checkout. Free shipping discounts are promotional deals that merchants offer to customers to waive shipping costs and encourage online purchases.The
object stores information about automatic free shipping discounts that apply to specific products and variants, collections, or all items in a cart.Learn more about working with Shopify's discount model, including limitations and considerations.
Note- Anchor to appliesOnOneTimePurchaseapplies•Boolean!
On One Time Purchase non-null Whether the discount applies on one-time purchases. A one-time purchase is a transaction where you pay a single time for a product, without any ongoing commitments or recurring charges.
- Anchor to appliesOnSubscriptionapplies•Boolean!
On Subscription non-null Whether the discount applies on subscription items. Subscriptions enable customers to purchase products on a recurring basis.
- Anchor to asyncUsageCountasync•Int!
Usage Count non-null The number of times that the discount has been used. For example, if a "Buy 3, Get 1 Free" t-shirt discount is automatically applied in 200 transactions, then the discount has been used 200 times. This value is updated asynchronously. As a result, it might be lower than the actual usage count until the asynchronous process is completed.
- Anchor to combinesWithcombines•Discount
With Combines With! non-null The discount classes that you can use in combination with Shopify discount types.
- Anchor to contextcontext•Discount
Context! non-null The context defining which buyers can use the discount.
- Anchor to createdAtcreated•Date
At Time! non-null The date and time when the discount was created.
- Anchor to destinationSelectiondestination•Discount
Selection Shipping Destination Selection! non-null The countries that qualify for the discount. You can define a list of countries or specify all countries to be eligible for the discount.
- Anchor to discountClassesdiscount•[Discount
Classes Class!]! non-null The classes of the discount.
- Anchor to endsAtends•Date
At Time The date and time when the discount expires and is no longer available to customers. For discounts without a fixed expiration date, specify
null.- Anchor to hasTimelineCommenthas•Boolean!
Timeline Comment non-null Whether there are timeline comments associated with the discount.
- Anchor to maximumShippingPricemaximum•Money
Shipping Price V2 The maximum shipping price amount accepted to qualify for the discount.
- Anchor to minimumRequirementminimum•Discount
Requirement Minimum Requirement The minimum subtotal or quantity of items that are required for the discount to be applied.
- Anchor to recurringCycleLimitrecurring•Int!
Cycle Limit non-null The number of billing cycles for which the discount can be applied, which is useful for subscription-based discounts. For example, if you set this field to
3, then the discount only applies to the first three billing cycles of a subscription. If you specify0, then the discount applies indefinitely.- Anchor to shortSummaryshort•String!
Summary non-null An abbreviated version of the discount
summaryfield.- Anchor to startsAtstarts•Date
At Time! non-null The date and time when the discount becomes active and is available to customers.
- Anchor to statusstatus•Discount
Status! non-null The status of the discount that describes its availability, expiration, or pending activation.
- Anchor to summarysummary•String!non-null
A detailed explanation of what the discount is, who can use it, when and where it applies, and any associated rules or limitations.
- Anchor to titletitle•String!non-null
The discount's name that displays to merchants in the Shopify admin and to customers.
- Anchor to totalSalestotal•Money
Sales V2 The total sales from orders where the discount was used.
- Anchor to updatedAtupdated•Date
At Time! non-null The date and time when the discount was updated.
- Anchor to discountClassdiscount•Shipping
Class Discount Class! non-nullDeprecated
Anchor to Fields with this unionFields with this union
- •CONNECTION
An auto-generated type for paginating through multiple DiscountAutomatics.
- •OBJECT
An auto-generated type which holds one DiscountAutomatic and a cursor during pagination.
- •OBJECT
The
object enables you to manage automatic discounts that are applied when an order meets specific criteria. You can create amount off, free shipping, or buy X get Y automatic discounts. For example, you can offer customers a free shipping discount that applies when conditions are met. Or you can offer customers a buy X get Y discount that's automatically applied when customers spend a specified amount of money, or a specified quantity of products.Learn more about working with Shopify's discount model, including related queries, mutations, limitations, and considerations.