Import vieler Dateien per CSV - imageUrl-Problem

Guten Tag allerseits,

den Import von Artikeln in unseren Shop nehme ich seit geraumer Zeit mit CSV-Dateien vor, die ich mir vorher mit diversen PHP-Scripts vorbereite. 
Momentan pflege ich eine 6-stellige Zahl von Noten(büchern) ein, pro Artikel ist ein Bild vorgemerkt, das über imageUrl vom Server unseres Lieferanten geladen und in Shopware hinterlegt wird. 

Die Eckdaten:

  • CSV-Datei - utf8 - Trenner Semikolon - Texttrenner doppeltes Hochkomma - 20000 Zeilen pro Datei

    • Die zum Testen auf wenige hundert Zeilen gekürzten CSV-Dateien werden problemlos importiert, solange der weiter unten beschriebene Fall nicht eintritt.
  • Shopware-Einstellung: Import bei Fehler fortsetzen

  • Importprofil: angepasst, läuft problemlos

  • Bildquelle ist ein Link: 

    https://xxx.de/product_images/123456.jpg

 

Soweit, so gut. Der Import läuft, danach werden die Bilder geladen.

  • Wenn kein Link zu dem jeweiligen Artikel angegeben ist (Zeile in der Spalte leer) wird es ignoriert, kein Bildimport -> perfekt
  • Wenn ein Link angegeben ist, zu dem ein Bild erreichbar ist, wird es geladen -> perfekt
  • ABER: Wenn ein Link angegeben ist, aber das Bild nicht auf dem Server liegt, bricht der gesamte Import ab. Fehlermeldung: txt ist nicht erlaubt.

Wenn ich die URL in diversen Browsern eingebe, erhalte ich Fehlermeldungen:

kann nicht angezeigt werden, weil sie Fehler enthält.

  • IE (ist hier noch auführlicher):
    • Warning: imagecreatefromjpeg(): Cannot read image data in /var/www/static_web/public/image.php on line 37
    • Warning: imagejpeg() expects parameter 1 to be resource, boolean given in  /var/www/static_web/public/image.php  on line  40

Dadurch wird auch die Fehlermeldung klar. Shopware erhält eine Fehlermeldung, die entweder als txt vorliegt oder so interpretiert wird.

Eigentlich sollte dieser Fehler meines Erachtens schlicht ignoriert werden, ergo kein Bild importieren, weitere mit dem nächsten Datensatz. Denn  Shopware-Einstellung: Import bei Fehler fortsetzen.  Leider funktioniert das in diesem Fall nicht (ansonsten greift diese Einstellung nämlich).

In der letzten Zeit habe ich mich sehr viel mit dem Import/Export Modul auseinander gesetzt und grandiose Erfolge gefeiert :wink: . Hier bin ich ratlos. Für Ideen oder gar Lösungen wäre ich sehr dankbar!

Viele Grüße

P.S.: Sollte jemand Fragen bez. meines PHP-CSV-Workflows haben - immer gerne her damit!

Das Grundproblem ist nicht, dass das Bild nicht erreichbar ist - würde der Server da einen 404 zurückgeben, dann würde der Importer soweit ich das kenne, auch nicht abbrechen. Aber hier bekommt der Importer ja eine Antwort, die aber kein Bild ist. Scheint mir etwas eigenartig zu sein, da man eine 404 Response erwarten würde.

1 „Gefällt mir“

Vielen Dank Moritz Naczenski für die schnelle Antwort. Hätte ich auch erwartet, aber wie oben erwähnt gibt der Server wohl eine angepasste Antwort. Auch beim Import wird das Modul wohl eher einen Text, als ein 404 zu lesen bekommen.

Ist dieser Umstand mit Shopware zu “umfahren”? Die Einstellung “Ignoriers einfach und mach weiter” hätte ich in Shopware ja eigentlich gesetzt.

Alternativ müsste ich jede URL vorab prüfen, bevor sie in der CSV-Datei landet… das bereitet mir gerade nicht so viel Freude ^^

Nur noch kurz als Info angemerkt: zur Erstellung der importfähigen CSV-Datei aus der CSV-Datei, bzw. XLSX-Datei des Lieferanten, prüfe ich nun jede URL einzeln auf die Größe der Datei. PHP via cURL.

Nicht sehr performant, nicht sehr elegant, mir wär es lieber, die Funktion in Shopware würde zu mehr Schulterzucken neigen :wink: