Dowiedz się, do których kategorii należy produkt


11

Otworzyłem produkt w wewnętrznej bazie danych, ale po przejściu do karty kategorii drzewo kategorii jest całkowicie zwinięte. Musiałbym rozwinąć wszystkie kategorie, aby zobaczyć, w których jest produkt.

Jak mogę szybko (w backend) zobaczyć, do których kategorii należy produkt?


To jedyny domyślny sposób, aby to zrobić za pomocą backendu;) Czy masz dostęp do bazy danych?
Kenny,

1
Moim pierwszym pomysłem było uruchomienie tree.expandAll()w konsoli przeglądarki, ale niestety będzie działać tylko na Manage Categoriesstronie.
user487772,

Odpowiedzi:


11

Nie ma podstawowej funkcjonalności do archiwizacji tego w backend.

Jeśli masz dostęp do odczytu bazy danych w celu uruchamiania zapytań raw, możesz użyć następujących zapytań, aby uzyskać przegląd wszystkich kategorii powiązanych z określonym produktem:

Opcja 1 => Uzyskaj wszystkie kategorie produktu, wprowadzając identyfikator encji produktu:

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

Opcja 2 => Uzyskaj wszystkie kategorie produktu, wprowadzając kod SKU produktu:

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

Możesz załadować produkt według jego identyfikatora, a następnie uzyskać identyfikatory kategorii.

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 />';
}

Testowane i działające.

Możesz umieścić to w osobnym pliku i po prostu uruchomić ten plik, aby uzyskać kategorie produktu.

EDYTOWAĆ

Nie ma podstawowej funkcjonalności, aby wyświetlić to w backend. Uważam, że rozszerzenie niektórych włączonych kategorii wymagałoby niewielkiej modyfikacji zaplecza (być może w przypadku niektórych JS)


1
Bardziej szukałem rozwiązania zaplecza :-)
Alex

@Alex Zorientowałem się po ponownym przeczytaniu twojego pytania: PI wierzę, że to zajmie niewielką modyfikację zaplecza, aby rozszerzyć włączone kategorie (być może z pewnym JS). AFAIK nie ma podstawowej funkcjonalności, która robi to, co chcesz.
Rick Kuipers

®Rick: To nie twoja wina - zredagowałem swoje pytanie, aby zawierać te informacje g
Alex

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.