2011-01-12 59 views
2

我有一些代碼可以返回包含url_path的產品詳細信息數組。要創建一個鏈接到這個產品,我必須知道產品的類別和子類別。不幸的是,這個方法返回的所有數據都沒有取出類別或子類別。Magento:使用getModel獲取產品和類別

這裏是我有得到一個產品代碼:

$product_id = array(231, 230,229,228); 

foreach ($product_id as $id){ 
    $productDetails = Mage::getModel('catalog/product')->load($id)->getData(); 
    echo $productDetails['url_path'].'<br />'; 
} 

是否有可能獲得每個產品的類別和子類別?

+1

請記住:產品可以屬於多於一個類別/子類別。不同的路徑(shop.tld/product.html,shop.tld/cat/subcat/product.html和shop.tld/cat2/subcat3/product.html)可以指向同一產品 – teemitzitrone 2011-01-12 11:43:52

回答

3

您正在尋找

foreach ($product_id as $id){ 
    $categoryIds = Mage::getModel('catalog/product')->load($id)->getCategoryIds();  
} 

這將返回類ID數組,該產品屬於。

+0

$ productDetails是一個數組?我如何訪問該方法? – iamjonesy 2011-01-12 11:51:09

0

更好的方式不要錯過重寫的東西是使用核心功能。 Mage_Catalog模塊有自己的網址模型,可以修改產品網址。

因此,該代碼將是:

$product_id = array(231, 230,229,228); 

$urlModel = Mage::getSingleton('catalog/url'); 
foreach ($product_id as $id) { 
    $urlModel->refreshProductRewrite($id); 
} 

而且它無需檢索類別ID用於這一目的。