Averigüe a qué categorías pertenece un producto

11

Abrí un producto en el back-end, pero cuando cambio a la pestaña de categorías, el árbol de categorías está completamente contraído. Tendría que expandir todas las categorías para ver en cuáles está el producto.

¿Cómo puedo ver rápidamente (en el backend) a qué categorías pertenece el producto?

Alex
fuente
Es la única forma predeterminada de hacerlo a través del back-end;) ¿Tiene acceso a la base de datos?
Kenny el
1
Mi primera idea fue ejecutar tree.expandAll()en una consola del navegador, pero desafortunadamente solo funcionará para la Manage Categoriespágina.
user487772

Respuestas:

11

No hay una funcionalidad central para archivar esto en el backend.

Si tiene acceso de lectura a la base de datos para ejecutar consultas sin procesar, puede usar las siguientes consultas para obtener una descripción general de todas las categorías que están vinculadas a un determinado producto:

Opción 1 => Obtenga todas las categorías de un producto ingresando la ID de entidad del producto:

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

Opción 2 => Obtenga todas las categorías de un producto ingresando el SKU del producto:

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

Puede cargar el producto por su ID y luego obtener los identificadores de categoría.

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

Probado y funcionando.

Puede poner esto en un archivo separado y simplemente ejecutar ese archivo para obtener las categorías del producto.

EDITAR

No hay una funcionalidad central para ver esto en el backend. Creo que tomaría una ligera modificación de back-end para expandir las categorías habilitadas (quizás con algunos JS)

Rick Kuipers
fuente
1
Estaba buscando una solución de fondo :-)
Alex
@Alex pensé después de volver a leer su pregunta: PI cree que tomaría una ligera modificación en el backend para expandir las categorías habilitadas (quizás con algunos JS). AFAIK no hay una funcionalidad central que haga lo que quieres.
Rick Kuipers el
®Rick: No es tu culpa - Edité mi pregunta para contener esa información g
Alex
2

Columna de categoría que se puede filtrar y buscar en admin: https://github.com/vuleticd/admin_grid_category_filter

¡Salud!

Zdravko Karanovic
fuente
2
¿Podría agregar algunos comentarios a su respuesta? Publicar un enlace solo puede ser útil, pero el enlace puede romperse en el futuro, por lo que publicar un código que permanezca visible sería más útil para el futuro visitante de la publicación
Yaroslav