Development Guide
Wie funktioniert der Datenaustausch?
- Pimcore schreibt für einen Exportauftrag eine JSON-Datei auf ein konfiguriertes Verzeichnis auf dem Dateisystem
- 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. - Sobald Shopware die Verarbeitung abgeschlossen hat, wird die
.work
-Datei zu.done
umbenannt - Pimcore verarbeitet die
.done
-Datei und versendet einen Importbericht per Mail. Pimcore verschiebt die.done
-Datei nachPIMCORE_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.