Вывести атрибуты товара в категории — OpenCart

Вывести атрибуты товара в категории — OpenCart

OpenCart - движок, использующий модель MVC, а значит, что в любом месте любой функционал работать не будет. Для этого он должен быть описан в контроллере и только после этого может быть выведен в шаблон. Поэтому, если вам требуется вывести свойства (атрибуты) товара на странице категории, то просто скопировав код из шаблона товара, это сделать не получится. А давайте разберемся, как же сделать это: как вывести атрибуты товара в категории OpenCart. Хочу заметить, что я делаю все модификации на движке ocStore 2.1.0.2.

Первое что мы сделаем - поправим контроллер. Идем по пути ftp /catalog/controller/product/category.php и в районе 227 строки после:

'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get('config_product_description_length')) . '..',

Дописываем:

'attribute_groups' => $this->model_catalog_product->getProductAttributes($result['product_id']),

Теперь можем заняться выводом. Открываем шаблон /catalog/view/theme/default/template/product/category.tpl и в нужном месте вставляем код:

<?php if($product['attribute_groups']) { ?>
<table>
	<?php foreach($product['attribute_groups'] as $attribute_group) { ?>
	<thead>
		<tr>
			<td colspan="2"><?php echo $attribute_group['name']; ?></td>
		</tr>
	</thead>
	<tbody>
		<?php foreach($attribute_group['attribute'] as $attribute) { ?>
		<tr>
			<td><?php echo $attribute['name']; ?></td>
			<td><?php echo $attribute['text']; ?></td>
		</tr>
		<?php } ?>
	</tbody>
	<?php } ?>
</table>
<?php } ?>

Вот и все. Теперь свойства товара (атрибуты) будут выводиться на странице категории.

26.03.17
Для просмотра сайта обновите браузер.