Stellt eine kleine Übersicht der “shopupdate”-Komponente aus dem git dar. In erster Linie geht es um die Schnittstellen zwischen dem Paket und dem DAL, sowie Skripte, die bereitgestellt werden.
Eine funktionierende Umgebung setzt lediglich eine Konfiguration voraus, die einen Eintrag für den DAL-Server enthält, sowie ein Verweis auf die Mail-Adresse, die für notify-Mails verwendet werden soll.
Sämtliche Skripte laufen zur Zeit als cronjob auf der VM “dazzler”.
Jeder Shop beginnt sein Zustand nackig “bare”. Sobald eine feedUrl hinzugefügt wird, geht er in den Zustand “new” über und der Update-Prozess beginnt. Als erstes wird geprüft, ob der Feed abgerufen werden kann. Hier geht es um mögliche Rechteprobleme, sowie den Existenzcheck. Die zweite Prüfung besteht aus einem ersten Syntax-Check auf CSV-Ebene. D.h, Trennzeichen richtig, gleiche Anzahl Felder pro Zeile, etc. Die beiden Zustände werden im Back-End festgehalten.
Falls der Server es unterstützt, wird der Zeitstempel der Datei gesichert, so dass nur bei Änderungen auch wirklich ein Update angestoßen wird. Ansonsten wird lediglich der Zeitstempel geprüft und ein “no-update” aufgelöst.
Ist ein Update notwendig und die Feed-Daten sind korrekt, startet das eigentliche Update. Die einzelnen CSV-Zeilen werden zu Produkten kombiniert und in einer Liste gespeichert. Beim DAL wird angefragt, welche Produkte bereits vorhanden sind. Danach wird einer der drei folgenden Zustände ausgewählt:
Hinweis: Feeds stellen immer die komplette Liste aller Produkte dar. Inkrementelle Updates gibt es nicht.