Skip to main content
union

Requires Apps must have read_discounts access scope.

A discount offers promotional value and can be applied by entering a code or automatically when conditions are met. Discounts can provide fixed amounts, percentage reductions, free shipping, or Buy X Get Y (BXGY) benefits on specific products or the entire order. For more complex scenarios, developers can use Function-backed discounts to create custom discount configurations.

•OBJECT

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


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

Whether the discount applies on one-time purchases.

Anchor to appliesOnSubscriptionappliesOnSubscription
•Boolean!
non-null

Whether the discount applies on subscription items. Subscriptions enable customers to purchase products on a recurring basis.

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

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

•[DiscountClass!]!
non-null

The classes of the discount.

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

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

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

•DateTime!
non-null

The date and time when the discount was updated.

•DiscountClass!
non-nullDeprecated
•OBJECT

The DiscountAutomaticBasic 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 DiscountAutomaticBasic 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

The DiscountCodeBasic object has similar functionality to the DiscountAutomaticBasic object, but customers need to enter a code to receive a discount.


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

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

•DiscountCustomerGets!
non-null

The items in the order that qualify for the discount, their quantities, and the total value of the discount.

•[DiscountClass!]!
non-null

The classes of 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.

•DiscountMinimumRequirement

The minimum subtotal or quantity of items that are required for the discount to be applied.

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

•String!
non-null

An abbreviated version of the discount summary field.

•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

A detailed explanation of what the discount is, who can use it, when and where it applies, and any associated rules or limitations.

•String!
non-null

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

•DateTime!
non-null

The date and time when the discount was updated.

•MerchandiseDiscountClass!
non-nullDeprecated
•Int!
non-nullDeprecated
•OBJECT

The DiscountAutomaticBxgy 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 DiscountAutomaticBxgy 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

The DiscountCodeBxgy object has similar functionality to the DiscountAutomaticBxgy object, but customers need to enter a code to receive a discount.


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

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

•DiscountCustomerBuys!
non-null

The items eligible for the discount and the required quantity of each to receive the discount.

•DiscountCustomerGets!
non-null

The items in the order that qualify for the discount, their quantities, and the total value of the discount.

•[DiscountClass!]!
non-null

The classes of 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.

•EventConnection!
non-null

The paginated list of events associated with the host subject.

•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

A detailed explanation of what the discount is, who can use it, when and where it applies, and any associated rules or limitations.

•String!
non-null

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

•DateTime!
non-null

The date and time when the discount was updated.

•Int

The maximum number of times that the discount can be applied to an order.

•MerchandiseDiscountClass!
non-nullDeprecated
•ID!
non-nullDeprecated
•Int!
non-nullDeprecated
•OBJECT

The DiscountAutomaticFreeShipping 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 DiscountAutomaticFreeShipping 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

The DiscountCodeFreeShipping object has similar functionality to the DiscountAutomaticFreeShipping object, but customers need to enter a code to receive a discount.


Anchor to appliesOnOneTimePurchaseappliesOnOneTimePurchase
•Boolean!
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 appliesOnSubscriptionappliesOnSubscription
•Boolean!
non-null

Whether the discount applies on subscription items. Subscriptions enable customers to purchase products on a recurring basis.

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

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

Anchor to destinationSelectiondestinationSelection
•DiscountShippingDestinationSelection!
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.

•[DiscountClass!]!
non-null

The classes of 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.

•Boolean!
non-null

Whether there are timeline comments associated with the discount.

Anchor to maximumShippingPricemaximumShippingPrice
•MoneyV2

The maximum shipping price amount accepted to qualify for the discount.

•DiscountMinimumRequirement

The minimum subtotal or quantity of items that are required for the discount to be applied.

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

•String!
non-null

An abbreviated version of the discount summary field.

•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

A detailed explanation of what the discount is, who can use it, when and where it applies, and any associated rules or limitations.

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

•ShippingDiscountClass!
non-nullDeprecated
•OBJECT

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.


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

•[DiscountClass!]!
non-null

The classes of the discount.

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

•DiscountCustomerSelection!
non-nullDeprecated
•DiscountClass!
non-nullDeprecated
•OBJECT

The DiscountCodeBasic object lets you manage amount off discounts that are applied on a cart and at checkout when a customer enters a code. 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 DiscountCodeBasic object stores information about amount off code 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

The DiscountAutomaticBasic object has similar functionality to the DiscountCodeBasic object, but discounts are automatically applied, without the need for customers to enter a code.


Anchor to appliesOncePerCustomerappliesOncePerCustomer
•Boolean!
non-null

Whether a customer can only use the discount once.

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

•DiscountCustomerGets!
non-null

The items in the order that qualify for the discount, their quantities, and the total value of the discount.

•[DiscountClass!]!
non-null

The classes of 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.

•Boolean!
non-null

Whether there are timeline comments associated with the discount.

•DiscountMinimumRequirement

The minimum subtotal or quantity of items that are required for the discount to be applied.

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

•String!
non-null

An abbreviated version of the discount summary field.

•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

A detailed explanation of what the discount is, who can use it, when and where it applies, and any associated rules or limitations.

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

•DiscountCustomerSelection!
non-nullDeprecated
•MerchandiseDiscountClass!
non-nullDeprecated
•OBJECT

The DiscountCodeBxgy object lets you manage buy X get Y discounts (BXGY) that are applied on a cart and at checkout when a customer enters a code. 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 DiscountCodeBxgy object stores information about BXGY code 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

The DiscountAutomaticBxgy object has similar functionality to the DiscountCodeBxgy object, but discounts are automatically applied, without the need for customers to enter a code.


Anchor to appliesOncePerCustomerappliesOncePerCustomer
•Boolean!
non-null

Whether a customer can only use the discount once.

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

•DiscountCustomerBuys!
non-null

The items eligible for the discount and the required quantity of each to receive the discount.

•DiscountCustomerGets!
non-null

The items in the order that qualify for the discount, their quantities, and the total value of the discount.

•[DiscountClass!]!
non-null

The classes of 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.

•Boolean!
non-null

Whether there are timeline comments associated with the discount.

•[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

A detailed explanation of what the discount is, who can use it, when and where it applies, and any associated rules or limitations.

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

•Int

The maximum number of times that the discount can be applied to an order.

•DiscountCustomerSelection!
non-nullDeprecated
•MerchandiseDiscountClass!
non-nullDeprecated
•OBJECT

The DiscountCodeFreeShipping object lets you manage free shipping discounts that are applied on a cart and at checkout when a customer enters a code. Free shipping discounts are promotional deals that merchants offer to customers to waive shipping costs and encourage online purchases.

The DiscountCodeFreeShipping object stores information about free shipping code 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

The DiscountAutomaticFreeShipping object has similar functionality to the DiscountCodeFreeShipping object, but discounts are automatically applied, without the need for customers to enter a code.


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

Whether the discount applies on subscription items. Subscriptions enable customers to purchase products on a recurring basis.

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

Anchor to destinationSelectiondestinationSelection
•DiscountShippingDestinationSelection!
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.

•[DiscountClass!]!
non-null

The classes of 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.

•Boolean!
non-null

Whether there are timeline comments associated with the discount.

Anchor to maximumShippingPricemaximumShippingPrice
•MoneyV2

The maximum shipping price amount accepted to qualify for the discount.

•DiscountMinimumRequirement

The minimum subtotal or quantity of items that are required for the discount to be applied.

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

•String!
non-null

An abbreviated version of the discount summary field.

•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

A detailed explanation of what the discount is, who can use it, when and where it applies, and any associated rules or limitations.

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

•DiscountCustomerSelection!
non-nullDeprecated
•ShippingDiscountClass!
non-nullDeprecated

Was this section helpful?

Anchor to Fields with this unionFields with this union

•OBJECT

The DiscountNode object enables you to manage discounts, which are applied at checkout or on a cart.

Discounts are a way for merchants to promote sales and special offers, or as customer loyalty rewards. Discounts can apply to orders, products, or shipping, and can be either automatic or code-based. For example, you can offer customers a buy X get Y discount that's automatically applied when purchases meet specific criteria. Or, you can offer discounts where customers have to enter a code to redeem an amount off discount on products, variants, or collections in a store.

Learn more about working with Shopify's discount model, including related mutations, limitations, and considerations.


Was this section helpful?