2011-03-21 105 views
0

關於使用多個存儲,與不同的根類:Magento的 - 裝載根集加載所有產品

我有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個產品在這根:

roots

但統計顯示20(爲有在整個店鋪20 - 或兩者根)。

任何人都知道這是怎麼回事?這是一個錯誤嗎?

我也注意到,如果你去管理產品和使用商店視圖過濾器,它不會做任何事情,依然呈現在店裏查看其根源只有6個產品20種產品:

filter

+0

我在Magento同樣的問題。 您是否找到了解決此問題的解決方案? – 2011-06-03 11:44:18

+0

我只是使用子類別。據我所知,根類別僅用於多商店設置,不用於任何類型的類別/產品過濾。例如,即使我將某個商店的根類別設置爲不活動,該子類別仍顯示該商店。所以,只要使用該子類別,除非想要探索意大利麪條代碼,否則不要考慮它。 – 2011-06-06 04:23:22

+0

@dani不,仍然沒有找到解決方案,雖然我已經向Magento提交了一個錯誤報告。如果我想出了一個解決方法,我一定會發布它。 @David,使用子類別並沒有真正解決問題,因爲您不能將子類別用作單獨商店的根目錄。 – 2011-06-12 16:40:29

回答

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/>"; 
};