About the Product Discount Function API
The Product Discount API enables you to create a new type of discount that is applied to particular product variants or cart lines.
Example use cases
Anchor link to section titled "Example use cases"- Money off a product. For example, 20% off shirts.
- Money off a product variant. For example, $5 off blue shirts.
- Money off a cart line. For example, 10% off products with a name engraving option.
- Buy a specific quantity of a product for a specific amount. For example, $5 off up to 2 blue shirts.
- Buy a specific amount of a product, get a second amount at a discount. For example, buy 4 shirts and get 2 blue shirts free.
Getting started
Anchor link to section titled "Getting started"Follow the getting started tutorials to learn how to customize and extend discounts:
Developer tools and resources
Anchor link to section titled "Developer tools and resources"Migrating from scripts to functions
Anchor link to section titled "Migrating from scripts to functions"If you want to migrate an existing line item script to Shopify Functions, then you can use the following mappings:
Shopify Scripts method | Description | Shopify Functions object | Additional context |
---|---|---|---|
change_line_price |
Applies a discount to a cart line for a product by specifying a new reduced price, and a message | Product discount | Apply one or more Discounts by specifying the Value (percentage or fixedAmount off), Target(s) (either a cartLine , or productVariant ), and an optional message. |
split |
Splits a product into multiple lines so that you can apply discounts to partial quantities | Product discount | Use the optional quantity field in Target (either a cartLine , or productVariant ) to optionally limit the number of units the discount may be applied to. |
change_properties |
Adds or changes a line item property | Not available | Refer to applyAttributeChange in the checkout UI extensions API to apply attribute changes. |
reject |
Disallows a discounts code from being applied at checkout | Not available | Use a Product discount or Order discount function that contains the necessary logic. For example, you can use conditions to exclude a discount from applying. |
Limitations and considerations
Anchor link to section titled "Limitations and considerations"- Input
cart.deliveryGroups
is always an empty array for this function. - Active automatic app discounts using Shopify Functions are applicable for all Shopify sales channels that use Shopify Checkout, including the Online Store and Shopify Point Of Sale (POS).
- Learn how to use Shopify Functions by building a discounts experience.