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?


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

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)


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é!


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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.