Auf meiner Produktgrid-Seite möchte ich für jedes Produkt die 'tiefste' Kategorie anzeigen, in die es gelegt wurde.Magento tiefste Kategorie für jedes Produkt finden
Dies ist, was ich bis jetzt gekommen bin, basierend auf einigen anderen Themen über ähnliche Fragen.
$res = Mage::getSingleton('core/resource');
$eav = Mage::getModel('eav/config');
$nameattr = $eav->getAttribute('catalog_category', 'name');
$nametable = $res->getTableName('catalog/category') . '_' . $nameattr->getBackendType();
$nameattrid = $nameattr->getAttributeId();
$collection
->joinTable('catalog/category_product',
'product_id=entity_id', array('single_category_id' => 'category_id'),
null,'left')
->joinTable('catalog_category_entity',
"entity_id=single_category_id", array('cat_level' => 'level','cat_path' => 'path'),
null,'left')
//->addAttributeToSort('entity_id', 'ASC')
//->addAttributeToSort('cat_level', 'ASC')
//->groupByAttribute('entity_id')
->joinTable($nametable,
"entity_id=single_category_id", array('single_category_name' => 'value'),
"attribute_id=$nameattrid", 'left')
->printLogQuery(true);exit;
Was mir das folgende Ergebnis liefert:
Also habe ich mein Produkt Sammlung und drei Spalten hinzugefügt werden. Offensichtlich ist für Entity_id 310 'Fauteuils' die tiefste Kategorie. Das einzige, was ich jetzt tun muss, ist, die Ergebnisse nach Entity_ID-Basen auf dem höchsten cat_level zu gruppieren. "Gruppieren nach" gibt mir jedoch nicht das gewünschte Ergebnis. Hier
Dank
Danke, aber ich habe kein Problem, den Pfad oder die Kategorie Ebene zu bekommen, wie Sie in meinem bisherigen Fortschritt sehen können (und Screenshot). Außerdem wäre das Laden jeder Kategorie nicht sehr leistungsfähig. –
Es hat total für mich gearbeitet. Dies ist eine sehr schöne Lösung. – RPDeshaies