我正在开发一个Magento网站,我想做的是以下内容:我创建了一个隐藏某些产品的属性。在网格视图页面上,我使用以下代码将它们从列表中排除:
<?php if ($_product->getAttributeText('hideproduct')):?>
<?php else: ?>
基本上,它只是说当'hideproduct'出现时,不要显示任何内容。
这适用于简单的产品,但对于可配置的产品,它有点复杂,而且似乎无法使用它。假设我想要隐藏具有特定颜色的产品,它总是会出现在可配置产品的下拉菜单中。
有人有解决方案吗?
答案 0 :(得分:0)
这就是我为我的任务所做的事情(如果有更好的方法请告诉我) 您必须为此目的扩展Mage_Catalog_Block_Product_View_Type_Configurable。 在其中
public function getAllowProducts()
{
if (!$this->hasAllowProducts()) {
$products = array();
$allProducts = $this->getProduct()->getTypeInstance(true)
->getUsedProducts(null, $this->getProduct());
foreach ($allProducts as $product) {
if ($product->isSaleable()) {
if(!$product->getEcoReport())
{
$products[] = $product;
}
}
}
$this->setAllowProducts($products);
}
return $this->getData('allow_products');
}
eco_report是我的属性标签。 这就是它的工作原理......如果对于一个简单的产品(特定的可配置产品),如果设置了属性eco_report,那么该产品将不会显示在可配置产品的下拉列表中(在视图页面上)。 因此,必须设置所有简单产品的eco_report属性,以便它不会显示在可配置产品的下拉列表中...