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.