Price selection

Learn how price selection works in Composable Commerce.

Ask about this Page
Copy for LLM
View as Markdown

After completing this page, you should be able to:

  • Describe how to create and publish Prices in Composable Commerce.

  • Describe how the Price of a Line Item in a Cart is selected by Composable Commerce.

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.

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.

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 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.
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.

Product and Line Item Price selection

Composable Commerce uses a fallback price selection process to select the most appropriate price for a Product Variant or Line Item.
The Product Projections API and Product Projection Search endpoint determine the Product Variant price. The Carts API determines the Line Item price. For more information about how the price scopes map to each API, see here.
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.

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).
PriorityCurrencyValidity datesCustomer GroupDistribution ChannelCountry
1 (Highest)MatchingTrueMatchingMatchingMatching
2MatchingMatchingMatchingMatching
3MatchingTrueMatchingMatching
4MatchingMatchingMatching
5MatchingTrueMatchingMatching
6MatchingMatchingMatching
7MatchingTrueMatching
8MatchingMatching
9MatchingTrueMatchingMatching
10MatchingMatchingMatching
11MatchingTrueMatching
12MatchingMatching
13MatchingTrueMatching
14MatchingMatching
15MatchingTrue
16Matching
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.

Pricing for Recurring Orders

A Recurring Order can span several months, during which time a Product's Price may change. The PriceSelectionMode 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).

Test your knowledge