# Discounts and Composable Commerce ## Discounts in commerce Discounts play a multi-faceted role in commerce and significantly impact the success of a business, some of which include: - Attracting customers - Increasing sales - Clearing inventory - Establishing and maintaining customer loyalty and retention - Setting up seasonal and promotion campaigns - Competing with competitors - Upselling and cross-selling - Collecting and managing data Understanding how to use discounts in day-to-day operations is crucial for digital commerce administrators and coordinators. Some of the most common discounts used by businesses are as follows: - 10% off items in a special category like tops, pants, shoes and don't already have a special price - 5% off items in any sale category - $10 off specific SKUs or attributes Digital commerce administrators or coordinators can use the [Merchant Center](https://docs.commercetools.com/merchant-center/discounts-overview.md) to create such discounts in Composable Commerce. ## Discounts in Composable Commerce Composable Commerce offers the following types of Discounts: - Product Discounts are applied directly to specific Products or Product Variants even before they are added to the Cart. For example, take $5 off a single variant's price. - Cart Discounts are applied to the entire Cart value based on certain conditions like Cart subtotal, specific Product Variants in the Cart, or customer segments. Cart Discounts affect the overall Cart value rather than individual Products. For example, you can apply a discount when a customer purchases multiple items of the same variant, and only then. - Discount Codes are customer-specific or general codes that customers can enter during the checkout process to receive a discount. When entered at checkout, Discount Codes trigger the associated Cart Discount. Using Composable Commerce's Discounts is a great way to ensure proper performance in your Project. See our [Calculate Prices](https://docs.commercetools.com/learning-price-and-discount-your-products/price-calculation/overview.md) module for further information. Product and Cart Discounts can model common promotions such as percentage discounts, volume pricing, and gift items. For the full list of use cases, see [Common discount use cases](https://docs.commercetools.com/api/pricing-and-discounts-overview.md#common-discount-use-cases). ### Product Discounts vs Cart Discounts Product Discounts share some common features with Cart Discounts: - [Flexible Discount Predicates](https://docs.commercetools.com/learning-price-and-discount-your-products/product-discounts/discounts-and-composable-commerce.md#what-are-predicates): Both types use [Discount Predicates](https://docs.commercetools.com/api/predicates/predicate-operators.md) to define the conditions under which a Discount applies. - [Discount ranking](https://docs.commercetools.com/api/projects/productDiscounts.md#productdiscount): Each Discount has a `sortOrder` value that determines its priority relative to other Discounts in the Project. - [Relative and absolute Discounts](https://docs.commercetools.com/api/projects/productDiscounts.md#productdiscountvalue): Both types support relative (percentage-based) and absolute (fixed-value) discount amounts. Although some similarities exist between Product Discounts and Cart Discounts, some noteworthy differences exist too: - Only one Product Discount can apply to a Product at any given time (the highest ranked active Product Discount) as opposed to multiple Cart Discounts that can apply simultaneously at any given time. - While Product Discounts can be applied directly to a Product, Cart Discounts offer more variety. For example, Cart Discounts can be applied to the Cart Total, to Shipping Methods or even to offer free gifts. #### Discount interaction configuration The Project's [DiscountsConfiguration](https://docs.commercetools.com/urn?urn=ctp%3Aapi%3Atype%3ADiscountsConfiguration) determines how Product Discounts and Cart Discounts interact when both would apply to a Cart. Configure `discountCombinationMode` to either `Stacking` (apply both discount types sequentially) or `BestDeal` (apply only the discount type offering the lowest Cart total). Strategic implications: - Stacking: Maximizes customer savings by applying Product Discounts first, then Cart Discounts to reduced prices. Use for customer acquisition campaigns or loyalty programs. Trade-off: higher discount costs and complex interaction planning. - BestDeal: Applies only one discount type per Cart (whichever yields lower total). Use for controlled discount budgets or simplified discount strategies. Trade-off: some Line Item prices may be higher if switching discount types provides overall better deal. Configure via [Project settings](https://docs.commercetools.com/merchant-center/project-settings.md#miscellaneous) or the [Set Discounts Configuration](https://docs.commercetools.com/api/projects/project.md#set-discounts-configuration) update action. Default is `Stacking`. Learn more about discount interaction in the [Cart Discounts](https://docs.commercetools.com/learning-price-and-discount-your-products/cart-discounts/overview.md) module. ### What are Predicates? Discounts require conditions specified through Predicates, which evaluate whether specified conditions are true or false for Product and Cart Discounts. A predicate comprises of a field identifier, an operator, and a value, for example: (a CSV formatted table follows. The first line are the column names.) Field identifier,Operator,Value SKU,=,AB-123 In the above case, if a Product Variant matching the specified SKU exists, its Price would be discounted according to the rest of the Product Discount. To use Predicates in more complicated scenarios, see [Discount Predicates](https://docs.commercetools.com/api/predicates/predicate-operators.md) and [Discount Predicate Field Identifiers](https://docs.commercetools.com/api/projects/predicates.md) to learn the predicate syntax and to know how to specify it. ## Related pages - [Section overview page](https://docs.commercetools.com/learning-price-and-discount-your-products.md) - [Previous page: Overview](https://docs.commercetools.com/learning-price-and-discount-your-products/product-discounts/overview.md) - [Next page: Manage Product Discounts](https://docs.commercetools.com/learning-price-and-discount-your-products/product-discounts/manage-product-discounts.md)