2013-08-18 20 views
2

我創建了(手動通過管理面板)一個名爲att_by_website的屬性,該屬性的作用範圍是「網站」,我想獲取其多個值。Magento - 獲取每個網站的屬性值

我該怎麼做?我可以通過管理面板設置不同的值,但此時我只能得到默認值。

當我執行$this->getProduct()->getData('att_by_website')它只返回默認值(其中$this->getProduct()返回Mage_Catalog_Model_Product的實例)。

謝謝!

+0

你應該調用加載之前設置店鋪標識產品型號。即'Mage :: getModel('catalog/product') - > setStoreId() - > load()'。 – Zyava

+0

感謝您的提示,但我不相信這是我需要的。 getProduct()已經指向產品本身,這意味着我不需要再次對數據庫進行查詢。 – MatheusJardimB

+0

是否將屬性範圍設置爲網站?也許你正在查詢全球屬性。 –

回答

4

它可能不是最好的辦法,但解決了這個問題:

$value = Mage::getResourceModel('catalog/product')->getAttributeRawValue($productID, 'att_by_website', $storeId); 
+1

非常感謝你的幫助 – Nickool

1

試試這個:

foreach (Mage::app()->getWebsites() as $website) { 
    $websiteId = $website->getWebsiteId(); 
    $storeId = $website->getDefaultGroup()->getDefaultStoreId(); 
    Mage::app()->setCurrentStore($storeId); 

    echo $this->getProduct()->getData('att_by_website'); 
}