質問

コードを持っていて、カテゴリID 70をコレクションから除外したいが、私は試してみました:

$_productCollection->addAttributeToFilter('category_id', array('nin'=>'70'));
.

とうまくいかない

$category = new Mage_Catalog_Model_Category();
   $category->load();
 $_productCollection = $category->getProductCollection();
        Mage::getSingleton('cataloginventory/stock')->addInStockFilterToCollection($_productCollection);
        $_productCollection->addAttributeToFilter('visibility',4)->addAttributeToSelect('*');
        // $_productCollection->addAttributeToFilter('category_id', array('nin'=>'70'));
        $_productCollection->getSelect()->order('RAND()');
        $_productCollection->addAttributeToFilter('status',1);
        $_productCollection->getSelect()->limit(20);  
.

役に立ちましたか?

解決

addCategoryIds()メソッドを使用して、カテゴリIDのフィルタリングを有効にすることができます。

$productCollection = Mage::getResourceModel('catalog/product_collection')
    ->addAttributeToSelect('*')
    ->addCategoryIds()
    ->addAttributeToFilter('category_id', array(array('nin'=>'70')))
    ->addAttributeToFilter('visibility', 4)
    ->addAttributeToFilter('status', 1);

Mage::getSingleton('cataloginventory/stock')
    ->addInStockFilterToCollection($productCollection);

$productCollection->getSelect()
    ->order('RAND()')
    ->limit(20);

$productCollection->load();
.

ライセンス: CC-BY-SA帰属
所属していません magento.stackexchange
scroll top