2010-11-23 9 views
2

Ich entwerfe eine neue Magento-Website, die Produkte enthalten wird, die in mehreren Kategorien enthalten sind. Ich frage mich, ob ich auf der Produktdetailseite alle Kategorien anzeigen kann, in denen sich ein Produkt befindet. Ich weiß, dass es möglich ist, die Kategorie zu bekommen, aber ist es möglich, eine Liste von alle Kategorien anzuzeigen, zu denen ein Produkt gehört?ALLE Kategorien anzeigen, zu denen ein Produkt in Magento gehört

Zum Beispiel ein T-Shirt kann in den Shirts Kategorie sowie in Designer und Sommer enthalten sein. Im Idealfall würde Ich mag der Lage sein, die folgenden angezeigt werden: von

Mehr:

      Men> Shirts

      Men> Designer> Barnabé Hardy

      Männer> Sommer

Antwort

7

Diese Sie die Daten bekommen Sie, wie der Name der Kategorie, URL suchen, etc:

$currentCatIds = $_product->getCategoryIds(); 
$categoryCollection = Mage::getResourceModel('catalog/category_collection') 
        ->addAttributeToSelect('name') 
        ->addAttributeToSelect('url') 
        ->addAttributeToFilter('entity_id', $currentCatIds) 
        ->addIsActiveFilter(); 

dann iterieren nur über die Sammlung z.B.

foreach($categoryCollection as $cat){ 
    echo $cat->getName().' '.$cat->getUrl(); 
} 
+0

Danke, JD. Ich werde es versuchen! – Jason

+0

Gibt es eine Möglichkeit, den vollständigen Kategoriepfad (mit Links in jeder Phase) anzuzeigen, anstatt nur die endgültige Kategorie anzuzeigen, zu der ein Produkt gehört? – robgt

+0

@robgt fragen Sie nach einem Breadcrumb? –

1

Einfach.

$_categories = $_product->getCategoryCollection() 
foreach ($_categories as $_category) 
    //do something with $_category 
1

Sie können den folgenden Code verwenden, um alle Kategorien für das ausgewählte Produkt auf der Produktdetailseite anzuzeigen.

<?php $categories = $_product->getCategoryIds(); ?> 
      <?php foreach($categories as $k => $_category_id): ?> 
      <?php $_category = Mage::getModel('catalog/category')->load($_category_id) ?> 
< <a href="<?php echo $_category->getUrl() ?>"><?php echo $_category->getName() ?></a> 
      <?php endforeach; ?> 
Verwandte Themen