# Product Discounts Product Discounts reduce certain Product Prices. Product Discounts are useful for scenarios when you want to display a discounted price before adding an item to the Cart. Product Discounts are subject to a [limit](https://docs.commercetools.com/api/limits.md#product-discounts) in a Project. For an introduction to Product Discounts and to understand how they work, see the [Product Discounts overview](https://docs.commercetools.com/api/pricing-and-discounts-overview.md#product-discounts). When you create, update, or delete a Product Discount, the Prices are updated in an [eventually consistent](https://docs.commercetools.com/api/general-concepts.md#eventual-consistency) manner. Both [Embedded Prices](https://docs.commercetools.com/api/types.md#price) and [StandalonePrices](https://docs.commercetools.com/api/projects/standalone-prices.md#standaloneprice) associated to a [ProductVariant](https://docs.commercetools.com/urn?urn=ctp%3Aapi%3Atype%3AProductVariant) are updated, regardless of the Product's [priceMode](https://docs.commercetools.com/api/projects/products.md#product) value. The time to update can vary—between a fraction of a second to several hours—depending on the following factors: - The number of Products and their size - The number of Products affected by Discount predicates - The number of Prices to be updated Learn more about Product Discounts in our self-paced Product Discounts module. ## Representations #### ProductDiscount See API type definition [ProductDiscount](https://docs.commercetools.com/api/projects/productDiscounts.md?urn=ctp%3Aapi%3Atype%3AProductDiscount). #### ProductDiscountDraft See API type definition [ProductDiscountDraft](https://docs.commercetools.com/api/projects/productDiscounts.md?urn=ctp%3Aapi%3Atype%3AProductDiscountDraft). #### ProductDiscountPagedQueryResponse See API type definition [ProductDiscountPagedQueryResponse](https://docs.commercetools.com/api/projects/productDiscounts.md?urn=ctp%3Aapi%3Atype%3AProductDiscountPagedQueryResponse). #### ProductDiscountReference See API type definition [ProductDiscountReference](https://docs.commercetools.com/api/projects/productDiscounts.md?urn=ctp%3Aapi%3Atype%3AProductDiscountReference). #### ProductDiscountKeyReference See API type definition [ProductDiscountKeyReference](https://docs.commercetools.com/api/projects/productDiscounts.md?urn=ctp%3Aimport%3Atype%3AProductDiscountKeyReference). #### ProductDiscountResourceIdentifier See API type definition [ProductDiscountResourceIdentifier](https://docs.commercetools.com/api/projects/productDiscounts.md?urn=ctp%3Aapi%3Atype%3AProductDiscountResourceIdentifier). #### ProductDiscountValue Abstract parent type for the specific values, distinguished by the `type` field - [relative](https://docs.commercetools.com/api/projects/productDiscounts.md#productdiscountvaluerelative), [absolute](https://docs.commercetools.com/api/projects/productDiscounts.md#productdiscountvalueabsolute), or [external](https://docs.commercetools.com/api/projects/productDiscounts.md#productdiscountvalueexternal). ##### ProductDiscountValueRelative See API type definition [ProductDiscountValueRelative](https://docs.commercetools.com/api/projects/productDiscounts.md?urn=ctp%3Aapi%3Atype%3AProductDiscountValueRelative). ##### ProductDiscountValueAbsolute See API type definition [ProductDiscountValueAbsolute](https://docs.commercetools.com/api/projects/productDiscounts.md?urn=ctp%3Aapi%3Atype%3AProductDiscountValueAbsolute). ##### ProductDiscountValueExternal See API type definition [ProductDiscountValueExternal](https://docs.commercetools.com/api/projects/productDiscounts.md?urn=ctp%3Aapi%3Atype%3AProductDiscountValueExternal). #### ProductDiscountValueDraft Abstract parent draft type for the specific value drafts, distinguished by the `type` field - [relative](https://docs.commercetools.com/api/projects/productDiscounts.md#productdiscountvaluerelativedraft), [absolute](https://docs.commercetools.com/api/projects/productDiscounts.md#productdiscountvalueabsolutedraft), or [external](https://docs.commercetools.com/api/projects/productDiscounts.md#productdiscountvalueexternaldraft). ##### ProductDiscountValueRelativeDraft See API type definition [ProductDiscountValueRelativeDraft](https://docs.commercetools.com/api/projects/productDiscounts.md?urn=ctp%3Aapi%3Atype%3AProductDiscountValueRelativeDraft). ##### ProductDiscountValueAbsoluteDraft See API type definition [ProductDiscountValueAbsoluteDraft](https://docs.commercetools.com/api/projects/productDiscounts.md?urn=ctp%3Aapi%3Atype%3AProductDiscountValueAbsoluteDraft). ##### ProductDiscountValueExternalDraft See API type definition [ProductDiscountValueExternalDraft](https://docs.commercetools.com/api/projects/productDiscounts.md?urn=ctp%3Aapi%3Atype%3AProductDiscountValueExternalDraft). #### ProductDiscountMatchQuery See API type definition [ProductDiscountMatchQuery](https://docs.commercetools.com/api/projects/productDiscounts.md?urn=ctp%3Aapi%3Atype%3AProductDiscountMatchQuery). ##### QueryPrice See API type definition [QueryPrice](https://docs.commercetools.com/api/projects/productDiscounts.md?urn=ctp%3Aapi%3Atype%3AQueryPrice). ## Get ProductDiscount ### Get ProductDiscount by ID See API endpoint definition [GET /\{projectKey}/product-discounts/\{id}](https://docs.commercetools.com/api/projects/productDiscounts.md?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fproduct-discounts%2F%7Bid%7D%3AGET). ### Get ProductDiscount by Key See API endpoint definition [GET /\{projectKey}/product-discounts/key=\{key}](https://docs.commercetools.com/api/projects/productDiscounts.md?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fproduct-discounts%2Fkey%3D%7Bkey%7D%3AGET). ## Query ProductDiscounts See API endpoint definition [GET /\{projectKey}/product-discounts](https://docs.commercetools.com/api/projects/productDiscounts.md?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fproduct-discounts%3AGET). ## Check if ProductDiscount exists ### Check if ProductDiscount exists by ID See API endpoint definition [HEAD /\{projectKey}/product-discounts/\{id}](https://docs.commercetools.com/api/projects/productDiscounts.md?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fproduct-discounts%2F%7Bid%7D%3AHEAD). ### Check if ProductDiscount exists by Key See API endpoint definition [HEAD /\{projectKey}/product-discounts/key=\{key}](https://docs.commercetools.com/api/projects/productDiscounts.md?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fproduct-discounts%2Fkey%3D%7Bkey%7D%3AHEAD). ### Check if ProductDiscount exists by Query Predicate See API endpoint definition [HEAD /\{projectKey}/product-discounts](https://docs.commercetools.com/api/projects/productDiscounts.md?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fproduct-discounts%3AHEAD). ## Create ProductDiscount See API endpoint definition [POST /\{projectKey}/product-discounts](https://docs.commercetools.com/api/projects/productDiscounts.md?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fproduct-discounts%3APOST). ## Update ProductDiscount ### Update ProductDiscount by ID See API endpoint definition [POST /\{projectKey}/product-discounts/\{id}](https://docs.commercetools.com/api/projects/productDiscounts.md?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fproduct-discounts%2F%7Bid%7D%3APOST). ### Update ProductDiscount by Key See API endpoint definition [POST /\{projectKey}/product-discounts/key=\{key}](https://docs.commercetools.com/api/projects/productDiscounts.md?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fproduct-discounts%2Fkey%3D%7Bkey%7D%3APOST). ## Update actions #### Set Key See API type definition [ProductDiscountSetKeyAction](https://docs.commercetools.com/api/projects/productDiscounts.md?urn=ctp%3Aapi%3Atype%3AProductDiscountSetKeyAction). #### Change Value See API type definition [ProductDiscountChangeValueAction](https://docs.commercetools.com/api/projects/productDiscounts.md?urn=ctp%3Aapi%3Atype%3AProductDiscountChangeValueAction). #### Change Predicate See API type definition [ProductDiscountChangePredicateAction](https://docs.commercetools.com/api/projects/productDiscounts.md?urn=ctp%3Aapi%3Atype%3AProductDiscountChangePredicateAction). #### Change Is Active See API type definition [ProductDiscountChangeIsActiveAction](https://docs.commercetools.com/api/projects/productDiscounts.md?urn=ctp%3Aapi%3Atype%3AProductDiscountChangeIsActiveAction). #### Set Valid From See API type definition [ProductDiscountSetValidFromAction](https://docs.commercetools.com/api/projects/productDiscounts.md?urn=ctp%3Aapi%3Atype%3AProductDiscountSetValidFromAction). #### Set Valid Until See API type definition [ProductDiscountSetValidUntilAction](https://docs.commercetools.com/api/projects/productDiscounts.md?urn=ctp%3Aapi%3Atype%3AProductDiscountSetValidUntilAction). #### Set Valid From and Until See API type definition [ProductDiscountSetValidFromAndUntilAction](https://docs.commercetools.com/api/projects/productDiscounts.md?urn=ctp%3Aapi%3Atype%3AProductDiscountSetValidFromAndUntilAction). #### Change Name See API type definition [ProductDiscountChangeNameAction](https://docs.commercetools.com/api/projects/productDiscounts.md?urn=ctp%3Aapi%3Atype%3AProductDiscountChangeNameAction). #### Set Description See API type definition [ProductDiscountSetDescriptionAction](https://docs.commercetools.com/api/projects/productDiscounts.md?urn=ctp%3Aapi%3Atype%3AProductDiscountSetDescriptionAction). #### Change Sort Order See API type definition [ProductDiscountChangeSortOrderAction](https://docs.commercetools.com/api/projects/productDiscounts.md?urn=ctp%3Aapi%3Atype%3AProductDiscountChangeSortOrderAction). ## Delete ProductDiscount ### Delete ProductDiscount by ID See API endpoint definition [DELETE /\{projectKey}/product-discounts/\{id}](https://docs.commercetools.com/api/projects/productDiscounts.md?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fproduct-discounts%2F%7Bid%7D%3ADELETE). ### Delete ProductDiscount by Key See API endpoint definition [DELETE /\{projectKey}/product-discounts/key=\{key}](https://docs.commercetools.com/api/projects/productDiscounts.md?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fproduct-discounts%2Fkey%3D%7Bkey%7D%3ADELETE). ## Get Matching ProductDiscount See API endpoint definition [POST /\{projectKey}/product-discounts/matching](https://docs.commercetools.com/api/projects/productDiscounts.md?urn=ctp%3Aapi%3Aendpoint%3A%2F%7BprojectKey%7D%2Fproduct-discounts%2Fmatching%3APOST). ## Related pages - [Section overview page](https://docs.commercetools.com/api.md) - [Previous page: Standalone Prices](https://docs.commercetools.com/api/projects/standalone-prices.md) - [Next page: Cart Discounts](https://docs.commercetools.com/api/projects/cartDiscounts.md)