Indexing dynamic prices
Indexing dynamic prices
Some commerce implementations, typically in B2B scenarios, rely on external pricing systems to determine customer-specific prices at checkout. For example, a vendor’s pricing may vary based on buyer groups, contract types, or specific store locations. These systems often calculate prices dynamically, making it difficult or impractical to index final or buyer-specific prices in the product source.
In Coveo for Commerce implementations, ec_price
is a required standard field that’s used to store the price of a product.
The information it contains is used in various Coveo features, including Coveo Machine Learning (Coveo ML) models, merchandising rules, and search interfaces.
However, some vendors may face constraints in indexing content for the ec_price
field due to the nature of their pricing systems.
This article explains the importance of indexing ec_price
, outlines the consequences of not indexing this field, and suggests alternative approaches.
Why you should index ec_price
Indexing the ec_price
field lets you take full advantage of Coveo for Commerce features such as Coveo Machine Learning (Coveo ML), merchandising rules, and price sorting on search pages and product listing pages.
-
Coveo Machine Learning (ML): The information in the
ec_price
field is used to train some Coveo ML models. This value is used by both the Session-Based Product Recommendations (SBPR) model and the Cart recommender strategy of the Product Recommendation (PR) model to optimize relevance and recommendations. Avoid using these ML capabilities if you don’t index theec_price
field. -
Merchandising rules: The
ec_price
field is used in merchandising rules in the Coveo Merchandising Hub (CMH) to boost, filter, or demote items based on price ranges. For example, you can create a merchandising rule to boost items under $50. If you don’t index theec_price
field, you can’t use price values to define merchandising rules. -
Search and product listing interfaces:
-
Price values can be used as a facet to filter search results based on price ranges. If you don’t index the
ec_price
field, your users won’t be able to filter search results based on prices. -
The value of the
ec_price
field is used to display product prices in Coveo-powered user interfaces. If you don’t index theec_price
field, search result templates on search and product listing pages won’t be able to include a price value.
-
About reporting
Coveo’s revenue-based reporting features, such as CMH reports or the Advanced Reports in the Coveo Administration Console, don’t rely on the indexed ec_price
field.
They’re calculated based on purchase events, using the price
values provided at the time of purchase.
This means revenue reporting will function as expected if you send only the price values representing the actual price paid by the customer in the purchase event.
Alternative approaches
When it’s not feasible to index exact pricing, consider one of the following approaches based on your goals:
-
Index a fallback price: If you can’t index the actual customer-specific price, consider indexing a fallback value such as the Manufacturer’s Suggested Retail Price (MSRP) or a default/base price. This allows ML models to function effectively while accommodating your pricing system limitations.
If you choose this option, this value is available to use for filtering and sorting in Coveo-powered interfaces by default. This means the price displayed in the UI may differ from what the customer actually pays. To avoid this, make the
ec_price
field non-searchable by ensuring the following field settings are unselected:-
Facet
-
Sortable
-
Search operator
-
Displayable in results
-
-
No indexing: If you can’t index the
ec_price
field, you can choose not to index it at all. However, you won’t be able to use:-
The Coveo ML Session-Based Product Recommendations (SBPR) model or the Cart recommender strategy of the Product Recommendation (PR) model.
-
The price attribute in merchandising rules.
-
Price values for filtering or sorting within Coveo-powered interfaces.
-
Price values to display in search result templates.
-