类似于以下问题: Magento - Show Custom Attributes in Grouped Product table
我想在分组产品页面中显示简单产品的属性。
但是,我需要它能够正常工作,这样您就不必显式指定显示哪些属性。相反,它显示将显示在该产品的简单产品 View 上的所有属性。
我尝试过以下变体:
(来自/template/catalog/product/view/type/grouped.phtml)
<?php foreach ($_associatedProducts as $_item): ?>
<tr>
<td><?php echo $this->htmlEscape($_item->getName()) ?></td>
<!-- important problem part -->
<?php foreach ($_item->getAttributes() as $arr): ?>
<td><?php echo $arr->getData() ?></td>
<?php endforeach; ?>
<!-- end of problem part -->
<td class="a-right">
<?php echo $this->getPriceHtml($_item, true) ?>
</td>
<?php if ($_product->isSaleable()): ?>
<td class="a-center">
<?php if ($_item->isSaleable()) : ?>
<a href="<?php echo $_item->getUrlPath() ?>">View</a>
<?php else: ?>
<p class="availability"><span class="out-of-stock"><?php echo $this->__('Out of stock.') ?></span></p>
<?php endif; ?>
</td>
<?php endif; ?>
</tr>
<?php endforeach; ?>
但是,以及其他变体,我无法将显示的属性限制为仅显示我需要的属性(即仅显示在简单产品 View 上的附加属性;那些设置为在前端可查看的属性)。有什么想法吗?
最佳答案
Mage_Catalog_Block_Product_View_Attributes 类方法 getAdditionalData() 应该指导您如何将变量限制为仅选择为可在前端查看的变量。它的 getAdditionalData 方法在产品 View block 中被引用。
解决此问题的步骤如下: 1. 创建一个新的 Magento 模块,旨在覆盖分组的产品 block 。 2. 创建新的分组产品 block ,从 Mage_Catalog_Block_Product_View_Attributes 的 getAdditionalData() 方法中大量窃取。 3. 基于/template/catalog/product/view/type/grouped.phtml 创建一个新模板来支持您的自定义 block 。 4. 覆盖模块的 config.xml 中的 block (请参阅:Overriding catalog/breadcrumbs and catalog/products/view,Magento 论坛)
这会导致目录中所有分组的产品都会出现这种行为。如果您需要更具选择性,那么我认为合理的做法是向产品目录添加自定义属性(最好在您刚刚创建的自定义模块中设置!),以便切换行为,并编写检查程序以便切换到您的模板。
关于magento - Magento 中分组产品的所有附加属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1972379/