【问题标题】:Magento - Show Custom Attributes in Grouped Product tableMagento - 在分组产品表中显示自定义属性
【发布时间】:2010-11-03 13:45:17
【问题描述】:

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


(来源:magentocommerce.com

我正在使用 /app/design/frontend/default/defaultx/template/catalog/product/view/type/grouped.php

下面的代码不起作用(自定义属性是yearmade):

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

任何帮助将不胜感激。

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

总结一下
这适用于文本类型的自定义属性:

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

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

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

如果没有下面 Alan Storm 提供的最出色的答案,我不会发现这一点。谢谢楼主。

【问题讨论】:

  • 对于那些仍在提供答案的人,请注意这个问题是 3 年前发布的。从那时起,Magento 代码库不断发展,因此显然您的结果会有所不同。

标签: php magento custom-attributes


【解决方案1】:

所有 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 的便捷/神奇的 getX 和 setX 方法。在所有 Magento 模型上,您可以通过调用基于名称的驼峰式版本的方法来访问数据数组中的任何属性,

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

因此,无论您的自定义属性名称是什么,您都应该能够使用上面的方法来获取它,如果您不确定只是 print_r 或 var_dump,则可以使用 getData() 返回的数组的内容。

最后,如果自定义属性在相关产品的简单产品之一上,您会想要更像

$_associatedProducts[0]->getCreatedAt();

【讨论】:

  • 我似乎无法使用上面的代码获取自定义属性。我做错了什么?我有一个名为“product_type”的自定义类别,我想在 grouped.phtml 页面上显示它的价值。
  • 你是如何创建产品对象的?
【解决方案2】:

从版本。 1.3.在 1.4 中,您也必须使用 $_item 而不是 $_product,对我来说,这在分组表中也可以正常工作。

例子:

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

【讨论】:

    【解决方案3】:

    有些插件可以非常轻松地解决您的问题。您可以在此处找到接受产品选项并将其显示在网格中的插件:http://www.magemechanics.com/product-grid-options.html

    【讨论】:

      【解决方案4】:

      我遇到了同样的问题。

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

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

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

      4. 仅此而已:)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-01-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-02-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多