Comment appliquer le paramètre d'affichage d'une catégorie à toutes les catégories?

10

J'ai plusieurs catégories et au lieu d'appliquer de nouveaux paramètres à toutes les catégories une par une, je voudrais savoir s'il est possible d'appliquer de nouveaux paramètres à toutes les catégories à la fois?

Merci!

Aamir Siddique
la source

Réponses:

13

Il n'y a aucun moyen de le faire à partir de l'interface utilisateur.
La façon dont je le fais habituellement, est de mettre à jour les valeurs dans la base de données. Ce n'est pas l'approche recommandée mais ça marche.
Supposons que vous souhaitiez mettre à jour l' is_anchorattribut à «1» pour toutes les catégories.

SELECT * FROM eav_attribute where attribute_code = 'is_anchor'

La requête ci-dessus devrait vous donner l' is_anchorattribut. Je note l'enregistrement qui en résulte, je vois que l'ID d'attribut est 51 (peut être différent pour vous). et l' backend_typeest int. Cela signifie que les valeurs de l'attribut sont dans le tableau catalog_category_entity_int.

UPDATE `catalog_category_entity_int` set value = 1 where attribute_id = 51 and parent_id <> 0;

Cette requête définira la valeur 1 pour l'attribut is_anchor (id 51), pour toutes les catégories sauf la «racine de toutes les racines», la catégorie avec parent = 0.
Après avoir exécuté la requête, je réindexe les catégories plates et c'est tout.

Marius
la source
perfecto! exactement ce que je cherchais: D
Aamir Siddique
7
Requête SQL mise à jour pour les versions plus récentes de Magento (je n'avais pas de colonne parent_id par exemple). UPDATE catalog_category_entity_intset value = 1 where attribute_id = (SELECT attribute_id FROM eav_attributewhere attribute_code = 'is_anchor');
Jasuten
@Marius ne fonctionne pas dans mon cas, j'essaye UPDATE catalog_category_intset value = 1 où attribute_id = 51 et parent_id <> 0; mais erreur: # 1146 - La table 'magento1.catalog_category_int' n'existe pas
Dinesh
1
@Dinesh cela signifie qu'il y a un problème avec votre instance magento.
Marius
@Marius comment le trouver et le réparer, n'importe quelle aide
Dinesh
2

Je ne suis pas sûr des paramètres que vous modifiez dans votre catégorie, mais s'il figure dans la liste des options de cette page , l'utilisation de l'API REST Magento est probablement votre meilleure option.

Talesh
la source
1

Identifiez d'abord l'ID d'attribut de l'attribut is_anchor:

SELECT * FROM eav_attribute where attribute_code = 'is_anchor';

nous obtenons l'attribut id 51 dans ma base de données. Exécutez maintenant la requête suivante

UPDATE catalog_category_entity_int set value = 1 where attribute_id = 51;

remplacez 51 par votre propre identifiant d'attribut. Et reconstruisez simplement ces index

Pratik Kamani
la source