关于使用具有不同根类别的多个商店:
我有2个商店设置,有不同的根。一个有14个产品,另外6个。
如果我在我的主页上使用以下内容(只是为了显示该商店的根类别中有多少产品 - 在这种情况下ID为8)我会收到20个产品 - 所以商店中的所有商品都来自所有商品根:
$_testproductCollection = Mage::getModel('catalog/category')->load(8)
->getProductCollection()
->addAttributeToSelect('*')->load();
echo "NO. OF PRODUCTS IS ".$_testproductCollection->count();
但是,如果我将ID更改为子类别,我会获得正确数量的产品。此根目录中只有6个产品:
但计数显示20(因为整个商店中有20个 - 或两个根)。
任何人都知道怎么了?这是一个错误吗?
我还注意到,如果你去管理产品并使用商店视图过滤器,它什么都不做,仍然在商店视图中显示20个产品,其根目录只有6个产品:
答案 0 :(得分:0)
好吧,我认为这样做有效,没有经过太多测试,但似乎已经完成了诀窍。您需要首先获取商店根类别ID,然后加入一些字段,以便您可以访问产品“category_id”,然后使用以下内容进行过滤:
$_rootcatID = Mage::app()->getStore()->getRootCategoryId();
$_testproductCollection = Mage::getResourceModel('catalog/product_collection')
->joinField('category_id','catalog/category_product','category_id','product_id=entity_id',null,'left')
->addAttributeToFilter('category_id', array('in' => $_rootcatID))
->addAttributeToSelect('*');
$_testproductCollection->load();
foreach($_testproductCollection as $_testproduct){
echo $this->htmlEscape($_testproduct->getName())."<br/>";
};