Мне нужно найти способ показать значение настраиваемого атрибута вместо «Название продукта», показанного на изображении ниже.
Таблица сгруппированных продуктов 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();
У меня такая же проблема.
Вы должны найти grouped.phtml app/design/frontend/base/default/template/catalog/product/view/type/grouped.phtml
Получить элемент, например $_item[units]
Добавьте ячейку в таблицу и вставьте echo $_item['units'];
Это все 🙂
Из вер. 1.3. и в 1.4 тоже вы должны использовать $ _item not $ _product , для меня это отлично работает и в групповой таблице.
Пример:
<?php echo $_item->getAttributeText('your attribute'); ?>
Есть плагины, которые могут решить ваше решение очень легко. Здесь вы можете найти плагин, который принимает параметры продукта и отображает их в сетке: http://www.magemechanics.com/product-grid-options.html