I sacrificed 25 points for the soloution as I couldn't get there myself. Thanks to the Xcart Team
By default, the extra field values are not assignd to the Smarty template engine on the products page (they are shown only on the product details page). In order to achieve such a functionality, the following modification to the 'products.php' file is required:
insert the next code
Code:
if (!empty($active_modules["Extra_Fields"]) && !empty($products)) {
foreach($products as $k => $v) {
$products[$k]["extra_fields"] = func_query("SELECT $sql_tbl[extra_fields].field as field, $sql_tbl[extra_field_values].value as value, $sql_tbl[extra_fields].service_name as service_name FROM $sql_tbl[extra_fields], $sql_tbl[extra_field_values] WHERE $sql_tbl[extra_field_values].fieldid = $sql_tbl[extra_fields].fieldid AND $sql_tbl[extra_fields].active='Y' AND $sql_tbl[extra_field_values].productid = '$v[productid]'");
}
}
just before the following line:
$smarty->assign("products",$products);
Then extra fields will be assigned to the '/skin1/customer/main/products_t.tpl' Smarty template and you'll be able to operate with the values. For example, you may show all extra fields for the product if you insert the following code (into the '/skin1/customer/main/products_t.tpl' template)
{foreach from=$products[product].extra_fields item="ef"}
{if $ef.value ne ''}
<br>{$ef.field}: {$ef.value}
{/if}
{/foreach}
before the next one:
{if $active_modules.Feature_Comparison ne '' && $products[product].fclassid > 0}
If you need to display only certain extra field which has the 'minPrice' service name, then you are supposed to use the next code:
{foreach from=$products[product].extra_fields item="ef"}
{if $ef.value ne '' && $ef.service_name eq 'minPrice'}
<br>{$ef.field}: {$ef.value}
{/if}
{/foreach}
Hope that helps