D'une manière ou d'une autre, un certain nombre de mes produits avaient la «Utiliser la valeur par défaut» désélectionnée.
Mon magasin a 2 langues, anglais et français. Le français utilise la valeur par défaut du magasin, donc maintenant, lorsque je mets à jour des produits, il n'apparaît pas sur le front-end, sauf si je vais manuellement sur le produit dans la vue du magasin en français et sélectionnez "Utiliser la valeur par défaut",
Il ne semble pas y avoir d'attribut pour une action de masse, j'ai rencontré des scripts et des requêtes MySQL, mais il n'est pas clair si ces solutions réinitialisent toutes les vues de magasin pour utiliser la valeur par défaut.
Le résultat souhaité est de définir "Utiliser la valeur par défaut" sur une vue de magasin spécifique (français) sur tous les produits.
Comment réinitialiser un grand nombre de produits (ou tous les produits) sur "Utiliser la valeur par défaut" sur une vue de magasin spécifique?
la source
$product->setData('visibility', false);
cela cochera la case, mais mettra également la visibilité sur "true", ce que je ne veux pasEn supposant que l'ID de magasin pour le magasin français est 2, vous devez exécuter les requêtes mysql ci-dessous:
Cela supprime essentiellement les valeurs d'attribut pour tous les attributs et produits pour lesquels l'ID de magasin est défini sur 2. Lorsque Magento ne peut pas trouver la valeur d'attribut pour un produit par rapport à l'ID de magasin particulier, il choisit la valeur par défaut.
la source
false
comme je l'ai fait, l'option "Utiliser la valeur par défaut" sera cochée. Bien que votre solution puisse fonctionner, je n'aime pas personnellement utiliser les requêtes SQL directes.Rejoindre un peu tard, mais je n'ai pas vraiment aimé l'une des réponses ci-dessus.
Voici ma tentative, pas entièrement testée, mais elle semble faire ce dont j'ai besoin.
la source
Vous pouvez utiliser événement core_block_abstract_to_html_before adminhtml pour ajouter les cases à cocher requises pour chaque attribut dans le formulaire de mise à jour en masse de l'administrateur.
Ensuite, vous devrez utiliser événement catalog_product_attribute_update_before pour supprimer les valeurs des tables EAV pour une vue de magasin spécifique, uniquement pour les attributs dont la case à cocher que vous avez injectée précédemment avec core_block_abstract_to_html_before est définie comme vérifiée.
J'espère que cela pourra aider.
Ce module fait exactement cela: http://mageinn.com/product/adminextra/ Il est également possible de réinitialiser l' attribut ' url_key ' avec ce module.
la source