在Magento的Block中检索与产品相关的类别列表是否涉及某种黑魔法?
我试过这个:
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
对象中获取任何数据。
答案 0 :(得分:2)
$ item-> getId()没有为您提供产品ID,它会为您提供报价项ID。您可以使用$ item-> getProductId()。
试试这个;
$prod = Mage::getModel('catalog/product')->load($item->getProductId());
Mage::log(print_r($prod->getCategoryIds(), true));