Finden Sie heraus, zu welchen Kategorien ein Produkt gehört


11

Ich habe ein Produkt im Backend geöffnet, aber wenn ich zur Registerkarte "Kategorien" wechsle, ist der Kategoriebaum vollständig reduziert. Ich müsste alle Kategorien erweitern, um zu sehen, in welchen sich das Produkt befindet.

Wie kann ich schnell (im Backend) sehen, zu welchen Kategorien das Produkt gehört?


Dies ist die einzige Standardmethode über das Backend;) Haben Sie Datenbankzugriff?
Kenny

1
Meine erste Idee war, tree.expandAll()in einer Browserkonsole zu laufen, aber leider funktioniert es nur für Manage CategoriesSeiten.
user487772

Antworten:


11

Es gibt keine Kernfunktionalität, um dies im Backend zu archivieren.

Wenn Sie über Datenbanklesezugriff verfügen, um Rohabfragen auszuführen, können Sie mithilfe der folgenden Abfragen einen Überblick über alle Kategorien erhalten, die mit einem bestimmten Produkt verknüpft sind:

Option 1 => Rufen Sie alle Kategorien eines Produkts ab, indem Sie die Entitäts-ID des Produkts eingeben:

SELECT c3.sku, c2.value
FROM catalog_category_product c1
INNER JOIN catalog_category_entity_varchar c2 ON (c1.category_id = c2.entity_id)
INNER JOIN catalog_product_entity c3 ON (c1.product_id = c3.entity_id)
WHERE c2.attribute_id = (SELECT attribute_id FROM eav_attribute WHERE attribute_code = 'name' AND entity_type_id = 3)
AND c3.entity_id = FILL_IN_PRODUCT_ID_HERE

Option 2 => Holen Sie sich alle Kategorien eines Produkts, indem Sie die SKU des Produkts eingeben:

SELECT c3.sku, c2.value
FROM catalog_category_product c1
INNER JOIN catalog_category_entity_varchar c2 ON (c1.category_id = c2.entity_id)
INNER JOIN catalog_product_entity c3 ON (c1.product_id = c3.entity_id)
WHERE c2.attribute_id = (SELECT attribute_id FROM eav_attribute WHERE attribute_code = 'name' AND entity_type_id = 3)
AND c3.sku = FILL_IN_PRODUCT_SKU_HERE

6

Sie können das Produkt anhand seiner ID laden und dann die Kategorie-IDs abrufen.

require('app/Mage.php');
umask(0);
Mage::app('admin');
$id = 1; //Your product ID here
$product = Mage::getModel('catalog/product')->load($id);
$categoryIds = $product->getCategoryIds();
echo '<h1>' . $product->getName() . '</h1>';
foreach ($categoryIds as $cid) {
    $category = Mage::getModel('catalog/category')->load($cid);
    echo $category->getName() . '<br />';
}

Getestet und funktionsfähig.

Sie können dies in eine separate Datei einfügen und diese Datei einfach ausführen, um die Produktkategorien abzurufen.

BEARBEITEN

Es gibt keine Kernfunktionalität, um dies im Backend anzuzeigen. Ich glaube, es würde eine geringfügige Änderung des Backends erfordern, um die aktivierten Kategorien zu erweitern (möglicherweise mit einigen JS).


1
Ich war mehr auf der Suche nach einer Backend-Lösung :-)
Alex

@Alex Ich habe mir gedacht, nachdem ich Ihre Frage erneut gelesen habe: PI glaubt, dass eine geringfügige Änderung des Backends erforderlich wäre, um die aktivierten Kategorien zu erweitern (möglicherweise mit einigen JS). AFAIK Es gibt keine Kernfunktionalität, die das tut, was Sie wollen.
Rick Kuipers

®Rick: Nicht deine Schuld - bearbeiten ich meine Frage , dass Informationen enthalten g
Alex

2

Filterbare und durchsuchbare Kategoriespalte in admin: https://github.com/vuleticd/admin_grid_category_filter

Prost!


2
Könnten Sie Ihrer Antwort einige Kommentare hinzufügen? Das Posten einer Antwort nur auf einen Link kann hilfreich sein, aber der Link kann in Zukunft unterbrochen werden. Daher wäre es für zukünftige Besucher des Beitrags nützlicher, einen Code zu veröffentlichen, der sichtbar bleibt
Jaroslaw
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.