1

store_id に従ってカテゴリのリストを取得しようとしていますが、すべての試行が失敗しました

私はもう試した

$categories = Mage::getModel('catalog/category')
                ->getCollection()
                ->setStoreId(21)
                ->addAttributeToSelect('*');

しかし、それは私にすべての店からのすべてのカテゴリーを与えます、私は試しました

->addFieldToFilter('store_id', '21')

そして ->addStoreFilter(21)

しかし、運が悪いので、どんな助けや提案も大歓迎です、前もって感謝します

4

4 に答える 4

4

Magento のカテゴリはストア関係を必要としません (ストアで使用されるため (ストアは、たとえばルート カテゴリとしてサブカテゴリを指すことができます) など)。したがって、作成したカテゴリはすべてのストアで表示されます。

ただし、属性 is_active (ストア ビュー スコープ) があります。

したがって、特定のストアでカテゴリを取得するには (他のストアでアクティブでないことを確認する必要があります)。

および属性を使用してフィルター処理する

->addFieldToFilter('is_active', 1)

これがお役に立てば幸いです。

于 2013-05-24T21:02:11.930 に答える
2

これは1.9で動作します

$storeId = Mage::app()->getStore()->getStoreId();
$rootCategoryId = Mage::app()->getStore($storeId)->getRootCategoryId();
$categories = Mage::getModel('catalog/category')
->getCollection()
->setStoreId($storeId)
->addFieldToFilter('is_active', 1)
->addAttributeToFilter('path', array('like' => "1/{$rootCategoryId}/%"))
->addAttributeToSelect('*');
于 2014-09-24T15:30:04.510 に答える