Wie finde ich alle Produkte ohne Bilder in Magento?

7

Ich habe einige tausend Produkte und möchte alle Produkte ohne Bild finden. Ich habe versucht, im Admin-Grid nach (kein Bild) zu suchen, aber kein Ergebnis. Wie kann ich eine SQL-Abfrage erstellen, die alle diese Produkte deaktiviert?

    
OWOHL 25.08.2010, 11:35
quelle

10 Antworten

15

Hör auf, in SQL zu denken. Beginnen Sie mit den Magento Modellen. Die Modelle von Magento verwenden einfach SQL als Backend. Das Abfragen von Dingen über Raw-SQL ist möglich, wird aber von Version zu Version der Magento-Version variieren und kann je nach verwendetem Backend unterschiedlich sein.

Führen Sie Folgendes aus einer Test-Controller-Aktion oder an einer anderen Stelle aus, von der Sie Magento-Code ausführen können. Es fragt das Modell nach Produkten ohne Bild ab

%Vor%     
Alan Storm 25.08.2010 17:06
quelle
6

Ich weiß, das ist super alt, aber ich fand es hilfreich, also dachte ich, ich würde ein Update veröffentlichen.

Als Ergänzung zu Alans Antwort oben habe ich festgestellt, dass es andere Szenarien als nur die 'no_selection' gibt. Vielleicht aufgrund von Plugins oder allgemeinen Fehlern im System? Das Finale wird tatsächlich alles finden, aber ich habe die anderen nur zum Spaß verlassen.

Ändern Sie die Sammlungsabfrage wie folgt:

%Vor%     
Sean Michaud 20.05.2013 20:29
quelle
2

Ich habe alle diese Antworten in verschiedenen Kombinationen ausprobiert und nur eine kleine Teilmenge meines Katalogs zurückgegeben. Der Grund: Ich importierte meine Produkte ursprünglich mit einem maßgeschneiderten Produktbild-Import-Skript.

Wenn ich während des Imports keine Bilder für einige Zeilen angegeben habe, hat das Skript keine NULL - oder leere Attributwerte für diese Bilder erstellt. Es hat die Attributzeilen überhaupt nicht erstellt.

Da addAttributeToFilter standardmäßig einen INNER Join verwendet und es keinen Bildattributwert gab, zu dem die Verbindung hergestellt werden konnte, fingen die hier geposteten Abfragen diese SKUs nicht ein.

Der folgende Code gibt alle Produkte zurück, für die image, small_image oder Thumbnail null, falsch formatiert, oder die Zeile vollständig ist.

Mit dem dritten Parameter für addAttributeToFilter können Sie den Join-Typ angeben, der in Verbindung mit den OR -Klauseln der WHERE -Anweisung verwendet werden soll.

%Vor%

Wenn Sie, wie ich, dies in eine SQL-Abfrage konvertieren möchten, um sie als CSV von Ihrem SQL-Client zu exportieren, drucken Sie einfach die Abfrage aus dem PHP-Skript:

%Vor%

Ich habe SQL auf StackOverflow gepostet, das die attribute_id Ganzzahlen hart codiert, die sich auf die Attribute image , small_image und thumbnail beziehen, aber diese können sich von Installation zu Installation unterscheiden. In Magento ist das Abfragen mit dem ORM viel besser als mit dem SQL.

    
Aaron Pollock 30.03.2015 09:17
quelle
1

auch, um die SQL, die die Abfrage Alan beschreibt hinter den Kulissen läuft:

echo (string) $products->getSelect();

    
timbroder 14.11.2011 19:14
quelle
0

Ich schrieb vor einiger Zeit einen Blogartikel mit einer SQL-Abfrage, um fehlende Bilder zu finden. Es deaktiviert keine Produkte, aber es ist zumindest ein Anfang: Ссылка . Sollte von diesem Punkt aus ziemlich einfach sein. Möglicherweise müssen Sie die Attribut-ID ändern, wenn Ihre nicht zufällig mit meiner übereinstimmt.

    
Prattski 25.08.2010 11:43
quelle
0

Es gibt zwei Möglichkeiten:

%Vor%

Der obige Code sollte funktionieren, aber in meinem Fall funktionierte es nicht. Also habe ich folgendes versucht:

%Vor%

Viel Glück!

    
Disha V. 17.04.2013 07:12
quelle
0

für Produkt ohne kleines Bild versuchen Sie dies

%Vor%

finde attribut_id in der eav_attribute-Tabelle

    
Diaconescu Doru 02.05.2014 16:33
quelle
0

Ich möchte nur hinzufügen, dass die Antwort von Sean Michaud richtig ist, außer dass wir das nicht verwenden müssen

%Vor%

Verwenden Sie diese Seite: Ссылка

  

"Ein NULL-Wert ist nicht der gleiche wie eine Zeichenfolge mit der Länge null. NULL   stellt die Abwesenheit eines Wertes dar, und der SQL-Standard besagt, dass a   NULL-Wert ist niemals gleich einem anderen Wert einschließlich eines anderen NULL "

So wird %/%/% nicht die NULL-Werte erhalten, aber wenn wir den Code von oben hinzufügen, werden wir den Fehler beheben und die Bildfelder mit NULL-Werten erhalten. Das ist das Ergebnis

%Vor%

Wenn Sie mit allen Bildattributen arbeiten möchten, könnte der Code wie folgt aussehen

%Vor%     
Jaco 09.02.2015 10:00
quelle
0

Ich habe alles versucht, aber das funktioniert für mich, wenn der flache Katalog aktiviert ist

%Vor%     
Rahul Dadhich 03.03.2017 05:41
quelle
0

Sie können diese SQL nur verwenden, um zu sehen, welches Produkt keine Bilder hat:

%Vor%

Viel Glück!

    
Abhinav Kumar Singh 08.03.2017 11:55
quelle

Tags und Links