Skip to main content
object

Requires Apps must have read_discounts access scope.

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.

•Discount!
non-null

A discount that's applied at checkout or on cart.

Discounts can be automatic or code-based.

•EventConnection!
non-null

The paginated list of events associated with the host subject.

Arguments

•String

The elements that come after the specified cursor.

•String

The elements that come before the specified cursor.

•Int

The first n elements from the paginated list.

•Int

The last n elements from the paginated list.

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

•string

The action that occured.

Example:

  • action:create
Anchor to comments
•boolean

Whether or not to include comment-events in your search, passing false will exclude comment-events, any other value will include comment-events.

Example:

  • false
  • true
Anchor to created_at
•time

Filter by the date and time when the event occurred. Event data is retained for 1 year.

Example:

  • created_at:>2025-10-21
  • created_at:<now
•id

Filter by id range.

Example:

  • id:1234
  • id:>=1234
  • id:<=1234
Anchor to subject_type
•string

The resource type affected by this event. See EventSubjectType for possible values.

Example:

  • PRODUCT_VARIANT
  • PRODUCT
  • COLLECTION
•Boolean
Default:false

Reverse the order of the underlying list.

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


•ID!
non-null

A globally-unique ID.

•Metafield

A custom field, including its namespace and key, that's associated with a Shopify resource for the purposes of adding and storing additional information.

Arguments

•String!
required

The key for the metafield.

•String

The container the metafield belongs to. If omitted, the app-reserved namespace will be used.


•MetafieldConnection!
non-null

A list of custom fields that a merchant associates with a Shopify resource.

Arguments

•String

The elements that come after the specified cursor.

•String

The elements that come before the specified cursor.

•Int

The first n elements from the paginated list.

•[String!]

List of keys of metafields in the format namespace.key, will be returned in the same format.

•Int

The last n elements from the paginated list.

•String

The metafield namespace to filter by. If omitted, all metafields are returned.

•Boolean
Default:false

Reverse the order of the underlying list.


Anchor to metafieldsByIdentifiersmetafieldsByIdentifiers
•[Metafield]!
non-null

The metafields associated with the resource matching the supplied list of namespaces and keys.

Arguments

•[HasMetafieldsIdentifier!]!
required

The list of metafields to retrieve by namespace and key.


Anchor to metafieldDefinitionsmetafieldDefinitions
•MetafieldDefinitionConnection!
non-nullDeprecated

Arguments

•String

The elements that come after the specified cursor.

•String

The elements that come before the specified cursor.

•Int

The first n elements from the paginated list.

•Int

The last n elements from the paginated list.

•String

Filter metafield definitions by namespace.

•MetafieldDefinitionPinnedStatus
Default:ANY

Filter by the definition's pinned status.

•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 default
•string

Filter by a case-insensitive search of multiple fields in a document.

Example:

  • query=Bob Norman
  • query=title:green hoodie
Anchor to created_at
•time

Filter by the date and time when the metafield definition was created.

Example:

  • created_at:>2020-10-21T23:39:20Z
  • created_at:<now
  • created_at:<=2024
•id

Filter by id range.

Example:

  • id:1234
  • id:>=1234
  • id:<=1234
•string

Filter by the metafield definition key field.

Example:

  • key:some-key
Anchor to namespace
•string

Filter by the metafield definition namespace field.

Example:

  • namespace:some-namespace
Anchor to owner_type
•string

Filter by the metafield definition ownerType field.

Example:

  • owner_type:PRODUCT
•string

Filter by the metafield definition type field.

Example:

  • type:single_line_text_field
Anchor to updated_at
•time

Filter by the date and time when the metafield definition was last updated.

Example:

  • updated_at:>2020-10-21T23:39:20Z
  • updated_at:<now
  • updated_at:<=2024
•Boolean
Default:false

Reverse the order of the underlying list.

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



Was this section helpful?

•query

Returns a DiscountNode resource by ID.

Arguments

•ID!
required

The ID of the DiscountNode to return.


•query

Returns a list of discounts.

Arguments

•String

The elements that come after the specified cursor.

•String

The elements that come before the specified cursor.

•Int

The first n elements from the paginated list.

•Int

The last n elements from the paginated list.

•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 default
•string

Filter by a case-insensitive search of multiple fields in a document.

Example:

  • query=Bob Norman
  • query=title:green hoodie
•string

Filter by the discount code. Not supported for bulk discounts.

Example:

  • code:WELCOME10
Anchor to combines_with
•string

Filter by the Shopify Functions discount classes that the discount type can combine with. Supports multiple values separated by commas (e.g., combines_with:product_discounts,order_discounts).

Valid values:

  • order_discounts
  • product_discounts
  • shipping_discounts

Example:

  • combines_with:product_discounts
  • combines_with:product_discounts,order_discounts
Anchor to combines_with.product_discounts_with_tags_on_same_cart_line
•string

Filter by a combines with tag applied to discounts on the same cart line. Supports multiple tags separated by commas (e.g., combines_with.product_discounts_with_tags_on_same_cart_line:priority,exclusive).

Example:

  • combines_with.product_discounts_with_tags_on_same_cart_line:priority
  • combines_with.product_discounts_with_tags_on_same_cart_line:priority,exclusive
Anchor to context
•string

Filter by the context type. Supports multiple values separated by commas (e.g., context:all,market). When multiple values are provided, results include discounts that match any of them.

Valid values:

  • all
  • customer
  • segment
  • market

Example:

  • context:segment
  • context:all,market
Anchor to created_at
•time

Filter by the date and time, in the shop's timezone, when the discount was created.

Example:

  • created_at:>'2020-10-21T23:39:20Z'
  • created_at:<now
  • created_at:<='2024'
Anchor to customer_ids
•string

Filter by specific customer IDs that are eligible for the discount.

Example:

  • customer_ids:123456789
  • customer_ids:123,456
Anchor to discount_class
•string

Filter by the discount class. Supports multiple classes separated by commas (e.g., discount_class:product,order).

Valid values:

  • order
  • product
  • shipping

Example:

  • discount_class:product
  • discount_class:product,order
Anchor to discount_type
•string

Filter by the discount type. Supports multiple types separated by commas (e.g., discount_type:percentage,fixed_amount).

Valid values:

  • app
  • bogo
  • fixed_amount
  • free_shipping
  • percentage

Example:

  • discount_type:fixed_amount
  • discount_type:percentage,fixed_amount
Anchor to ends_at
•time

Filter by the date and time, in the shop's timezone, when the discount ends.

Example:

  • ends_at:>'2020-10-21T23:39:20Z'
  • ends_at:<now
  • ends_at:<='2024'
•id

Filter by id range.

Example:

  • id:1234
  • id:>=1234
  • id:<=1234
Anchor to market_ids
•string

Filter by specific market IDs that are eligible for the discount. Supports multiple IDs separated by commas (e.g., market_ids:123,456).

Example:

  • market_ids:123456789
  • market_ids:123,456
•string

Filter by the discount method. Supports multiple methods separated by commas (e.g., method:code,automatic).

Anchor to - `automatic`<br/> - `code`
•
  • method:code
    - method:code,automatic
Anchor to segment_ids
•string

Filter by specific segment IDs that are eligible for the discount. Supports multiple IDs separated by commas (e.g., segment_ids:123,456).

Example:

  • segment_ids:123456789
  • segment_ids:123,456
Anchor to starts_at
•time

Filter by the date and time, in the shop's timezone, when the discount becomes active and is available for customer use.

Example:

  • starts_at:>'2020-10-21T23:39:20Z'
  • starts_at:<now
  • starts_at:<='2024'
•string

Filter by the status of the discount. Supports multiple statuses separated by commas (e.g., status:active,scheduled).

Valid values:

  • active
  • expired
  • scheduled

Example:

  • status:scheduled
  • status:active,scheduled
•string

Filter by a tag applied to the discount. Supports multiple tags separated by commas (e.g., tag:loyalty,clearance).

Example:

  • tag:loyalty
  • tag:loyalty,clearance
Anchor to times_used
•integer

Filter by the number of times 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 different than the actual usage count.

Example:

  • times_used:0
  • times_used:>150
  • times_used:>=200
•string

Filter by the discount name that displays to merchants in the Shopify admin and to customers.

Example:

  • title:Black Friday Sale
•string

Filter by the discount type. Supports multiple types separated by commas (e.g., type:percentage,fixed_amount).

Valid values:

  • all
  • all_with_app
  • app
  • bxgy
  • fixed_amount
  • free_shipping
  • percentage

Example:

  • type:percentage
  • type:percentage,fixed_amount
Anchor to updated_at
•time

Filter by the date and time, in the shop's timezone, when the discount was last updated.

Example:

  • updated_at:>'2020-10-21T23:39:20Z'
  • updated_at:<now
  • updated_at:<='2024'
•Boolean
Default:false

Reverse the order of the underlying list.

•ID

The ID of a saved search. The search’s query string is used as the query argument.

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



Was this section helpful?

•interface

Was this section helpful?