Вопрос по custom-attributes, php, magento – Magento - Показать пользовательские атрибуты в таблице сгруппированных продуктов

5

Мне нужно найти способ показать значение пользовательского атрибута вместо & quot; Product Name & quot; показано на рисунке ниже.

Таблица сгруппированных продуктов http://www.magentocommerce.com/images/uploads/grouped_prod_front.gif

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

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

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

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

РЕДАКТИРОВАТЬ: Таким образом, ответ оказался довольно простым. Вы видите, что я не упомянул выше, что тамwas действительно вывод ... но это было просто число (например: 52). Оказывается, это был идентификатор для этого значения пользовательского атрибута (это был пользовательский атрибут выпадающего типа).

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

<code>echo $this->htmlEscape($_item->getYearmade())
</code>

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

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

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

Тем, кто все еще дает ответы, обратите внимание, что этот вопрос был опубликован 3 года назад. Кодовая база Magento с тех пор развивалась, поэтому, очевидно, ваши результаты будут другими. Mark Simpson

Ваш Ответ

4   ответа
3

Все модели Magento имеют & quot; getData & quot; доступный метод, который будет возвращать 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 getX и setX. Во всех моделях Magento вы можете получить доступ к любому свойству в массиве данных, вызвав метод, основанный на версии имени в случае верблюда.

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

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

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

$_associatedProducts[0]->getCreatedAt();
Как вы создаете объект продукта?
Я не могу получить пользовательские атрибуты с кодом выше. Я делаю что-то не так? У меня есть пользовательская категория с именем & quot; product_type & quot; и я хотел бы показать его значение на странице grouped.phtml.
-1

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

0

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

Пример:

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

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

You must locate grouped.phtml app/design/frontend/base/default/template/catalog/product/view/type/grouped.phtml

Get the item, example $_item[units]

Add a cell into the table and paste echo $_item['units'];

Thats all :)

Похожие вопросы