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