如何根据在Magento STORE_ID获得类别列表(how to get category li

2019-10-18 04:41发布

我想根据STORE_ID得到类别的清单,但我所有的尝试都失败了

我试过了

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

但它给了我所有的所有门店的类别,我已经尝试

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

和 - > addStoreFilter(21)

但没有运气,任何帮助或建议,将不胜感激,请多关照

Answer 1:

在Magento类别不必存储关系(因为它使用的存储(存储可以指向子类别为根类为例)等。)因此,您创建的任何类别将在所有门店可见。

但具有属性IS_ACTIVE(这是商店的视图范围内)。

因此,要获得在特定的商店的类别(你需要确保它不是活跃在其他商店)

并与属性过滤器

->addFieldToFilter('is_active', 1)

希望这帮助你。



Answer 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('*');


Answer 3:

尝试这个:

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


Answer 4:

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


文章来源: how to get category list according to store_id in magento