Zum Hauptinhalt springen

Development Guide

Wie funktioniert der Datenaustausch?

  1. Pimcore schreibt für einen Exportauftrag eine JSON-Datei auf ein konfiguriertes Verzeichnis auf dem Dateisystem
  2. Shopware verarbeitet die .json-Datei über einen bereitgestellten Messenger-Transport, die Dateiendung der JSON-Datei wird vor Verarbeitung in .work umbenannt, um doppelte Import-Prozesse zu vermeiden.
  3. Sobald Shopware die Verarbeitung abgeschlossen hat, wird die .work-Datei zu .done umbenannt
  4. Pimcore verarbeitet die .done-Datei und versendet einen Importbericht per Mail. Pimcore verschiebt die .done-Datei nach PIMCORE_ROOT/var/logs/shopware/

Pimcore Exportdaten prüfen

Export über CLI

Um bei der Entwicklung die Ausgabe des Exportauftrags zu prüfen kann ein Export neben der Einplanung über die Pimcore Admin-Oberfläche auch per CLI gestartet werden.

php bin/console twocream:shopware-connector:export example@twocream.com shop_stage --products --attributes --pretty

In diesem Beispiel wird ein Export mit den Adaptern mit den Package-Namen products und attributes für das Zielsystem shop_stage ausgeführt werden. Die Berichte über den Export werden an example@twocream.com gesendet. Mit --pretty wird angegeben, dass das JSON in lesbarer Form und nicht minifiziert erstellt wird.

Für mehr Details, siehe: Pimcore Export Befehl

Queue System

Wird ein Exportauftrag über die Admin-Oberfläche gestartet, muss zur Ausführung der Warteschlange folgender Befehl verwendet werden:

php bin/console twocream:shopware-connector:queue

Shopware Import

Um Exportaufträge in Shopware zu importieren wird zum Testen der Entwicklungen neben dem Symfony Messenger ein CLI-Befehl bereitgestellt.

Testing

Für Testing/Debugging-Zwecke, innerhalb Entwicklungen, kann folgender Befehl zum Import einer einzelnen Datei genutzt werden. Dies hat den Vorteil, dass die ursprünglche .json-Datei erhalten bleibt und nicht nach Import gelöscht wird. So ist es möglich während der Implementierung des Import-Modules fortlaufend zu testen ohne neue Exportaufträge einzuplanen.

php bin/console twocream:json:import path/to/file.json

Für mehr Details, siehe: JSON-Import Befehl

Messenger-Transport

Um Exportaufträge über die Warteschlange zu importieren, muss der Symfony Messenger-Transport json konsumiert werden, dazu muss folgender Befehl in Shopware ausgeführt werden:

php bin/console messenger:consume json

Der Messenger-Transport übernimmt die Verarbeitung der JSON-Dateien, die im in der Konfiguration definierten Verzeichnis gespeichert sind.