2011-01-12 14 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

答えて

3

あなたはあなたの製品が属するカテゴリーIDの配列を返します

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

を探しています。

+0

$ productDetailsは配列ですか?どのようにしてメソッドにアクセスできますか? – iamjonesy

+0

残念ですが、Mage :: getModel( 'catalog/product') - > load($ id) - > getCategoryIds()を使用してください。元の投稿を更新します – woot586

0

書き直しで何かを見逃さないようにするには、コア機能を使用することです。 Mage_Catalogモジュールには、製品URLを変更できる独自のURLモデルがあります。

ので、コードは次のようになります。

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

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

そして、この目的のためにカテゴリIDを取得する必要はありません。

関連する問題