2011-01-12 6 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를 검색 할 필요 없다 :

그래서, 코드가 될 것입니다.