Рубрики
CMS Magento

Вывод атрибутов товара Magento на странице продукта по требованию

Код страницы продукта Magento
Работая над нестандартными темами Magento, часто возникает необходимость вывести атрибуты товара не через стандартную функцию вывода массива атрибутов, а непосредственно конкретный атрибут в нужном нам месте. Сегодня я публикою собранную мною коллекцию сниппетов для вывода кастомных атрибутов товара на страницы продукта в Magento.
Самым простым способом можно добавить на страницу продукта атрибуты типа текстовое поле. Добавить их же в список продуктов (страница категории) гораздо сложнее, но об этом подробно в другом посте. В этом посте мы рассматриваем лишь добавление атрибутов на страницу продукта.

Итак, если это текстовое поле, то все, что вам нужно сделать это использовать такой код:

<?php echo $_product->getAttributeName(); ?>

Здесь есть важная особенность о которой не стоит забывать. Если код вашего атрибута «shirt_size», тогда вместо getAttributeName() вы пишите getShirtSize(). Важно убирать нижнее подчеркивание и писать каждое слово с большой буквы, иначе ничего не получится.

Второй способ подходит для вывода атрибутов типа выпадающий список или множественный выбор:

<?php echo $_product->getAttributeText('shirt_size') ?>

Как видим, в данном случае мы используем именно код атрибута без изменений его написания. Следует обратить внимание, что данный метод вернет значение атрибута только для выпадающего списка. Если же вы будете использовать этот метод для множественного выбора, то он вернет лишь массив данных в виде индексов значений свойств.

А вот еще несколько приемов которые позволят расширить возможности работы с атрибутами типа множественный выбор.

Этот код вернет ID значений для атрибута типа множественный выбор:

<?php echo $_product->getData('color');  //вернет: 456,499 ?>

Этот код возвращает объект атрибута, как сущность Mage_Catalog_Model_Resource_Eav_Attribute:

<?php $_product->getResource()->getAttribute('color'); // сущность Mage_Catalog_Model_Resource_Eav_Attribute ?>

Этот код вернет массив текстовых значений атрибута:

<?php $_product->getAttributeText('color') // Array([0]=>'red', [1]=>'green') ?>

Этот код вернет текстовые значения свойств атрибута и это скорее всего именно то, что нужно чаще всего:

<?php 
if ($attr = $_product->getResource()->getAttribute('color')) {
   echo $attr->getFrontend()->getValue($_product); // вернет текст: red, green
}
?>

Вот и все. Надеюсь, эти сниппеты будут полезны вам при создании тем для Magento.

8 ответов к “Вывод атрибутов товара Magento на странице продукта по требованию”

Привет а как сделать вывод атрибутов в виде выпадающего списка на лицевой стороне магазина?

Благодарю, великолепнейшая статья!!! Это единственная статья в нете, где все четко разжовано!!!

Подскажите, как сделать такое ? Нужно вместо атрибута «Краткое описание» вывести атрибут «opisanie_tovara»


getProductsList_ShowDesc()): ?>

productAttribute($_product, $_product->getShortDescription(), ‘short_description’) ?>

Вроде бы что-то где-то рядом но не работает. Код выше это исходник

getProductsList_ShowDesc()): ?>

productAttribute($_product, $_product->getShortDescription(), ‘short_description’) ?>

Извиняюсь за репост. Вот этот код

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *