Узнайте, к каким категориям относится товар

11

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

Как я могу быстро увидеть (в бэкэнде), к каким категориям относится продукт?

Alex
источник
Это единственный способ сделать это по умолчанию через бэкэнд;) У вас есть доступ к базе данных?
Кенни
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 => Получить все категории продукта, введя его артикул:

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
Kenny
источник
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 />';
}

Проверено и работает.

Вы можете поместить это в отдельный файл и просто запустить этот файл, чтобы получить категории продукта.

РЕДАКТИРОВАТЬ

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

Рик Кейперс
источник
1
Я больше искал бэкэнд-решение :-)
Alex
@ Алекс я подумал после перечитывания вашего вопроса: PI считает, что для расширения разрешенных категорий потребуется небольшое изменение бэкэнда (возможно, с некоторыми JS). AFAIK нет основной функциональности, которая делает то, что вы хотите.
Рик Кейперс
®Rick: Не твоя вина - я отредактировал свой вопрос, чтобы содержать эту информацию g
Alex
2

Фильтруемый и доступный для поиска столбец категории в администраторе: https://github.com/vuleticd/admin_grid_category_filter

Ура!

Здравко Каранович
источник
2
Не могли бы вы добавить несколько комментариев к вашему ответу? Публикация ответа только для ссылки может быть полезной, но ссылка может быть нарушена в будущем, поэтому публикация некоторого кода, который остается видимым, будет более полезной для будущего посетителя поста
Ярослав