Zum Hauptinhalt springen
Version: Aktuellste Version

Produkte

Produktsynchronisation v2​

  • Gilt für Synchronisation zu Skene

Frontend​

Es gibt 2 möglichkeiten die neue Synchronisation anzustoßen, beide werden über das Frontend gesteuert.

  • Einzelsynchronisation beim bearbeiten eines Produkts
  • Volle Synchronisation über den Button

Einzelsynchronisation​

Die Einzelsynchronisation kann über folgende wege angestoßen werden:

  1. Wenn ein Produkt gespeichert wird, wird ein Request ans Backend geschickt, zur Route "/api/synchronize/product/{id}". Diesem Request wird die Produkt Id mitgegeben und im body ob eine Produktkategorie hinzugefügt wurde oder entfernt wurde.

  2. Wenn ein Sortiment einem Produkt hinzugefügt wurde oder entfernt wurde oder wenn ein Produkt einem Sortiment hinzugefügt wurde oder entfernt wurde. die aktionen schicken einen Request an die Route "/api/synchronize/assortmentProducts/{action}". Mitgeschickt wird neben der Info ob was hinzugefügt oder entfernt wurde noch die Sortiment Id und das Produkt Id.

  3. Unabhängig von der produktsynchronisation kann man noch die Verbindung zwischen Sortiment und Debitor synchronisiert werden, dies wird bei der Zuordnung ausgelöst und schickt einen Request an die Route "/api/sync/assortmentRelations/{action}". Hier wird neben der Info ob was hinzugefügt wird oder entfernt wird noch die Verbindung mitgeschickt.

Vollsynchronisation​

Die Vollsynchronisation kann angestoßen werden, wenn man in der Produktliste ist mit dem Button "Produkte synchronisieren". Hierbei wird ein Request an die Route "/api/sync/products" geschickt.

Vorsicht

Durch die Vollsynchronisation werden alle vorhandenen Produkte und verbingunden Synchronisiert. Dies kann unter umständen länger dauern und Performance beanspruchen.

Backend​

Messages​

Um die requests weiter zu verarbeiten werden an den Endpunkten 2 verschiedene Arten von Messages gestartet, die beiden über den transport "pim_product_customer_portal_async" laufen.

  1. Die ProductMessage ist dafür zuständig alles was mit dem Produkt zu tun hat an den Processor weiterzuleiten für die weitere verarbeitung.

  2. AssortmentCustomerMessage hingegen übernimmt die Verbinung zwischen Debitor und Sortiment.

Prozessor​

Der Prozessor "CustomerPortalProductProcessorV2" ist dafür die die Daten aus den Messages aufzubereiten für den weitertransport zu Skene. Die Haupteinstiegspunkte sind die Funktionen synchronizeProduct() und synchronizeAssortmentCustomersRelation(). Dort werden die Daten in die passenden ViewModel gemappt und an Skene weitergeleit.

Es gibt für jede Message auch einen Request, die 2 Verschiedene Apis in Skene ansprechen.

  1. Für die Produktmessage wird ein Request an die Api "/api/bizsuite/product" geschickt mit allen erforderlichen Daten für die weiterverarbeitung. Hierfür werden die Daten in das ViewModel "ProductSyncModel" gemappt.

  2. Für die AssortmentCustomerMessage wird ein Request and die Api "/api/bizsuite/assortment/customer" geschickt mit allen erforderlichen Daten für die weiterverarbeitung. Hierfür werden die Daten in das ViewModel "CustomerPortalAssortmentCustomerSyncModel" gemappt.

Besonderheiten​

Seit der neuen Synchronisation gibt es die möglichkeit das die Produkte Validiert werden. Dafür muss im Frontent für den Verkaufkskanal eine der beiden Qualitätsprüfungen aktiviert werden. Danach werde bei der Synchronisation im Prozessor die Produkte darauf Validiert und nur Sychronisiert wenn diese auch bestehen.

Qualitätsprüfung für die Verkaufskanäle