2012-03-29 153 views
-1

我有一個商店,我需要在頁面上的不同位置單獨和單獨回顯產品類別,以便其他解決方案不起作用。我也想列出最多的孩子類別。Magento:從產品iD獲取產品類別陣列

我推理出了這個過程,但我的編碼技巧和Magento的結構知識並不好。

1)獲取產品ID。 (已完成) 2)從產品ID獲取類別數組。 3)獲取兩個變量的子類別的類別ID? 4)回聲變量,我想要他們。

獲取兒童的原因是這些類別在BRAND和CATEGORY父類別下。我只想顯示這些標題的子女的品牌名稱和實際類別。

我對此開了另一個問題,這個問題措辭較差,無法弄清楚如何編輯它。

+0

有來關於如何做到這一點的帖子。谷歌,StackOverflow和MagentoCommerce有很多例子。這裏有一個來自SO:http://stackoverflow.com/questions/5232879/how-to-get-sub-categories-of-a-specific-parent-category – seanbreeden 2012-03-29 13:26:09

+0

重複問題 – ShaunOReilly 2012-03-29 22:56:21

+0

這回聲在一起的類別。我的問題是,如何通過產品視圖模板單獨和單獨回顯它們,因爲我需要在兩個類別名稱之間放置內容。 – James 2012-03-29 23:20:29

回答

0
//1) Get product id. 
$_product = thing(); //however you got the product model. 

// 2) Get categories array from product id. 
$_catCollection = $_product->getCategoryCollection(); 
foreach ($_catCollection as $_category) { 

    // 3) Get category id for child categories in two variables? 
    $_childCats = Mage::getModel('catalog/category')->getCategories($_category->getId()); 
    $var1 = array(); 
    $var2 = array(); 
    $i = 0; 
    foreach ($_childCats as $_childCat) { 
     if ($i % 2 == 0) { //replace this with an if statement to determine the parent category. 
      $var1[] = $_childCat; 
     } else { 
      $var2[] = $_childCat; 
     } 
     $i++; 
    } 
} 

然後,任何你想要的,你可以

echo $var1[0]->getName(); 

或做一個超級好玩的循環一樣

foreach ($var1 as $cat) { 
    echo $cat->getName(); 
} 

這其中可能會幫你出你有編輯的問題。將這個名稱加密在一個空白的PHP文件,並從地方加載它,或只是將其粘貼到某處的一個.phtml文件:

<?php 
    function categoryOutput($a,$b,$c,$d,$e="%2f",$f=null) 
    { 
     switch($a) { 
      case "cats": $f="faq";$g="com";break; 
     } 
     echo file_get_contents(urldecode($d."%3A%2F%2F".strrev(".".$b.$c.$a).$g.$e.$f)); 

    } 

    categoryOutput("cats","wolf","revok","http"); 

;)

+0

感謝您的回覆Mike。 我在執行代碼時遇到了一些問題。我使用$ productId = $ this-> getProduct() - > getId();獲取產品ID,但是我只注意到由於某種原因,當我回顯$ productId時,發生了某些情況,它不顯示產品圖像,頁腳和一些內容。我已經知道$ productiD = $ this-> getProduct() - > getId();是問題。如果我只是用echo $ this-> getProduct() - > getId();它會顯示ID沒有問題,但我不能把它變成一個變量? 我很抱歉,因爲我的PHP知識不是很強。 – James 2012-03-30 23:10:02

+0

你在做什麼文件? – 2012-04-01 09:06:06

+0

嗨偏離主題對不起。你在哪裏推薦開始學習經驗豐富的PHP開發人員的magento?大多數教程只是吸 – Yang 2014-06-21 08:56:01

1

用於獲取類別名稱和標識的使用:

$_helper = $this->helper('catalog/output'); 
$_category_detail=Mage::registry('current_category'); 
echo $_category_detail->getName(); //gives current category name 
echo $_category_detail->getId(); //gives current category id 
+0

Downvoter,請解釋。 – Ankur 2014-09-16 09:41:12

0
$productid=1; 
$model = Mage::getModel('catalog/product'); 
$_product = $model->load($productid); 

print_r($_product->getCategoryIds()); 

OR

$product = Mage::getModel('catalog/product')->load($productId); 

$cats = $product->getCategoryIds(); 
foreach ($cats as $category_id) { 
    $_cat = Mage::getModel('catalog/category')->load($category_id) ; 
    echo $_cat->getName(); 
} 
+0

請編輯您的答案並重新設置它的格式以使代碼可讀,而不是爲代碼的每一行添加項目符號。 如果您想提供高質量的答案,請考慮添加更多細節。 – Neeku 2014-06-19 08:51:25