Здравствуйте,
как вариант реализации Вами задуманного, можно получать необходимые атрибуты не по ID, а по их названиям.
Для начала получаем все атрибуты товара:
$attributes = $this->model_catalog_product->getProductAttributes($result['product_id'])
Затем перебираем получившейся массив:
$attr1 = '';
$attr2 = '';
$attr3 = '';
foreach($attributes as $group) {
foreach($group as $attribute) {
switch ($attribute['name']) {
case 'attr1':
$attr1 = $attribute['name']; break;
case 'attr2':
$attr2 = $attribute['name']; break;
case 'attr3':
$attr3 = $attribute['name']; break;
}
}
}
$this->data['products'][] = array(
'product_id' => $result['product_id'],
// ...
'attr1' => $attr1,
'attr2' => $attr2,
'attr3' => $attr3
);
После этой операции в представлении (файл category.tpl) у каждого продукта будут необходимые Вам атрибуты.
Код не проверял, но вроде всё верно :-)