0

私は Magento の Web サイトで作業していますが、やりたいことは次のとおりです。特定の製品を非表示にする属性を作成しました。グリッド ビュー ページで、次のコードを使用してリストから除外しています。

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

基本的には、'hideproduct' が表示されたら何も表示しないということです。

これは単純な製品では機能しますが、構成可能な製品ではもう少し複雑であり、これでは機能しないようです。特定の色の製品を非表示にしたいとしましょう。設定可能な製品のドロップダウン メニューに常に表示され続けます。

誰かがこれに対する解決策を持っていますか?

4

1 に答える 1

0

これは、私のタスクの 1 つに対して行ったことです (より良い方法がある場合はお知らせください)。この目的のために 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 に答える