Дізнайтеся, до яких категорій належить продукт


11

Я відкрив продукт у бекенді, але коли я перейшов на вкладку категорій, дерево категорій повністю згортається. Мені доведеться розгорнути всі категорії, щоб побачити, в яких продуктах знаходиться.

Як я можу швидко побачити (в бекенді) до яких категорій належить товар?


Це єдиний спосіб за замовчуванням зробити це через бекенд;) У вас є доступ до бази даних?
Кенні

1
Моя перша ідея полягала в тому, щоб запустити tree.expandAll()в консолі браузера, але, на жаль, вона працюватиме лише для Manage Categoriesсторінки.
user487772

Відповіді:


11

Немає основних функціональних можливостей, щоб архівувати це в бекенді.

Якщо у вас є доступ для читання баз даних для запуску необроблених запитів, ви можете використовувати наступні запити, щоб отримати огляд усіх категорій, які пов'язані з певним продуктом:

Варіант 1 => Отримати всі категорії продукту, ввівши ідентифікатор сутності продукту:

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

Варіант 2 => Отримати всі категорії товару, ввівши SKU товару:

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

Ви можете завантажити продукт за його ідентифікатором, а потім отримати ідентифікатори категорії.

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

Випробуваний та працюючий.

Ви можете помістити це в окремий файл і просто запустити цей файл, щоб отримати категорії продукту.

EDIT

Немає жодної основної функціональності для перегляду цього вмісту в бекенде. Я вважаю, що для розширення розширених категорій (можливо, з деяким JS) знадобиться незначна зміна резервного копіювання


1
Я більше шукав бекенд-рішення :-)
Олексій

@ Алекс я подумав, перечитавши ваше запитання: PI вважає, що для розширення розширених категорій (можливо, з деяким JS) знадобиться незначна модифікація доповнення. AFAIK не існує основних функціональних можливостей, які б виконували те, що ви хочете.
Рік Куйперс

® Рік: Не ваша вина - я відредагував своє запитання, щоб містити цю інформацію g
Алекс

2

Стовпець, що може фільтруватися та шукати категорію в адміністраторі: https://github.com/vuleticd/admin_grid_category_filter

Ура!


2
Чи можете ви додати свої коментарі до своєї відповіді? Опублікування лише відповіді на посилання може бути корисним, але посилання може бути розірвано в майбутньому, тому розміщення якогось коду, який залишається видимим, буде кориснішим для майбутнього відвідувача посту
Ярослав
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.