Inkrementelle Verarbeitung

Hallo,

und zwar habe ich als Voraussetzung eine Warenwirtschaft. Die Daten (Produkte) kann ich via API abrufen und verarbeiten. Diese sollen dann in Shopware übertragen werden. Bisher löse ich das mit einem Vollimport. Das heißt, in Synesty setze ich beim Flow alle Produkte auf inaktiv und alle Produkte, die über die API kommen, werden aktualisiert und auf aktiv gesetzt.

Nun möchte ich auf eine inkrementelle Verfahrensweise wechseln. Hierbei gibt es vom Produktdatensatz keine Flags oder ähnliches, woran ich erkennen kann, welches Produkt sich geändert hat. Auch muss abgefangen werden, wenn ein Produkt nicht mehr in der Warenwirtschaft vorhanden ist.

Mein Vorgehen wäre dieser, dass ich für jedes Produkt jede einzelne Information abgleichen würde. Wenn es hierbei ein Unterschied gibt, bekommt es ein extra Synesty-Feld-Eintrag mit 1 im Datastore und kann das dann entsprechend weiter verarbeiten. Mein Problem hierbei ist, dass ich aktuell 63 Felder im Datastore habe und alle diese Abfragen müsste. Das fühlt sich irgendwie falsch und aufwändig an. Daher meine Frage, ob es hierfür bessere Vorgehensweisen in Synesty gibt, die den Prozess vereinfachen?

Grüße

Hallo Daniel,

Auch muss abgefangen werden, wenn ein Produkt nicht mehr in der Warenwirtschaft vorhanden ist.

Beim Abfangen von in der Wawi fehlenden Artikeln, hilft dir unser Cookbook: „Flow: Wie finde ich Datensätze, die gestern importiert wurden, aber heute nicht mehr mit mitkommen? (Delta)“.

Zusätzlich zu dem im Cookbook gezeigtem Output „untouchedRecords“, gibt der DatastoreWriter mit „updatedRecordsWithChangedContent“ aus, bei welchen Datensätzen sich Werte verändert haben.

Das Datum der letzten Änderung eines Datensatzes findest du im Datastore in der Spalte " LastContentChanged". Nach diesem Datum kannst du in den erweiterten Einstellungen des SearchDatastore Steps filtern:

Viele Grüße
Felix