The input fields for creating or updating a code discount, where the discount type is provided by an app extension that uses [Shopify Functions](https://shopify.dev/docs/apps/build/functions).
Use these input fields when you need advanced or custom discount capabilities that aren't supported by [Shopify's native discount types](https://help.shopify.com/manual/discounts/discount-types).
code:
String -
The code that customers need to enter to redeem the discount.
combinesWith:
DiscountCombinesWithInput -
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).
customerSelection:
DiscountCustomerSelectionInput -
The customers that can use the discount. You can target specific customer IDs, use customer segments, or make the discount available to all customers.
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`.
functionId:
String -
The [function ID](https://shopify.dev/docs/apps/build/functions/input-output/metafields-for-input-queries) associated with the app extension that's providing the [discount type](https://help.shopify.com/manual/discounts/discount-types).
metafields:
MetafieldInput -
Additional metafields to associate to the discount. [Metafields](https://shopify.dev/docs/apps/build/custom-data) provide dynamic function configuration with different parameters, such as `percentage` for a percentage discount. Merchants can set metafield values in the Shopify admin, which makes the discount function more flexible and customizable.
startsAt:
DateTime -
The date and time when the discount becomes active and is available to customers.
title:
String -
The discount's name that displays to merchants in the Shopify admin and to customers.
usageLimit:
Int -
The maximum number of times that the discount can be used. For discounts with no usage limit, specify `null`.