Skip to main content
object

Requires Apps must have read_discounts access scope.

The DiscountCodeApp object stores information about code discounts that are managed by an app using Shopify Functions. Use DiscountCodeApp 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 DiscountAutomaticApp object has similar functionality to the DiscountCodeApp object, with the exception that DiscountAutomaticApp stores information about automatic discounts that are managed by an app using Shopify Functions.


Anchor to Fields and connectionsFields and connections

•AppDiscountType!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 appliesOncePerCustomerappliesOncePerCustomer
•Boolean!non-null

Whether a customer can only use the discount once.

Anchor to appliesOnOneTimePurchaseappliesOnOneTimePurchase
•Boolean!non-null

Whether the discount applies on regular one-time-purchase items.

Anchor to appliesOnSubscriptionappliesOnSubscription
•Boolean!non-null

Whether the discount applies to subscriptions items.

•Int!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.

•DiscountRedeemCodeConnection!non-null

A list codes that customers can use to redeem the discount.

•Count

The number of codes that a customer can use to redeem the discount.

•DiscountCombinesWith!non-null

The discount classes that you can use in combination with Shopify discount types.

•DateTime!non-null

The date and time when the discount was created.

•DiscountCustomerSelection!non-null

The customers that can use the discount.

•DiscountClass!non-null

The discount class that's used to control how discounts can be combined.

•ID!non-null

The globally-unique ID for the discount.

•DateTime

The date and time when the discount expires and is no longer available to customers. For discounts without a fixed expiration date, specify null.

•FunctionsErrorHistory

The error history for the latest version of the discount type that the app provides.

•Boolean!non-null

Whether there are timeline comments associated with the discount.

•Int

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 specify 0, then the discount applies indefinitely.

•[DiscountShareableUrl!]!non-null

A list of URLs that the app can use to share the discount.

•DateTime!non-null

The date and time when the discount becomes active and is available to customers.

•DiscountStatus!non-null

The status of the discount that describes its availability, expiration, or pending activation.

•String!non-null

The discount's name that displays to merchants in the Shopify admin and to customers.

•MoneyV2

The total sales from orders where the discount was used.

•DateTime!non-null

The date and time when the discount was updated.

•Int

The maximum number of times that a customer can use the discount. For discounts with unlimited usage, specify null.


Was this section helpful?

•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 discountAutomaticAppCreate.


Arguments

•DiscountCodeAppInput!required

The input data used to create the discount.


Fields

•DiscountCodeApp

The discount that the app provides.

•[DiscountUserError!]!non-null

The list of errors that occurred from executing the mutation.

•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 discountAutomaticAppUpdate.


Arguments

•DiscountCodeAppInput!required

The input fields required to update the discount.

•ID!required

The ID of the discount to update.


Fields

•DiscountCodeApp

The updated discount that the app provides.

•[DiscountUserError!]!non-null

The list of errors that occurred from executing the mutation.


Was this section helpful?