Skip to main content
object

Requires Apps must have read_discounts access scope.

The DiscountCodeNode object enables you to manage code discounts that are applied when customers enter a code at checkout. For example, 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. Or, you can offer discounts where customers have to enter a code to get free shipping. Merchants can create and share discount codes individually with customers.

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

•DiscountCode!
non-null

The underlying code discount object.

•EventConnection!
non-null

The paginated list of events associated with the host subject.

Arguments

•Int

The first n elements from the paginated list.

•String

The elements that come after the specified cursor.

•Int

The last n elements from the paginated list.

•String

The elements that come before the specified cursor.

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

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

Example:

  • created_at:>2020-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

•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

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

•String!
required

The key for the metafield.


•MetafieldConnection!
non-null

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

Arguments

•String

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

•[String!]

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

•Int

The first n elements from the paginated list.

•String

The elements that come after the specified cursor.

•Int

The last n elements from the paginated list.

•String

The elements that come before the specified cursor.

•Boolean
Default:false

Reverse the order of the underlying list.


Anchor to metafieldDefinitionsmetafieldDefinitions
•MetafieldDefinitionConnection!
non-nullDeprecated

Arguments

•String

Filter metafield definitions by namespace.

•MetafieldDefinitionPinnedStatus
Default:ANY

Filter by the definition's pinned status.

•Int

The first n elements from the paginated list.

•String

The elements that come after the specified cursor.

•Int

The last n elements from the paginated list.

•String

The elements that come before the specified cursor.

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

•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


Was this section helpful?

•query

Returns a code discount resource by ID.

Arguments

•ID!
required

The ID of the DiscountCodeNode to return.


•query

Retrieves a code discount by its discount code. The search is case-insensitive, enabling you to find discounts regardless of how customers enter the code.

Returns a DiscountCodeNode that contains the underlying discount details, which could be a basic amount off discount, a "Buy X Get Y" (BXGY) discount, a free shipping discount, or an app-provided discount.

Learn more about working with Shopify's discount model.

Arguments

•String!
required

The case-insensitive code of the DiscountCodeNode to return.


•query
Deprecated

Arguments

•Int

The first n elements from the paginated list.

•String

The elements that come after the specified cursor.

•Int

The last n elements from the paginated list.

•String

The elements that come before the specified cursor.

•Boolean
Default:false

Reverse the order of the underlying list.

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

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

Filter by the discount classes that you can use in combination with Shopify discount types.

Valid values:

  • order_discounts
  • product_discounts
  • shipping_discounts

Example:

  • combines_with:product_discounts
Anchor to created_at
•time

Filter by the date and time when the discount was created.

Example:

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

Filter by the discount type.

Valid values:

  • bogo
  • fixed_amount
  • free_shipping
  • percentage

Example:

  • discount_type:fixed_amount
Anchor to ends_at
•time

Filter by the date and time when the discount expires and is no longer available for customer use.

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

Valid values:

  • active
  • expired
  • scheduled

Example:

  • status:scheduled
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 customers.

Example:

  • title:Black Friday Sale
•string

Filter by the discount type.

Valid values:

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

Example:

  • type:percentage
Anchor to updated_at
•time

Filter by the date and time when the discount was last updated.

Example:

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

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



Was this section helpful?

•mutation

Activates a previously created code discount, making it available for customers to use during checkout. This mutation transitions inactive discount codes into an active state where they can be applied to orders.

For example, after creating a "SUMMER20" discount code but leaving it inactive during setup, merchants can activate it when ready to launch their summer promotion campaign.

Use DiscountCodeActivate to:

  • Launch scheduled promotional campaigns
  • Reactivate previously paused discount codes
  • Enable discount codes after configuration changes
  • Control the timing of discount availability

The mutation returns the updated discount code node with its new active status and handles any validation errors that might prevent activation, such as conflicting discount rules or invalid date ranges.

Arguments

•ID!
required

The ID of the code discount to activate.


•mutation

Creates an amount off discount that's applied on a cart and at checkout when a customer enters a code. Amount off discounts can be a percentage off or a fixed amount off.


Note

To create discounts that are automatically applied on a cart and at checkout, use the discountAutomaticBasicCreate mutation.


Arguments

•DiscountCodeBasicInput!
required

The input data used to create the discount code.


•mutation

Updates an amount off discount that's applied on a cart and at checkout when a customer enters a code. Amount off discounts can be a percentage off or a fixed amount off.


Note

To update discounts that are automatically applied on a cart and at checkout, use the discountAutomaticBasicUpdate mutation.


Arguments

•ID!
required

The ID of the discount code to update.

•DiscountCodeBasicInput!
required

The input data used to update the discount code.


•mutation

Creates a buy X get Y discount (BXGY) that's applied on a cart and at checkout when a customer enters a code.


Note

To create discounts that are automatically applied on a cart and at checkout, use the discountAutomaticBxgyCreate mutation.


Arguments

•DiscountCodeBxgyInput!
required

The input data used to create the BXGY code discount.


•mutation

Updates a buy X get Y discount (BXGY) that's applied on a cart and at checkout when a customer enters a code.


Note

To update discounts that are automatically applied on a cart and at checkout, use the discountAutomaticBxgyUpdate mutation.


Arguments

•ID!
required

The ID of the BXGY code discount to update.

•DiscountCodeBxgyInput!
required

The input data used to update the BXGY code discount.


•mutation

Temporarily suspends a code discount without permanently removing it from the store. Deactivation allows merchants to pause promotional campaigns while preserving the discount configuration for potential future use.

For example, when a flash sale needs to end immediately or a discount code requires temporary suspension due to inventory issues, merchants can deactivate it to stop new redemptions while keeping the discount structure intact.

Use DiscountCodeDeactivate to:

  • Pause active promotional campaigns timely
  • Temporarily suspend problematic discount codes
  • Control discount availability during inventory shortages
  • Maintain discount history while stopping usage

Deactivated discounts remain in the system and can be reactivated later, unlike deletion which persistently removes the code. Customers attempting to use deactivated codes will receive appropriate error messages.

Arguments

•ID!
required

The ID of the code discount to deactivate.


•mutation

Creates an free shipping discount that's applied on a cart and at checkout when a customer enters a code.


Note

To create discounts that are automatically applied on a cart and at checkout, use the discountAutomaticFreeShippingCreate mutation.


Arguments

Anchor to freeShippingCodeDiscountfreeShippingCodeDiscount
•DiscountCodeFreeShippingInput!
required

The input data used to create the discount code.


•mutation

Updates a free shipping discount that's applied on a cart and at checkout when a customer enters a code.


Note

To update a free shipping discount that's automatically applied on a cart and at checkout, use the discountAutomaticFreeShippingUpdate mutation.


Arguments

•ID!
required

The ID of the discount code to update.

Anchor to freeShippingCodeDiscountfreeShippingCodeDiscount
•DiscountCodeFreeShippingInput!
required

The input data used to update the discount code.



Was this section helpful?