A user seeks to display the highest variant price instead of the lowest on Shopify homepage and collection pages. Their product currently shows “From $500” (the cheapest option), but they want the most expensive variant price visible.
Initial misunderstanding: One responder suggested sorting collection products by price, but the original poster clarified they need to change how individual product prices display, not product order.
Working solutions emerged:
Liquid code modification: In product-block.liquid, change {% assign cheapest_variant = product.variants | sort: 'price' | first %} to use | last instead of | first, creating a costliest_variant variable.
Price.liquid edit: Locate the money_price assignment and change money_price to money_price_max in the code block handling product.price_varies.
External resource: A Stack Overflow thread was referenced for Dawn theme-specific solutions.
Outcome: Multiple users confirmed the money_price_max solution worked, displaying the higher price and removing the “From” prefix. Several participants expressed interest in this same customization, indicating it’s a common need.
Summarized with AI on October 28.
AI used: claude-sonnet-4-5-20250929.
Hello. I need help in editing the code on my shop. I am using third party theme, but it’s based on Down theme.
I have a product that has variants. Right now the price displayed on the homepage and collection is the lowest price. I want to display the highest price.
This may not be exactly what you’re attempting to do, but in the product-block.liquid code, my theme is using the following code to select the cheapest variant:
Then, where you ouptut the variant price in your template, use your new “costliest_variant” instead of the “cheapest_variant” or whatever variable is there now. For example:
You’d have to find the coding that’s responsible for showing the prices on your collection pages, and then edit the “money_price” value to be “money_price_max” … so that it shows the most expensive variant price on your collection pages, instead of the cheapest variant price (which is the default).
Generally this would be under the Price.Liquid
You’re looking for -
if target == product and product.price_varies
assign money_price = 'products.product.price.from_price_html' | t: price: money_price
endif
Change to -
if target == product and product.price_varies
assign money_price = 'products.product.price.from_price_html' | t: price: money_price_max
endif