Descubra a quais categorias um produto pertence

11

Abri um produto no back-end, mas quando mudo para a guia categorias, a árvore de categorias é totalmente recolhida. Eu precisaria expandir todas as categorias para ver em quais delas o produto está.

Como posso ver rapidamente (no back-end) a quais categorias o produto pertence?

Alex
fonte
É a única maneira padrão de fazê-lo através do back-end;) Você tem acesso ao banco de dados?
Kenny
1
Minha primeira idéia foi rodar tree.expandAll()em um console do navegador, mas infelizmente funcionará apenas para a Manage Categoriespágina.
user487772

Respostas:

11

Não há funcionalidade principal para arquivar isso no back-end.

Se você tiver acesso de leitura de banco de dados para executar consultas brutas, poderá usar as seguintes consultas para obter uma visão geral de todas as categorias vinculadas a um determinado produto:

Opção 1 => Obter todas as categorias de um produto digitando o ID da entidade do produto:

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

Opção 2 => Obter todas as categorias de um produto inserindo o SKU do produto:

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
fonte
6

Você pode carregar o produto pelo ID e obter os IDs da categoria.

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

Testado e funcionando.

Você pode colocar isso em um arquivo separado e apenas executá-lo para obter as categorias do produto.

EDITAR

Não há funcionalidade principal para ver isso no back-end. Acredito que seria necessária uma pequena modificação de back-end para expandir as categorias ativadas (talvez com alguns JS)

Rick Kuipers
fonte
1
Eu estava mais procurando uma solução de back-end :-)
Alex
@ Alex, pensei depois de reler sua pergunta: o PI acredita que seria necessário uma leve modificação de back-end para expandir as categorias ativadas (talvez com algum JS). AFAIK, não há funcionalidade principal que faça o que você deseja.
Rick Kuipers
®Rick: Não é sua culpa - Eu editei a minha pergunta para conter essa informação g
Alex
2

Coluna de categoria filtrável e pesquisável em admin: https://github.com/vuleticd/admin_grid_category_filter

Felicidades!

Zdravko Karanovic
fonte
2
Você poderia adicionar alguns comentários à sua resposta? A publicação de uma resposta apenas de link pode ser útil, mas o link pode ser quebrado no futuro; portanto, a publicação de algum código que permaneça visível seria mais útil para futuros visitantes da publicação
Yaroslav