Découvrez à quelles catégories un produit appartient

11

J'ai ouvert un produit dans le backend, mais lorsque je passe à l'onglet des catégories, l'arborescence des catégories est complètement réduite. Je devrais étendre toutes les catégories pour voir dans lesquelles se trouve le produit.

Comment puis-je voir rapidement (dans le backend) à quelles catégories le produit appartient?

Alex
la source
C'est le seul moyen par défaut de le faire via le backend;) Avez-vous accès à la base de données?
Kenny
1
Ma première idée a été d'exécuter tree.expandAll()dans une console de navigateur mais malheureusement cela ne fonctionnera que pour la Manage Categoriespage.
user487772

Réponses:

11

Il n'y a aucune fonctionnalité de base pour l'archiver dans le backend.

Si vous disposez d'un accès en lecture à la base de données pour exécuter des requêtes brutes, vous pouvez utiliser les requêtes suivantes pour obtenir un aperçu de toutes les catégories liées à un certain produit:

Option 1 => Obtenez toutes les catégories d'un produit en saisissant l'ID d'entité du produit:

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

Option 2 => Obtenez toutes les catégories d'un produit en saisissant le SKU du produit:

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
la source
6

Vous pouvez charger le produit par son ID, puis obtenir les identifiants de catégorie.

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

Testé et fonctionnel.

Vous pouvez le mettre dans un fichier séparé et simplement l'exécuter pour obtenir les catégories du produit.

ÉDITER

Il n'y a aucune fonctionnalité de base pour afficher cela dans le backend. Je pense qu'il faudrait une légère modification du backend pour que les catégories activées soient développées (peut-être avec certains JS)

Rick Kuipers
la source
1
Je cherchais plutôt une solution backend :-)
Alex
@Alex, je me suis dit après avoir relu votre question: PI pense qu'il faudrait une légère modification de backend pour que les catégories activées soient développées (peut-être avec certains JS). AFAIK il n'y a aucune fonctionnalité de base qui fait ce que vous voulez.
Rick Kuipers
®Rick: Ce n'est pas de ta faute - j'ai édité ma question pour qu'elle contienne cette info g
Alex
2

Colonne de catégorie filtrable et consultable dans admin: https://github.com/vuleticd/admin_grid_category_filter

À votre santé!

Zdravko Karanovic
la source
2
Pourriez-vous ajouter quelques commentaires à votre réponse? La publication d'une réponse de lien uniquement peut être utile, mais le lien peut être rompu à l'avenir, donc publier un code qui reste visible serait plus utile pour le futur visiteur de la publication
Yaroslav