Comment puis-je trouver tous les produits sans les images dans Magento?
J'ai quelques milliers de produits et que vous voulez trouver tous les produits sans image. J'ai essayé de rechercher (pas d'image) dans l'admin des produits de la grille, mais pas de résultat. Comment puis-je faire une requête SQL qui désactive tous ces produits?
Myers: exactement Pourquoi avez-vous modifier cela presque un an après, il a été posté?
Il n'y a pas de prescription sur les montages. Chaque fois que vous voyez quelque chose qui pourrait être amélioré, n'hésitez pas à aller de l'avant et de le faire. Dans ce cas, je suis ici, parce que quelqu'un a posté une non-réponse, qui j'en suis venu à supprimer.
Oh oui, que c'est juste. Je viens de voir: édité par..., et de la manière dont il est placé, il semble que, apparemment, vous avez édité la question, pas retiré le (faux) réponse! Que fait beaucoup plus de sens. Je salue votre travail pour cette communauté.
Il n'y a pas de prescription sur les montages. Chaque fois que vous voyez quelque chose qui pourrait être amélioré, n'hésitez pas à aller de l'avant et de le faire. Dans ce cas, je suis ici, parce que quelqu'un a posté une non-réponse, qui j'en suis venu à supprimer.
Oh oui, que c'est juste. Je viens de voir: édité par..., et de la manière dont il est placé, il semble que, apparemment, vous avez édité la question, pas retiré le (faux) réponse! Que fait beaucoup plus de sens. Je salue votre travail pour cette communauté.
OriginalL'auteur OWOHL | 2010-08-25
Vous devez vous connecter pour publier un commentaire.
Cesser de penser en termes de SQL. Commencer à penser en termes de Magento Modèles. Magento modèles viens de passer à l'utilisation de SQL comme backend. L'interrogation de choses via SQL brut est possible, mais va varier selon les versions de Magento, et peut varier selon le backend que vous utilisez.
Exécuter les opérations suivantes à partir d'un contrôleur de test d'action, ou quelque part d'autre, vous pouvez exécuter Magento code de. Il interroge le modèle pour les produits sans image
Je n'ai pas testé, mais un standard ne sont pas égaux filtre (
neq
). `->addAttributeToFilter('image', array("gt"=>'no_selection')); " la liste Complète des options de filtrage sont disponibles dans cet article: alanstorm.com/magento_collectionsLes Collections sont beaucoup mieux que le débogage de l'auto-obfusticating les instructions SQL nécessaires pour travailler avec des EAV n'importe quel jour de la semaine. Le travail est déjà fait pour vous, vous avez seulement à payer l'attention sur la logique que vous utilisez pour travailler avec le résultat.
Merci @AlanStorm,vous êtes des génies
OriginalL'auteur Alan Storm
Je sais que c'est super vieux, mais je l'ai trouvé utile, donc je pensais que je poste une mise à jour.
Comme un complément à d'Alan réponse ci-dessus, j'ai trouvé qu'il y a d'autres scénarios que seulement les "no_selection' .. peut-être en raison de plugins, ou général de bugs dans le système? La finale nlike trouve de tout, mais j'ai laissé les autres juste pour le fun.
Changement de la collection de la requête comme suit:
OriginalL'auteur Sean Michaud
J'ai essayé toutes ces réponses dans diverses combinaisons, et a obtenu seulement un petit sous-ensemble de mon catalogue retourné. La raison: j'ai importé à l'origine de mes produits sur mesure à l'aide d'un produit d'importation d'image de script.
Si je n'ai pas spécifier les images de certaines lignes au cours de l'importation, le script n'a pas créé
NULL
ou vide de valeurs d'attribut pour ces images. Il n'a tout simplement pas créer l'attribut rows.Depuis
addAttributeToFilter
utilise unINNER
de jointure par défaut et il n'y a pas d'image de la valeur de l'attribut de jointure, les requêtes postées ici ne pas attraper ces Références.Le code ci-dessous renvoie tous les produits pour lesquels l'image, small_image ou vignette sont nuls, mal mis en forme, ou la ligne est totalement absente.
Le troisième paramètre à
addAttributeToFilter
vous permettent de spécifier le type de jointure pour être utilisé en conjonction avec leOR
clauses de laWHERE
déclaration.Si, comme moi, vous voulez convertir cette requête SQL pour l'exportation au format CSV à partir de votre client SQL, il suffit d'imprimer la requête à partir du script PHP:
J'ai vu quelques SQL posté sur StackOverflow qui dur-codes de la
attribute_id
entiers qui font référence à laimage
,small_image
etthumbnail
attributs, mais ils peuvent varier d'une installation à l'autre. Dans Magento, l'interrogation avec l'ORM est beaucoup mieux que le SQL.OriginalL'auteur Aaron Pollock
également, pour obtenir le sql de la requête Alan décrit s'exécute en arrière-plan:
echo (string) $products->getSelect();
OriginalL'auteur timbroder
J'ai écrit un article de blog un peu de temps avec une requête sql pour trouver des images manquantes. Il ne désactive pas les produits, mais c'est un début au moins: http://prattski.com/2010/06/29/magento-sql-to-find-missing-images/. Devrait être assez facile à faire à partir de ce point. Vous pourriez avoir à changer l'attribut ID si le vôtre n'arrive pas à égaler la mienne.
OriginalL'auteur Prattski
Il y a deux façons de le faire:
Code ci-dessus devrait fonctionner, mais dans mon cas ça ne fonctionnait pas. J'ai donc essayé suivantes:
Bonne Chance!
OriginalL'auteur Disha V.
pour le produit sans petite image d'essayer cette
trouver attribute_id dans eav_attribute table
OriginalL'auteur Diaconescu Doru
Je veux seulement ajouter que la réponse de Sean Michaud est en droit, sauf nous n'avons pas besoin d'utiliser que
À l'aide de la page: http://bytes.com/topic/sql-server/answers/83267-wildcard-doesnt-match-using-like-varchar-field-wierd
Donc
%/%/%
n'obtiendrez pas les valeurs NULL, mais en ajoutant le code ci-dessus nous permettra de corriger l'erreur et obtenir l'image des champs avec des valeurs NULL. C'est le résultatSi vous souhaitez travailler avec tous les attributs de l'image, le code pourrait ressembler à ceci
OriginalL'auteur Jaco
J'ai tout essayé, mais cela fonctionne pour moi, lorsque le plat catalogue est de permettre
OriginalL'auteur Rahul Dadhich
Vous pouvez utiliser cette SQL, juste pour voir le produit n'a pas d'images:
Bonne Chance!
OriginalL'auteur Abhinav Kumar Singh