两家商店都有不同的根类别。Main Store 是默认的示例数据,Second Store 只添加了我的一个产品。我原以为使用商店过滤器,只会显示当前商店根类别中的产品。但我正在展示每一个产品。我通过在我的类别视图模板中放置以下内容来对此进行测试:
$store_id = Mage::app()->getStore()->getId();
$_testproductCollection = Mage::getResourceModel('reports/product_collection')
->setStoreId($storeId)
->addStoreFilter($store_id)
->addAttributeToSelect('*');
$_testproductCollection->load();
foreach($_testproductCollection as $_testproduct){
echo $this->htmlEscape($_testproduct->getName());
};
如果我打印商店 ID,它会给我正确的号码。我在第二家商店只有一件产品,那为什么我把所有商店的每件产品都退回来了?我可以将 Main Store 中的每个产品设置为不在 Store2 中显示,然后添加一个可见性过滤器,但这需要很长时间。
另外,我刚刚注意到,如果我回显产品商店 ID,我会得到当前 ID,而不是分配给它的商店:
echo $_testproduct->getStoreId()
如何解决这个问题?