0
在檢索與Magento塊中的產品相關的類別列表中是否存在某種黑魔法?在Magento塊中獲取產品類別ID
我已經試過這樣:
foreach($quote->getAllVisibleItems() AS $item) {
$categories = $item->getCategoryIds();
Mage::log(get_class($item));
Mage::log(print_r($categories, true));
$prod = Mage::getModel('catalog/product')->load($item->getId());
Mage::log(get_class($prod));
Mage::log(print_r($prod->getCategoryIds(), true));
而我得到的是:
2014-11-21T08:59:25+00:00 DEBUG (7): Mage_Sales_Model_Quote_Item
2014-11-21T08:59:25+00:00 DEBUG (7):
2014-11-21T08:59:25+00:00 DEBUG (7): Mage_Catalog_Model_Product
2014-11-21T08:59:25+00:00 DEBUG (7): Array
(
)
我使用$prod
對象的getCategoryCollection()
方法也試過,但我似乎無法得到任何數據了那Mage_Catalog_Model_Resource_Category_Collection
對象。
只有在沒有分配給產品的類別時,您纔會在system.log中獲得一個空數組。 (代碼中的第4行) 沒有黑魔法。使用NetBeans等標準IDE,並引用類和它們的功能。他們足以找到答案。 – Harit 2014-11-21 09:20:03
你錯了。在他的代碼的第4行中,他試圖從報價項目對象中獲取類別ID。您無法從報價項目對象獲取類別ID。 – muhammedv 2014-11-21 09:22:12
特赦,但請在你的評論前仔細檢查他的代碼。 $ prod = Mage :: getModel('catalog/product') - > load($ item-> getId()); 它向他返回Mage_Catalog_Model_Product的一個對象。 因此,他可以通過使用$ prod-> getCategoryIds()獲得與其關聯的類別,但由於沒有分配給該產品的類別,因此它會重新生成一個空數組。 Mage :: log(print_r($ prod-> getCategoryIds(),true)); – Harit 2014-11-21 09:25:11