隐藏(可配置)具有属性的产品

时间:2012-11-15 19:48:07

标签: magento

我正在开发一个Magento网站,我想做的是以下内容:我创建了一个隐藏某些产品的属性。在网格视图页面上,我使用以下代码将它们从列表中排除:

<?php if ($_product->getAttributeText('hideproduct')):?>
<?php else: ?>

基本上,它只是说当'hideproduct'出现时,不要显示任何内容。

这适用于简单的产品,但对于可配置的产品,它有点复杂,而且似乎无法使用它。假设我想要隐藏具有特定颜色的产品,它总是会出现在可配置产品的下拉菜单中。

有人有解决方案吗?

1 个答案:

答案 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属性,以便它不会显示在可配置产品的下拉列表中...