Discount Code App
Requires Apps must have access scope.
The object stores information about code discounts
that are managed by an app using
Shopify Functions.
Use when 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.
Note: The <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountAutomaticApp"><code><span class="PreventFireFoxApplyingGapToWBR">Discount<wbr/>Automatic<wbr/>App</span></code></a> object has similar functionality to the <code><span class="PreventFireFoxApplyingGapToWBR">Discount<wbr/>Code<wbr/>App</span></code> object, with the exception that <code><span class="PreventFireFoxApplyingGapToWBR">Discount<wbr/>Automatic<wbr/>App</span></code> stores information about automatic discounts that are managed by an app using Shopify Functions.
Anchor to FieldsFields
- appDiscountType (AppDiscountType!)
- appliesOncePerCustomer (Boolean!)
- appliesOnOneTimePurchase (Boolean!)
- appliesOnSubscription (Boolean!)
- asyncUsageCount (Int!)
- codes (DiscountRedeemCodeConnection!)
- codesCount (Count)
- combinesWith (DiscountCombinesWith!)
- context (DiscountContext!)
- createdAt (DateTime!)
- discountClasses ([DiscountClass!]!)
- discountId (ID!)
- endsAt (DateTime)
- errorHistory (FunctionsErrorHistory)
- hasTimelineComment (Boolean!)
- recurringCycleLimit (Int)
- shareableUrls ([DiscountShareableUrl!]!)
- startsAt (DateTime!)
- status (DiscountStatus!)
- title (String!)
- totalSales (MoneyV2)
- updatedAt (DateTime!)
- usageLimit (Int)
- 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 appliesOncePerCustomerapplies•Boolean!
Once Per Customer non-null Whether a customer can only use the discount once.
- Anchor to appliesOnOneTimePurchaseapplies•Boolean!
On One Time Purchase non-null Whether the discount applies on regular one-time-purchase items.
- Anchor to appliesOnSubscriptionapplies•Boolean!
On Subscription non-null Whether the discount applies to subscriptions items.
- 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 codescodes•Discount
Redeem Code Connection! non-null A list codes that customers can use to redeem the discount.
- 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•Discount
Key Code 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 savedSearchIdsaved•ID
Search Id The ID of a saved search. The search’s query string is used as the query argument.
Arguments
- Anchor to codesCountcodes•Count
Count The number of codes that a customer can use to redeem the discount.
- 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 hasTimelineCommenthas•Boolean!
Timeline Comment non-null Whether there are timeline comments associated with the discount.
- Anchor to recurringCycleLimitrecurring•Int
Cycle Limit 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.- •[Discount
Shareable Url!]! non-null A list of URLs that the app can use to share the discount.
- 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 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 usageLimitusage•Int
Limit The maximum number of times the discount can be redeemed. For unlimited usage, specify
null.
Deprecated fields
- customerSelection (DiscountCustomerSelection!): deprecated
- discountClass (DiscountClass!): deprecated
- Anchor to customerSelectioncustomer•Discount
Selection Customer Selection! non-nullDeprecated - Anchor to discountClassdiscount•Discount
Class Class! non-nullDeprecated
Anchor to MutationsMutations
- discountCodeAppCreate (DiscountCodeAppCreatePayload)
- discountCodeAppUpdate (DiscountCodeAppUpdatePayload)
- •mutation
Creates a code discount. The discount type must be provided by an app extension that uses Shopify Functions. Functions can implement order, product, or shipping discount functions. Use this mutation with Shopify Functions when you need custom logic beyond Shopify's native discount types.
For example, use this mutation to create a code discount using an app's "Volume" discount type that applies a percentage off when customers purchase more than the minimum quantity of a product. For an example implementation, refer to our tutorial.
Note: To create automatic discounts with custom logic, use <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/discountAutomaticAppCreate"><code><span class="PreventFireFoxApplyingGapToWBR">discount<wbr/>Automatic<wbr/>App<wbr/>Create</span></code></a>.
- Anchor to codeAppDiscountcode•Discount
App Discount Code App Input! required The input data used to create the discount.
Arguments
- •mutation
Updates a code discount, where the discount type is provided by an app extension that uses Shopify Functions. Use this mutation when you need advanced, custom, or dynamic discount capabilities that aren't supported by Shopify's native discount types.
Note: To update automatic discounts, use <a href="https://shopify.dev/docs/api/admin-graphql/latest/mutations/discountAutomaticAppUpdate"><code><span class="PreventFireFoxApplyingGapToWBR">discount<wbr/>Automatic<wbr/>App<wbr/>Update</span></code></a>.
- •ID!required
The ID of the discount to update.
- Anchor to codeAppDiscountcode•Discount
App Discount Code App Input! required The input fields required to update the discount.
Arguments
- •ID!