Magento的 - 显示自定义分组中的产品表

问题描述:

属性我需要找到一种方式来显示替代“产品名称”下面的图片中显示的自定义属性的值。Magento的 - 显示自定义分组中的产品表

Grouped products table http://www.magentocommerce.com/images/uploads/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> 

任何帮助,将不胜感激。

编辑:因此,答案原来是相当简单。你明白我的失败上面提到的是,有确实输出......但是,这只是一个号码(例如:52)。原来,这是该自定义属性值的ID(这是自定义属性的下拉类型)。

因此,在总结
这适用于文本类型的自定义属性:

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

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

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

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

+0

对于那些仍在提供答案的人,请注意,这个问题在3年前发布。自那时起,Magento代码库已经发展,显然你的结果会有所不同。 – 2012-02-10 11:02:42

所有Magento模型有一个“的getData”方法可用,这将返回键/值对的PHP的阵列。在你grouped.phtml文件的顶部试试这个($ _产品定义后)

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(); 
+0

我似乎无法使用上面的代码获取自定义属性。我是我做错了什么?我有一个名为“product_type”的自定义类别,我想在grouped.phtml页面上显示它的值。 – Landitus 2010-08-25 05:18:45

从版本。 1.3。和1.4也必须使用$ _item没有$ _产品,对于我这种工作在可分组表也没关系。

例子:

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

有,可以真正轻松解决您的解决方案插件。你可以在这里找到插入产品的选项,并将它们显示在网格中:http://www.magemechanics.com/product-grid-options.html

我有同样的问题。

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

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

  3. 添加单元格到表并粘贴回声$_item['units'];

  4. 这就是所有: )