在Magento块中获取产品类别ID

时间:2014-11-21 09:11:08

标签: php magento

在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对象中获取任何数据。

1 个答案:

答案 0 :(得分:2)

$ item-> getId()没有为您提供产品ID,它会为您提供报价项ID。您可以使用$ item-> getProductId()。

试试这个;

$prod = Mage::getModel('catalog/product')->load($item->getProductId());
Mage::log(print_r($prod->getCategoryIds(), true));