# Price selection ## Factors influencing Prices Several factors within your Project can influence the total Price of a Product Variant or Cart, as shown in the following diagram. ![A node diagram showing the various factors that impact on the Total Price.](https://docs.commercetools.com/learning-price-and-discount-your-productsimages/price-calculation/factors-influencing-prices.svg) ### Base Prices Base Prices are the starting point for calculating the total Price of a Line Item. ### Taxes and shipping costs Taxes are added to the product price as a percentage of the product price. When you set up your Project, you must decide whether to include taxes in the Prices of the Product Variant. If taxes are not included, they are added to the base Price, increasing the Line Item's total Price. For more information, see [Taxes](/merchant-center/project-settings.md#add-a-tax-category). Before creating an Order, the most appropriate Price for the Line Items is selected, and tax rates and shipping costs are added—determining the Cart's total price. ### Price tiers For any Product Variant, you can specify what its Price will be if a Customer buys more than a certain quantity. Price tiers override the base Price for the Product Variant when this quantity is reached. ### Product Discounts Product Discounts apply directly to Product Variants and reduce the base Price of the Product Variants, affecting the final amount a customer pays. ### Cart Discounts and Discount Codes Cart Discounts and Discount Codes can apply to an entire Cart or specific Line Items in a Cart. These discounts reduce the total price of a Cart based on discount criteria, such as multi-buy scenarios or shipping costs. ### Price scopes A Price includes more than currency and amount; scopes such as country, Customer Group, Channel, validity dates, and [Recurrence Policy](/api/recurring-orders-overview.md) affect how Composable Commerce selects a Price for a Product or Line Item. For more information about the priority of these fields when selecting a Price for use in the Cart, see [Product and Line Item Price selection](/learning-price-and-discount-your-products/price-calculation/price-selection.md#product-and-line-item-price-selection). You can see the price scopes (for Embedded Prices) by navigating to the **Prices** tab on the Product Variant list page in the Merchant Center. ![Three Prices with scoped parameters in the Merchant Center.](https://docs.commercetools.com/learning-price-and-discount-your-productsimages/price-calculation/merchant-center-price-scoping.png) ## Product and Line Item Price selection Composable Commerce uses a [fallback price selection process](/api/pricing-and-discounts-overview.md#fallback-logic) to select the most appropriate price for a Product Variant or Line Item. The [Product Projections API](/api/projects/productProjections.md) and [Product Projection Search endpoint](/api/projects/product-projection-search.md#product-projection-search) determine the Product Variant price. The [Carts API](/api/projects/carts.md) determines the Line Item price. For more information about how the price scopes map to each API, see [here](/api/pricing-and-discounts-overview.md#price-selection). For recurring Line Items, the platform first tries to find a recurrence-specific Price using the same cascade. If no Price matches the specified Recurrence Policy, the platform falls back to the standard one-time purchase Price. For more information, see the [fallback logic](/api/pricing-and-discounts-overview.md#fallback-logic). Price selection only works for Composable Commerce's internal pricing solution—Embedded or Standalone Prices. When using an external pricing solution, the external price is added directly to the Line Item. This overrides any Embedded or Standalone Price set for the Product Variant. ### Price selection process **1. Price identification:** Composable Commerce uses the Product `priceMode` to identify if the Product uses Embedded or Standalone Price. If the `priceMode` value is not set, Composable Commerce assumes the Product to use Embedded Prices. **2. Price selection:** Composable Commerce selects a price for a specified currency, prioritizing scopes in the following order (highest to lowest). | Priority | Currency | Validity dates | Customer Group | Distribution Channel | Country | | --- | --- | --- | --- | --- | --- | | 1 (Highest) | Matching | True | Matching | Matching | Matching | | 2 | Matching | | Matching | Matching | Matching | | 3 | Matching | True | Matching | Matching | | | 4 | Matching | | Matching | Matching | | | 5 | Matching | True | Matching | | Matching | | 6 | Matching | | Matching | | Matching | | 7 | Matching | True | Matching | | | | 8 | Matching | | Matching | | | | 9 | Matching | True | | Matching | Matching | | 10 | Matching | | | Matching | Matching | | 11 | Matching | True | | Matching | | | 12 | Matching | | | Matching | | | 13 | Matching | True | | | Matching | | 14 | Matching | | | | Matching | | 15 | Matching | True | | | | | 16 | Matching | | | | | | 17 (Lowest) | No Price Found | | | | | Note the following: - During Price selection, the Customer Group has precedence over the Channel, which also has precedence over the country. - The Price selection logic goes from finding a price for a currency that matches specifics (Customer Group, country, and Channel) to an open range. - The Price selection logic also checks if a matching Price exists for the validity dates. If a Price is found, that Price is selected. - An empty cell indicates the logic will search for a price where the corresponding scope is explicitly not defined. - If valid Price tiers exist for a Price matching the logic, the tiered Price is used instead of the base Price. - For recurring Line Items, the platform uses the Recurrence Policy as an additional scope. If no recurrence-specific Price is found, the standard one-time Price is used as a [fallback](/api/recurring-orders-overview.md#prices). ### Pricing for Recurring Orders A Recurring Order can span several months, during which time a Product's Price may change. The [PriceSelectionMode](/api/recurring-orders-overview.md#define-a-price-selection-mode) on each recurring Line Item determines how price updates affect existing Recurring Orders. `Fixed` mode locks the Price at the time of Recurring Order creation, providing price stability for the customer. `Dynamic` mode re-evaluates the Price each time a new Order is generated, allowing price adjustments to take effect. The trade-off is between predictable billing (`Fixed`) and the flexibility to apply pricing changes across active Recurring Orders (`Dynamic`). ## Related pages - [Area overview page with navigation](/learning-price-and-discount-your-products.md) - [Previous page: Types of Prices](/learning-price-and-discount-your-products/price-calculation/types-of-prices.md) - [Next page: Case study](/learning-price-and-discount-your-products/price-calculation/case-study.md)