Branche: Bildagentur
Realisiert mit PrestaShop, Python, PHP

Ein Bestand von ca. 2.500 hochaufgelösten Bildern (> 130 GB) soll in PrestaShop importiert werden. Die dazugehörigen Artikelstammdaten befinden sich in einer MySQL-Datenbank des alten Shop-Systems. Die besondere Problematik: Auf dem Server ist nicht genügend Platz um die Daten vor dem Import zu sichern. Aufgrund der sehr knappen Deadline scheidet ein Download per DSL aus.

prestashop-import-artikel-2

Lösung:
Vor dem Import werden die Daten per LFTP vom Webserver auf einen zweiten Server gesichert. Dieser Weg vermeidet den “Flaschenhals” einer DSL-Verbindung und nutzt die volle Bandbreite zwischen beiden Servern. Der Import selbst wird über unsere PrestaShop Import-Schnittstelle abgewickelt.

Artikeldaten automatisch in PrestaShop importieren

Der Import selbst wurde in Python umgesetzt: Ein Script greift direkt auf die MySQL-Datenbank des alten Shop-Sytems zu und liest alle relevanten Artikeldaten aus.

Unsere ebenfalls in Python geschriebene Import-Schnittstelle bringt folgende Voraussetzungen für das Projekt mit:

  • Automatisches Erzeugen der virtuellen Artikel in PrestaShop.
  • Automatische Zuordnung zu einer oder mehreren Kategorien pro Artikel.
  • Automatisches Erzeugen beliebig vieler Product Tags (Such- und Schlagwörter) pro Artikel.
  • Unterstung mehrerer Sprachen für Artikel, Kategorien und Tags.

Die Artikelbilder werden über unsere PrestaShop Import-Schnittstelle automatisiert per FTP hochgeladen. Die virtuellen Produkte selbst (in diesem Fall die HiRes Bilddateien), werden platzsparend über eine FTP-Verbindung, ohne vorherigen Upload, direkt in den Download-Ordner von PrestaShop verschoben und in der Datenbank von PrestaShop registriert. Technisch bedeutet das, dass die Dateien in sogenannte Hashcodes umbenannt werden. Die original Dateinamen stehen dann nur noch in der Datenbank von PrestaShop und können aus den Hashcodes selbst nicht wieder abgeleitet werden. Hierdurch werden die Download Links in PrestaShop abgesichert:

prestashop-hash-virtueller-artikel

PrestaShop: Kodierte Dateinamen virtueller Artikel

Da PrestaShop die Download-Dateien virtueller Artikel über einen nicht umkehrbaren Hashcode kodiert,  hat diese Methode einen entscheidenden Nachteil: Sobald ein Import abgebrochen und neu aufgesetzt werden muss, sind die bis dahin verarbeiteten Dateien bereits verschlüsselt und müssten mühsam manuell wieder umbenannt werden.

Um dieses Problem zu umgehen, wurde die Datensicherung inkrementell über LFTP zurückgesichert, die PrestaShop-Datenbank geleert und der Vorgang erneut angestossen. Da der Webserver des Kunden keine LFTP-Installation zuließ, wurde LFTP auf dem Sicherungs-Server im Push-Mode (Reverse-Mode) ausgeführt. In diesem Modus führt LFTP keine Downloads durch, sondern schiebt die lokalen Daten auf den Zielserver.