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?


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

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)


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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.