ну если разговор идет о фильтре, то загляни в файл /xsltTpls/modules/catalog/search-filter.xsl
там на 67 строчке есть шаблон который используется в том числе для полей типа price, вот ниже него делаешь копию и правишь то что тебе надо... примерно так:
<xsl:template match="field[@name='price']" mode="search">
<div class="grade">
<label class="right">
<span>
<xsl:text>&range-to;</xsl:text>
</span>
<input type="text" name="fields_filter[{@name}][1]" value="{value_to}" class="textinputs" />
</label>
<label>
<span>
Цена (руб)
<xsl:text> &range-from;</xsl:text>
</span>
<input type="text" name="fields_filter[{@name}][0]" value="{value_from}" class="textinputs" />
</label>
</div>
</xsl:template>
можно так
<xsl:template match="field[@data-type = 'price']" mode="search">
<xsl:variable name="min_max_price" select="document(concat('udata://catalog/min_and_max/',../../@category_id))/udata"></xsl:variable>
<xsl:variable name="min_price" select="$min_max_price/min"/>
<xsl:variable name="max_price" select="$min_max_price/max" />
<div class="grade">
<label class="right">
<span>
<xsl:text>&range-to; </xsl:text>
<xsl:value-of select="$max_price"/>
<xsl:text> руб.</xsl:text>
</span>
<input id="amount_to" type="text" name="fields_filter[{@name}][1]" value="{$max_price}" class="textinputs" />
</label>
<label>
<span>
<xsl:value-of select="@title" />
<xsl:text> &range-from; </xsl:text>
<xsl:value-of select="$min_price"/>
<xsl:text> руб.</xsl:text>
</span>
<input id="amount_from" type="text" name="fields_filter[{@name}][0]" value="{$min_price}" class="textinputs" />
</label>
</div>
</xsl:template>
у вас сразу появится минимальная и максимальная цена в этой категории
Код для функции min_and_max (вставлять в catalog/__custom.php)
public function min_and_max($category_id)
{
$category_id = (int)$category_id;
// 218 – filed_id поля price
$sql = "SELECT MAX( oc_218.float_val ), MIN( oc_218.float_val )
FROM cms3_hierarchy h, cms3_object_content oc_218
WHERE h.obj_id = oc_218.obj_id
AND h.rel = {$category_id}
AND h.is_deleted = '0'
AND h.is_active = '1'
AND oc_218.field_id =218";
$result = l_mysql_query($sql);
list($max_price, $min_price) = mysql_fetch_row($result);
$block_arr = Array();
$block_arr['min'] = $min_price;
$block_arr['max'] = $max_price;
return $block_arr;
}