0

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

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

基本上,它只是说当“隐藏产品”出现时,不要显示任何东西。

这适用于简单的产品,但对于可配置的产品,它有点复杂,而且似乎不适用于此。假设我想隐藏具有某种颜色的产品,它总是不断出现在可配置产品的下拉菜单中。

有人对此有解决方案吗?

4

1 回答 1

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

于 2012-11-16T13:35:27.733 回答