Magento 使用属性隐藏(可配置)产品

Magento 使用属性隐藏(可配置)产品,magento,Magento,我正在一个Magento网站上工作,我想做的是:我创建了一个属性来隐藏某些产品。在网格视图页面上,我使用以下代码将它们从列表中排除: <?php if ($_product->getAttributeText('hideproduct')):?> <?php else: ?> 基本上,它只是说当“hideproduct”出现时,什么都不显示 这适用于简单的产品,但对于可配置的产品,它有点复杂,而且似乎不适用于此。假设我想隐藏具有特定颜色的产品,它总是出现在可配

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

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

基本上,它只是说当“hideproduct”出现时,什么都不显示

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


有人对此有解决方案吗?

这是我为一项任务所做的工作(如果有更好的方法,请告诉我) 为此,您必须扩展可配置的图像、目录、块、产品、视图、类型。 在里面

eco_报告是我的属性标签。 这就是它的工作原理。。。如果为简单产品(特定可配置产品)设置了属性eco_报告,则该产品不会显示在可配置产品的下拉列表中(在查看页面上)。
因此,必须设置所有简单产品的eco_report属性,以便它不会显示在可配置产品的下拉列表中…

关于产品可见性,以及为什么要使用自定义属性/hack?您可以用另一种方法来解决这个问题。我不能使用可见性的原因是我使用的是一个自定义扩展,这些产品应该是可见的。下面的答案解决了这个问题。
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');
}