Magento – показать пользовательские атрибуты в таблице Grouped Product

Мне нужно найти способ показать значение настраиваемого атрибута вместо «Название продукта», показанного на изображении ниже.

Таблица сгруппированных продуктов http://img.ruphp.com/custom-attributes/grouped_prod_front.gif

Я работаю с /app/design/frontend/default/defaultx/template/catalog/product/view/type/grouped.php

Код ниже не работает (пользовательский атрибут является годным):

<?php if (count($_associatedProducts)): ?> <?php foreach ($_associatedProducts as $_item): ?> <tr> <td><?php echo $this->htmlEscape($_item->getYearmade()) ?></td> 

Любая помощь будет оценена по достоинству.

EDIT: Таким образом, ответ оказался довольно простым. Вы видите, что я не упомянул выше, было то, что действительно был выход … но это было всего лишь число (например: 52). Оказывается, это был идентификатор для этого значения настраиваемого атрибута (это был тип раскрывающегося списка настраиваемого атрибута).

Итак, в резюме
Это работает для пользовательских атрибутов текста типа:

 echo $this->htmlEscape($_item->getYearmade()) 

Но для всех других типов пользовательских атрибутов (я думаю), следует использовать следующее:

 echo $this->htmlEscape($_item->getAttributeText('yearmade')) 

Я бы не обнаружил это без лучшего ответа, предоставленного Аланом Штормом ниже. Спасибо, сэр.

Все модели Magento имеют доступный метод getData, который возвращает php-массив пар ключ / значение. Попробуйте это в верхней части файла grouped.phtml (после определения $ _product)

 print('<pre>');print_r($_product->getData());print('</pre>'); 

Вы должны увидеть вывод, который выглядит примерно следующим образом.

 Array ( [store_id] => 1 [entity_id] => 3437 [entity_type_id] => 4 [attribute_set_id] => 27 [type_id] => grouped [sku] => [category_ids] => [created_at] => 2009-04-16 03:37:51 ... 

Таким образом, вы можете захватить массив свойств и просто вытащить ключ. Вы также можете использовать удобные методы Magento / magic getX и setX. На всех моделях Magento вы можете получить доступ к любому свойству в массиве данных, вызвав метод, основанный на версии имени верблюда для верблюда,

 $created_at = $_product->getCreatedAt(); $_product->setCreatedAt($date); 

Итак, каково бы ни было ваше собственное имя атрибута, вы должны иметь возможность получить его, используя приведенное выше, и если вы не уверены, что просто print_r или var_dump содержимое массива, возвращаемое getData ().

Наконец, если пользовательский атрибут находится на одном из продуктов, связанных с простыми продуктами, вы захотите чего-то большего

 $_associatedProducts[0]->getCreatedAt(); 

У меня такая же проблема.

  1. Вы должны найти grouped.phtml app/design/frontend/base/default/template/catalog/product/view/type/grouped.phtml

  2. Получить элемент, например $_item[units]

  3. Добавьте ячейку в таблицу и вставьте echo $_item['units'];

  4. Это все 🙂

Из вер. 1.3. и в 1.4 тоже вы должны использовать $ _item not $ _product , для меня это отлично работает и в групповой таблице.

Пример:

 <?php echo $_item->getAttributeText('your attribute'); ?> 

Есть плагины, которые могут решить ваше решение очень легко. Здесь вы можете найти плагин, который принимает параметры продукта и отображает их в сетке: http://www.magemechanics.com/product-grid-options.html