The `DiscountAutomaticApp` object stores information about automatic discounts
that are managed by an app using
[Shopify Functions](https://shopify.dev/docs/apps/build/functions).
Use `DiscountAutomaticApp`when you need advanced, custom, or
dynamic discount capabilities that aren't supported by
[Shopify's native discount types](https://help.shopify.com/manual/discounts/discount-types).
Learn more about creating
[custom discount functionality](https://shopify.dev/docs/apps/build/discounts/build-discount-function).
> Note:
> The [`DiscountCodeApp`](https://shopify.dev/docs/api/admin-graphql/latest/objects/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.
Access Scopes
`read_discounts` access scope.
Fields
appDiscountType:
AppDiscountType! -
The details about the app extension that's providing the
[discount type](https://help.shopify.com/manual/discounts/discount-types).
This information includes the app extension's name and
[client ID](https://shopify.dev/docs/apps/build/authentication-authorization/client-secrets),
[App Bridge configuration](https://shopify.dev/docs/api/app-bridge),
[discount class](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations),
[function ID](https://shopify.dev/docs/apps/build/functions/input-output/metafields-for-input-queries),
and other metadata about the discount type, including the discount type's name and description.
appliesOnSubscription:
Boolean! -
Whether the discount applies on subscription items.
[Subscriptions](https://shopify.dev/docs/apps/launch/billing/subscription-billing/offer-subscription-discounts)
enable customers to purchase products
on a recurring basis.
asyncUsageCount:
Int! -
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.
combinesWith:
DiscountCombinesWith! -
The
[discount classes](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations)
that you can use in combination with
[Shopify discount types](https://help.shopify.com/manual/discounts/discount-types).
createdAt:
DateTime! -
The date and time when the discount was created.
discountClass:
DiscountClass! -
The
[discount class](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations)
that's used to control how discounts can be combined.
discountId:
ID! -
The [globally-unique ID](https://shopify.dev/docs/api/usage/gids)
for the discount.
endsAt:
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`.
errorHistory:
FunctionsErrorHistory -
The [error history](https://shopify.dev/docs/apps/build/functions/monitoring-and-errors)
for the latest version of the discount type that the app provides.
recurringCycleLimit:
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.
startsAt:
DateTime! -
The date and time when the discount becomes active and is available to customers.
status:
DiscountStatus! -
The status of the discount that describes its availability,
expiration, or pending activation.
title:
String! -
The discount's name that displays to merchants in the Shopify admin and to customers.
updatedAt:
DateTime! -
The date and time when the discount was updated.
Connections
Related queries
Related mutations
discountAutomaticAppCreate
Creates an automatic discount that's managed by an app.
Use this mutation with [Shopify Functions](https://shopify.dev/docs/apps/build/functions)
when you need advanced, custom, or dynamic discount capabilities that aren't supported by
[Shopify's native discount types](https://help.shopify.com/manual/discounts/discount-types).
For example, use this mutation to create an automatic 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](https://shopify.dev/docs/apps/build/discounts/build-discount-function).
> Note:
> To create code discounts with custom logic, use the
[`discountCodeAppCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/discountCodeAppCreate)
mutation.
discountAutomaticAppUpdate
Updates an existing automatic discount that's managed by an app using
[Shopify Functions](https://shopify.dev/docs/apps/build/functions).
Use this mutation when you need advanced, custom, or
dynamic discount capabilities that aren't supported by
[Shopify's native discount types](https://help.shopify.com/manual/discounts/discount-types).
For example, use this mutation to update a new "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](https://shopify.dev/docs/apps/build/discounts/build-discount-function).
> Note:
> To update code discounts with custom logic, use the
[`discountCodeAppUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/discountCodeAppUpdate)
mutation instead.
DiscountAutomatic
The type of discount associated to the automatic discount. For example, the automatic discount might offer a basic discount using a fixed percentage, or a fixed amount, on specific products from the order. The automatic discount may also be a BXGY discount, which offers customer discounts on select products if they add a specific product to their order.