в моём модуле используется плагин jQuery Templates - "js шаблонизатор". так передаётся минимум данных, соответственно работает быстрее.согласно MVC код не должен быть во view
catalog\controller\module\filterpro.php
$sale = false;
if($product['special']) {
$sale = round((1 - ($product['special'] / $product['price'])) * 100);
}
$description = function_exists('utf8_substr') ? utf8_substr(strip_tags(html_entity_decode($product['description'], ENT_QUOTES, 'UTF-8')), 0, 400) . '..' :
substr(strip_tags(html_entity_decode($product['description'], ENT_QUOTES, 'UTF-8')), 0, 400) . '..';
$result[] = array(
'product_id' => $product['product_id'],
'image' => $image,
'thumb' => $image,
'special' => $special,
'sale' => $sale,
'tax' => $tax,catalog\view\theme\default\template\module\filterpro.tpl
<div class="price">
{{if sale }}
<span class="price-old">${price}</span> <div class="sale">-${sale}%</div>
{{else}}