我想根据STORE_ID得到类别的清单,但我所有的尝试都失败了
我试过了
$categories = Mage::getModel('catalog/category')
->getCollection()
->setStoreId(21)
->addAttributeToSelect('*');
但它给了我所有的所有门店的类别,我已经尝试
->addFieldToFilter('store_id', '21')
和 - > addStoreFilter(21)
但没有运气,任何帮助或建议,将不胜感激,请多关照
在Magento类别不必存储关系(因为它使用的存储(存储可以指向子类别为根类为例)等。)因此,您创建的任何类别将在所有门店可见。
但具有属性IS_ACTIVE(这是商店的视图范围内)。
因此,要获得在特定的商店的类别(你需要确保它不是活跃在其他商店)
并与属性过滤器
->addFieldToFilter('is_active', 1)
希望这帮助你。
这适用于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('*');
尝试这个:
$storeId = 21;
$rootCategoryId = Mage::app()->getStore($storeId)->getRootCategoryId();
$categories = Mage::getModel('catalog/category')->getCollection();
$categories->addAttributeToFilter('path', array('like' => "1/{$rootCategoryId}/%"));
$storeId=21;
->addFieldToFilter('store_id',$storeId)