2012-03-29 9 views
-1

Ich habe ein Geschäft, wo ich die Produktkategorien individuell und separat an verschiedenen Stellen auf der Seite echo, so dass andere Lösungen nicht funktionieren. Ich möchte auch die meisten untergeordneten Kategorien auflisten.Magento: Produktkategorie Array von Produkt ID

Ich habe die php zu diesem Prozess, aber meine Programmierkenntnisse und Kenntnisse der Magento-Struktur sind nicht großartig.

1) Produkt-ID abrufen. (Erreicht) 2) Get Kategorien Array von Produkt-ID. 3) Erhalten Sie die Kategorie-ID für untergeordnete Kategorien in zwei Variablen? 4) Echo-Variablen, wo ich sie will.

Der Grund für nur die Kinder ist, dass die Kategorien unter BRAND und CATEGORY übergeordneten Kategorien sind. Ich möchte nur den Markennamen und die tatsächliche Kategorie anzeigen, die unter diesen Überschriften stehen.

Ich öffnete eine weitere Frage zu diesem Thema, die schlechter formuliert war und nicht herausfinden konnte, wie es zu bearbeiten ist.

+0

Es gibt auf ns von Posts, wie man das macht. Google, StackOverflow und MagentoCommerce haben viele Beispiele. Hier ist eine von SO: http://Stackoverflow.com/questions/5232879/how-to-get-sub-categories-of-a-specific-parent-category – seanbreeden

+0

Doppelte Frage – ShaunOReilly

+0

Das Echo der Kategorien zusammen. Meine Frage ist, wie sie einzeln und separat durch die Produktansichtsvorlage wiedergegeben werden können, da ich Inhalte zwischen den beiden Kategorienamen einfügen muss. – James

Antwort

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++; 
    } 
} 

Dann wo immer Sie wollen Sie

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

Dieser ist ein super Spaß Schleife wie

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

oder tun können, werden Sie wahrscheinlich mit der Bearbeitung Problem helfen Sie hatten. Diesen Namen Verschlüssler in einer leeren PHP-Datei und laden Sie es von irgendwo, oder ihm einfach einfügen in eine .phtml Datei irgendwo:

<?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

Danke für deine Antwort Mike. Ich habe einige Probleme bei der Implementierung des Codes. Ich verwende $ productId = $ this-> getProduct() -> getId(); Um die Produkt-ID zu erhalten, habe ich jedoch festgestellt, dass aus irgendeinem Grund bei echo $ productId etwas passiert, wo das Produktbild, die Fußzeile und einige Inhalte nicht angezeigt werden. Ich habe herausgefunden, dass $ productid = $ this-> getProduct() -> getId(); ist das Problem. Wenn ich einfach mit echo gehen $ this-> getProduct() -> getId(); es wird die ID kein Problem anzeigen, aber ich kann es nicht in eine Variable einfügen? Ich entschuldige mich, weil mein PHP-Wissen nicht sehr stark ist. – James

+0

In welcher Datei versuchen Sie dies zu tun? –

+0

Hey Off-Topic Entschuldigung. Wo empfehlen Sie ein Magento für erfahrene PHP-Entwickler zu lernen? Die meisten Tutorials einfach saugen – Yang

1

Für die Kategorienamen bekommen und id Nutzung:

$_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, bitte erläutern. – Ankur

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

print_r($_product->getCategoryIds()); 

ODER

$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

Bearbeiten Sie Ihre Antwort und formatieren Sie sie, um den Code lesbar zu machen, anstatt jeder Zeile des Codes Aufzählungszeichen hinzuzufügen. Erwägen Sie auch, weitere Details hinzuzufügen, wenn Sie eine qualitativ hochwertige Antwort geben möchten. – Neeku

Verwandte Themen