如何根据magento中的store_id获取类别列表

时间:2013-05-24 20:29:17

标签: magento categories

我正在尝试根据store_id获取类别列表,但我的所有尝试都失败了

我试过

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

但它给了我所有商店的所有类别,我试过

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

和      - > addStoreFilter(21)

但没有运气,我们将非常感谢任何帮助或建议,并提前感谢您

4 个答案:

答案 0 :(得分:4)

magento中的类别不必存储关系(因为它用于商店(商店可以指定子类别作为其根类别)等等。)因此,您创建它的任何类别都将在所有商店中可见。 / p>

但是is has属性is_active(这是商店视图范围)。

所以要获取特定商店中的类别(您需要确保其在其他商店中不活跃)

并使用属性

过滤
->addFieldToFilter('is_active', 1)

希望这对你有所帮助。

答案 1 :(得分: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('*');

答案 2 :(得分:1)

试试这个:

$storeId = 21;
$rootCategoryId = Mage::app()->getStore($storeId)->getRootCategoryId();
$categories = Mage::getModel('catalog/category')->getCollection();
$categories->addAttributeToFilter('path', array('like' => "1/{$rootCategoryId}/%"));

答案 3 :(得分:-1)

$storeId=21;
->addFieldToFilter('store_id',$storeId)