Magento - 在分组产品表中显示自定义属性

时间:2009-06-17 06:23:28

标签: php magento custom-attributes

我需要找到一种方法来显示自定义属性的值,而不是下图中显示的“产品名称”。

Grouped products table
(来源:magentocommerce.com

我正在使用/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>

任何帮助都将不胜感激。

编辑:所以答案结果很简单。你看到我上面没有提到的是确实是输出......但它只是一个数字(例如:52)。原来这是该自定义属性值的ID(它是Dropdown类型的自定义属性)。

总结如下 这适用于text类型的自定义属性:

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

但对于所有其他类型的自定义属性(我认为),应使用以下内容:

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

如果没有Alan Storm提供的最佳答案,我就不会发现这一点。谢谢先生。

4 个答案:

答案 0 :(得分:3)

所有Magento模型都有一个“getData”方法,它将返回一个关键/值对的php数组。在groups.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();

答案 1 :(得分:1)

我遇到了同样的问题。

  1. 您必须找到grouped.phtml app/design/frontend/base/default/template/catalog/product/view/type/grouped.phtml

  2. 获取该项目,例如 $_item[units]

  3. 在表格中添加一个单元格并粘贴echo $_item['units'];

  4. 多数事情:)

答案 2 :(得分:0)

来自ver。 1.3。在1.4中你也必须使用 $ _ item 而不是 $ _ product ,对我来说,这也适用于可分组表格。

示例:

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

答案 3 :(得分:-1)

有些插件可以轻松解决您的解决方案。您可以在此处找到带有产品选项的插件,并将其显示在网格中:http://www.magemechanics.com/product-grid-options.html