in src/Feature/Catalog/code/Pipelines/Prices/GetProductBulkPricesFromIndex.cs [185:231]
protected virtual void SetVariantPricesFromProductVariants(
CommerceProductSearchResultItem productDocument,
List<VariantIndexInfo> variantInfoList,
ExtendedCommercePrice extendedPrice,
bool isLowestPriceVariantSpecified,
bool isLowestPriceVariantListPriceSpecified,
bool isHighestPriceVariantSpecified)
{
if (variantInfoList != null && variantInfoList.Count > 0)
{
decimal highestPrice = 0.0M;
decimal lowestPrice = 0.0M;
decimal basePrice = 0.0M;
bool processingFirstItem = true;
foreach (var variantInfo in variantInfoList)
{
if (processingFirstItem || variantInfo.ListPrice < lowestPrice)
{
lowestPrice = variantInfo.ListPrice;
basePrice = variantInfo.BasePrice;
}
if (processingFirstItem || variantInfo.ListPrice > highestPrice)
{
highestPrice = variantInfo.ListPrice;
}
processingFirstItem = false;
}
if (isLowestPriceVariantSpecified)
{
extendedPrice.LowestPricedVariant = lowestPrice;
}
if (isLowestPriceVariantListPriceSpecified)
{
extendedPrice.LowestPricedVariantListPrice = basePrice;
}
if (isHighestPriceVariantSpecified)
{
extendedPrice.HighestPricedVariant = highestPrice;
}
}
}