imageURL: Wie kann ich prüfen, ob eine Bild-URL vorhanden ist?

Problem:

Bei Verarbeitung z.B. von Lieferantendaten mit enthaltenen Bild URLs (imageURLs) kann es vorkommen, dass zur URL das Bild nicht existiert. Dies kann bei der weiteren Verarbeitung zu Fehlern in nachfolgenden Steps führen.

Lösung:

Die Datensätze mit den enthaltenen imageURLs können vorab mit dem Step SpreadsheetURLDownload getestet und die fehlerhaften imageURLs mit einem SpreadsheetFilter herausgefiltert werden.

Die imageURLs sind mit dem Eingabefeld host im Step SpreadsheetURLDownload zu verknüpfen. Als method ist HEAD auszuwählen. Die Methode HEAD wertet in diesem Fall nur den Header des URL Aufrufes aus. Das Bild selbst wird nicht herunter geladen. Bitte beachten, dass in seltenen Fällen der Server die Methode HEAD nicht unterstützen. In diesem Fall funktioniert die hier beschriebene Lösung nicht.

Existiert zur URL ein Bild, dann wird der statusCode 200 zurück geliefert.

Möchte man noch zusätzlich im Ergebnis des SpreadsheetURLDownloads weitere Spalten aus dem Quellspreadsheet ausgeben, sind diese Spalten in den erweiterten Optionen des Steps im Feld outputSourceColumns auszuwählen.

Mit dem nachfolgenden Step SpreadsheetFilter kann man dann alle Zeilen herausfiltern bei denen der Statuscode 200 ist.

Beispiel:

Übergabe von imageURLs an den Step Magento2AddImagesToProductsSEO

Beispielflow im Überblick:
image

StringToFile und CSVReader

Quelle ist ein Spreadsheet aus einem CSVReader, welcher Beispieldaten aus einem StringToFile einliest. Die 3. Zeile enthält eine fehlerhafte URL ohne Bild.

SpreadsheetURLDownload - Konfiguration

Diesem Step ist die image URL zu übergeben und die Methode HEAD ist zu wählen.

Zusätzlich können pro Zeile noch die übergeben Quellspalten angegeben werden (Erweiterte Optionen), die vom Step für die weitere Verarbeitung ausgegeben werden sollen.

Wichtiger Hinweis!

numErrorsToStopFlow: Diese erweiterte Option ist entsprechend hochzusetzen, da beim Erreichen der Anzahl durch fehlerhafte URLs der Flow sonst abbricht.

SpreadsheetURLDownload - Ergebnis

SpreadsheetFilter - Konfiguration

Es wird die Ergebnisspalte statusCode ausgewertet und alle erfolgreich verarbeiteten URLs mit Bildern werden im output Spreadsheet des Steps ausgegeben.

SpreadsheetFilter - Ergebnis

Magento2AddImagesToProductsSEO - Konfiguration

Diesem Step wird der output (positives Ergebnis mit statusCode=200) aus dem SpreadsheetFilter übergeben und die entsprechenden Felder werden zugewiesen.