Produktimporter

Der Produktimporter ist eine sehr spezifische Entwicklung und nur auf die Verwendung für GSG Baubeschläge ausgerichtet. Der Produktkatalog von GSG liegt in Word-Dateien vor, die die Daten für den Katalogdruck beinhalten. Um diese Inhalte auf der Webseite abzubilden wurde der Importer entwickelt. Er wandelt die Doc-Dateien via libreoffice in XML-Dateien um, diese XML-Dateien wiederrum in JSON und basierend darauf dann Befehle für den Import in eine MySQL - Datenbank. Ausgehend von dieser MySQL - Datenbank findet dann ein Transfer in das Merlino-System von GSG Baubeschläge statt wo passend zum Katalog Kategorien und Seiten mit Produktabellen angelegt werden.

Technologien

  • PhantomJS (parsen der XML-Dateien um die entsprechenden Kategorie- und Produktinformationen zu finden)
  • libreoffice (headless; um aus Word-Dateien XML-Dateien zu erzeugen)

Development

  • Das Repository liegt bei All-Inkl.
  • Projekt klonen und den development-branch auschecken: git clone ssh://ssh-w0100ce7@git.mubsolutions.com/www/htdocs/w0100ce7/gsgImporter.git / git checkout -b development origin/development
  • Ins Verzeichnis wechseln
  • lokale MySQL - Datenbank anlegen (basierend auf classes/conversion/command/convertJsonToMySqlCommand.class.php)
  • Word-Dateien in "doc/de" und "doc/en" kopieren
  • Preiliste in "csv/de" und "csv/en" kopieren
  • je nach Einstellung in der "import.php" (importer::MODE_DEV | importer::MODE_LIVE) führt der Importer den Prozess in der Merlino-Dev oder in der Merlino-Live Instanz von GSG aus
  • bei $importer->execute(1544425242); in der "import.php" muss als Timestamp immer der Wert des letzten Imports eingetragen werden, weil dadurch die alten Seiten gelöscht werden
    • Um herauszufinden, wann der letzte Import war, in der Merlino-DB eine Seite in der "pages_de" suchen, die den Wert "static=1" hat und von dieser den "crdate"-Wert nehmen
  • den Import via 'php import.php' durchführen
  • nach Abschluss des Imports die Hinweise ganz oben in der "import.php" beachten (es müssen zunächst noch die Meta-Daten erzeugt werden und dann die Seiten mit einem extra-Flag gecached werden)

Deployment

  • gibt es nicht, der Import wird immer lokal ausgeführt und macht die Änderungen in der Datenbank von Merlino-Dev oder Merlino-Live