Tutorial: Bilder auf FTP-Server für Shop-Import per URL erreichbar machen

Wie Sie mit Synesty Produktbilder in ihrem Shop importieren können, obwohl der Shop nur Bild-URLs akzeptiert.

Tutorial: Bilder auf FTP-Server für Shop-Import per URL erreichbar machen

Was ist das Problem?

Viele Shopsysteme bieten die Möglichkeit Produktbilder zum importieren. Allerdings erwarten die Shopsysteme dafür oft, dass die Bilder per URL öffentlich erreichbar sind. Das heißt man importiert eigentlich nur Bild-URLs in den Shop und der Shop lädt dann die Produktbilder über die URL selbst herunter.

Das Problem ist oft, dass man die Bilder nur physisch als Datei vorliegen hat. Diese kann das Shopsystem aber nicht importieren. (Manche Shopsysteme können das, in dem man Bilddaten als Base64 importiert. Darum soll es in diesem Artikel aber nicht gehen.)

Ein Lösungsansatz ist, die Dateien in einem Zwischenschritt z.B. FTP auf einen Webserver hochzuladen, der die Dateien dann per URL verfügbar macht.

Diese Übersetzung von FTP-Pfad zu Bild-URL kann man mit einem Synesty Flow automatisieren. Voraussetzung ist oft, dass die Dateinamen der Bilder z.B. die Artikelnummer oder SKU enthalten, damit sie den Produkten zugeordnet werden können.

Wir zeigen Ihnen in diesem Beitrag, wie Sie einen Flow erstellen können, welcher für jedes Bild auf Ihrem FTP-Server eine Bild URL generiert. So können Sie im Anschluss Ihre Produkte inklusive Produktbilder mittels CSV-Datei in Ihr Shop-System importieren.

Die Web Adresse für Ihr Bild

Die Bild URL ist die Web Adresse für Ihr Bild. Haben Sie die Bilder auf Ihrem FTP-Server hochgeladen, liegen diese dort in einem Verzeichnis und sind zusätzlich per HTTP als URL erreichbar. Die URL könnte dabei beispielsweise so aussehen:

Im Fall, dass sie Bilder in Ihren Onlineshop importieren möchten, enthalten die Dateinamen der Bilder oft auch eine Abgleichnummer (z.B. Artikelnummer oder Hersteller-Artikelnummer). Dadurch können die Bilder einfacher den jeweiligen Artikeln zugeordnet werden. Um für eine lange Liste an Bilddateien eine jeweilige URL zu generieren, braucht es unabhängig von dem Dateinamen lediglich einen Flow bei Synesty. Ziel von diesem ist es, dass für jedes Bild auf dem FTP-Server, eine Bild URL erstellt wird (siehe Bild). Im folgenden Beispiel zeigen wir Ihnen, wie so ein Flow aussehen könnte

Ein Flow, um Bild URLs automatisch generieren

So erstellen Sie einen Flow Ein Flow bezeichnet in Synesty den Prozess, der automatisiert wird. Zum Generieren der Bild URLs besteht dieser aus den vier folgenden Steps.

  1. FTPDownload
  2. StringTofile
  3. CSVReader
  4. Mapper

Der Flow kann ganz einfach aus den genannten Steps per Drag & Drop in Synesty nachgebaut werden. Wie Sie die einzelnen Steps konfigurieren, zeigen wir Ihnen nun.

1. Step - FTPDownload

Mit den FTPDownload Step laden wir zuerst alle Dateinamen der Bilder herunter. Stellen Sie dazu in der Stepkonfiguration unter den erweiterten Optionen das Feld „outputtype` auf Only list of filenames.

Schauen Sie sich zur Überprüfung einmal die Step-Vorschau an. Wenn alles geklappt hat, erhalten Sie eine STRINGLIST mit den Dateinamen der Bilder (siehe Screenshot).

2. Step – StringToFile

Im nächsten Schritt StringToFile wird das Inputfeld mit dem Output (STRINGLIST) vom FTPDownload Step verknüpft. Dafür klicken Sie auf das +-Icon und wählen LOCAL_DOWLOADED_FILENAMELISTOBJECT (STRINGLIST) aus (siehe Screenshot). Es erscheint ein Hinweis, dass das verknüpfte Object vielleicht inkompatibel ist. In diesem Fall stellt dies allerdings kein Problem dar, weshalb Sie den Hinweis mit ok bestätigen

3. Step – CSVReader

Nun müssen Sie eine Änderung in den erweiterten Optionen vornehmen. Öffnen Sie dazu die Stepkonfiguration des CSVReaders und stellen Sie das Feld hasHeader auf den Wert `Nein“. Tun Sie dies nicht, wird der erste Dateinamen als Spaltenname verwendet und fehlt anschließend in der Liste.

4. Step – Mapper

Kommen wir nun zu dem entscheidenden Schritt im Flow zur Erstellung Ihrer Bild URLs. Dazu verwenden wir den sogenannten Mapper. In diesem Step werden nun die URLs aus der zuvor abgerufenen Liste aller Bildnamen generiert. Zuerst müssen Sie jedoch eine neue Flow-Variable erstellen.

Diese Variable sollte mit einem eindeutigen Namen (z.B meine_url.) versehen werden, sodass es später zu keiner Verwechslung kommt. In dem Feld Wert tragen sie dann den Anfang (Prefix) der finalen URL ein, unter der das Bild heruntergeladen werden kann (z.B www.myftpserver.com/home/images/). Sie haben die Variable nun erfolgreich erstellt.

Im nächsten Schritt greifen wir nun auf diese Variable zurück, indem wir zuerst die Konfiguration des Mapper Steps öffnen. Klicken Sie nun auf Konfigurieren und öffnen damit die Mapping-Ansicht. Wenn Sie anschließend auf Daten aus vorherigen Steps klicken, sollten Sie eine Spalte mit den Dateinamen der Bilder sehen. Dies ist das Ergebnis des zuvor angewandten CSVReaders. Fügen Sie nun eine neue leere Spalte hinzu. In der neuen Spalte (empty) klicken Sie dann auf den +-Button und wählen dort den Reiter "aus Meta-Daten“ aus. Dort wählen Sie schließlich die zuvor angelegte Variable aus (in diesem Beispiel meine_url).

In der Spalte empty wird nun automatisch eine Freemarker Anweisung generiert . Klicken Sie erneut auf den +-Button und wählen dieses mal den Reiter aus Ergebnisspalte. Dort sollten Sie nur eine Spalte zur Auswahl haben.

Achtung: Beachten Sie hierbei, dass die neu erzeugte Spalte rechts von der Spalte mit den Bildernamen sein muss.

Es wird erneut eine Freemarker Anweisung generiert. Diese sollte in etwa so aussehen: ${meta.meine_url!}${result['col0']!} Wenn Sie den Mapper nun betrachten, sollte dieser so aufgebaut sein:

Hinweis:

Beachten Sie bitte, dass sich zwischen ${meta.meine_url!} und ${result['col0']!} kein Leerzeichen befinden darf. Ansonsten wird Ihre Url ebenfalls mit einem Leerzeichen generiert, was wiederum zu Fehlern führen kann.

Ergebnis:

Sie haben nun eine fertige Spreadsheet (Tabelle) mit künstlich erzeugten Bild-URLs, welche aus der Liste der Bild-Dateien auf Ihrem FTP-Server automatisch generiert wurden.

Die Spaltentitel können Sie natürlich nach Ihren Wünschen anpassen oder weitere Spalten wie z.B. Artikelnummer / SKU hinzufügen. Angenommen die Artikelnummer ist der erste Teil des Dateinamens, dann könnte man durch Suchen/Ersetzen einfach die Dateiendung wegschneiden.

Nächster Schritt: Produktbilder in Shopsystem importieren

Mit der erzeugten Liste kann man nun Produktbilder in sein Shopsystem importieren.

Beispiel: Für Plentymarkets Nutzer gibt es den Step PlentyAddItemImages, und für Shopware Nutzer den Step ShopwareAddProductMedia um Produktbilder zu importieren.

Bereit um loszulegen?

Verwandte Beiträge


Aktualisiert am August 18, 2022