Опубликовано автор в категориях CMS, 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.

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

  1. Алексей

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

    Ответить
  2. Игорь

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

    Ответить
  3. Егор

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


    getProductsList_ShowDesc()): ?>

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

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

    Ответить
  4. Егор

    getProductsList_ShowDesc()): ?>

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

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

    Ответить

Оставить комментарий

  • (не будет показан)