Zum Inhalt springen

State Machine importieren

Der Import liest eine JSON-Datei aus dem Export und fügt ihren Inhalt diesem Shop hinzu. Bis zum letzten Schritt wird nichts geschrieben, und gelöscht wird nie etwas.

Öffnen Sie das Menü neben State Machine erstellen und wählen Sie Import.

Der Import-Assistent mit leerem Dateifeld und der Schaltfläche „Datei wählen"

Sobald die Datei gelesen ist, wird der Shop sofort mit ihr verglichen — und die Schrittleiste wächst um das, was dieser Vergleich ergeben hat: ein Schritt je zu importierender Maschine, dazu ein Schritt für Namen, falls welche fehlen.

Der Assistent nach dem Einlesen: eine State Machine gefunden

Jede Maschine aus der Datei wird mit ihren Auswirkungen aufgeführt: wie viele Zustände und Übergänge angelegt würden und wie viele Einträge blockiert sind.

Der Maschinen-Schritt mit vorhandener Maschine und Kern-Warnung

  • Grün — die Maschine ist bereits in diesem Shop und wird erweitert.
  • Blau — die Maschine ist neu und wird angelegt.

Maschinen, auf die Shopware selbst angewiesen ist (order.state, order_transaction.state, order_delivery.state sowie die Capture-Maschinen), tragen hier eine Warnung: Änderungen daran wirken sich auf die Bestellabwicklung aus. Importieren lassen sie sich trotzdem — siehe Kern-State-Machines.

Jede gewählte Maschine bekommt einen eigenen Schritt, der genau zeigt, was der Import mit ihr täte.

Der Schritt je Maschine: links das Diagramm, rechts die Liste der Übergänge

Das Diagramm verwendet dieselben Farben wie die Liste:

FarbeBedeutung
GrünBereits in diesem Shop — bleibt unverändert
BlauNeu aus der Datei — wird angelegt
Grau gestricheltAbgewählt — wird nicht importiert
RotBlockierender Konflikt — muss vorher gelöst werden

Entfernen Sie den Haken bei allem, was Sie nicht möchten. Ein Klick auf einen Zustand oder eine Aktionsbeschriftung im Diagramm schaltet ihn um, genau wie die Checkboxen in der Leiste — und ein abgewählter Zustand graut die Übergänge aus, die von ihm abhängen, denn ein Übergang braucht beide Enden.

Mit Tabelle tauschen Sie das Diagramm gegen eine Liste über die volle Breite, mit Leiste ausblenden bekommt das Diagramm die ganze Breite, und über die Zoom-Steuerung oder Einpassen rahmen Sie eine große Maschine. Ziehen Sie an beliebiger Stelle der Fläche, um sie zu verschieben.

Konflikte aus dem Vergleich werden in diesem Schritt aufgelistet, samt der Wahl, wie sie aufgelöst werden — etwa ob ein vorhandener Name bleibt oder ersetzt wird.

Shopware verlangt für alles, was es speichert, einen Namen in der Standardsprache des Shops. Fehlt er in der Datei, fragt der Assistent hier danach und lässt Sie erst weiter, wenn jedes markierte Feld gefüllt ist.

Der Namen-Schritt mit einer Zeile je Objekt und einer Spalte je Shop-Sprache

Hier erscheinen nur Objekte, die neu angelegt werden. Was der Shop bereits hat, behält seinen Namen — das Umbenennen vorhandener Objekte ist eine eigene Entscheidung und wird am Konflikt im vorherigen Schritt getroffen.

Die Tabelle hat eine Zeile je Objekt und eine Spalte je Sprache Ihres Shops. Alle Felder sind bearbeitbar — hier vergeben Sie also auch einen Namen, den die Datei nie enthalten hat.

Die Datei stammt aus einem anderen Shop, der nicht dieselben Sprachen haben muss wie dieser. Es gilt:

In der DateiWas der Assistent tut
Ein Name in Ihrer StandardspracheWird eingetragen. Nichts zu tun.
Kein Name in Ihrer Standardsprache, aber einer in einer anderen SpracheTrägt diesen Namen als Vorschlag ein, sodass Sie ihn nur bestätigen oder überschreiben. Solange das Feld leer ist, geht es nicht weiter.
Überhaupt kein Name, in keiner SpracheDas Feld bleibt leer und ist markiert. Tragen Sie einen ein — vorher lässt sich der Schritt nicht verlassen.
Nichts für eine Ihrer weiteren SprachenDas Feld bleibt leer. Das ist zulässig: Das Objekt wird ohne Namen in dieser Sprache angelegt.

Pflicht ist ausschließlich die Standardsprache, weil Shopware einen übersetzbaren Datensatz ohne sie nicht speichert. Die übrigen Spalten sind optional und lassen sich später am Objekt selbst nachtragen.

Legt der Import nichts an, was benannt werden müsste, entfällt der Schritt vollständig.

Der letzte Schritt listet auf, was geschrieben wird.

Die Zusammenfassung mit dem, was angelegt wird

Ein Klick auf Importieren schreibt es. Jede Maschine wird in einer eigenen Transaktion geschrieben, sodass ein Problem bei einer die anderen nicht halbfertig zurücklässt. Unmittelbar vor dem Schreiben wird der Shop serverseitig noch einmal mit der Datei verglichen — hat sich zwischenzeitlich etwas geändert, bricht der Import ab, statt darüber zu schreiben.

  • Er löscht nie. Ein Zustand oder Übergang, der in diesem Shop existiert, aber nicht in der Datei steht, bleibt.
  • Er überschreibt nie einen Namen, außer Sie haben es am Konflikt ausdrücklich so gewählt.
  • Er verschiebt nie eine Bestellung. Nur die Definition der Maschine ändert sich; Entitäten behalten den Zustand, in dem sie stehen.

Eine nützliche Folge davon: Ein zweiter Import derselben Datei ändert nichts mehr.