Das Ziel des Änderungsdienstes ist es, dass eine in moveIT WEBCON bereits konfigurierte und an den Warenkorb übergebene Position im Nachhinein erneut aufgerufen und bearbeitet werden kann. Der angebundene WebShop (Endpoint) muss bei der erneuten Übergabe erkennen, dass es sich um eine Änderung handelt, und wissen, welche bestehende Position mit der geänderten Position ersetzt werden muss.
Prozessablauf
Der Prozess der Konfiguration und nachträglichen Änderung verläuft in fünf wesentlichen Schritten:
Initiale Konfiguration und Übergabe: Nach der Modellkonfiguration übergibt der User die Daten in den Warenkorb. Dabei wird ein JSON-Datensatz mit allen Konfigurationsinformationen, inklusive einer eindeutigen GUID je Position, an den Endpoint gesendet.
Anlage im Warenkorb: Der Endpoint nimmt das JSON entgegen und legt eine Position im Warenkorb an. Auch wenn die Konfiguration aus mehreren Positionen besteht, darf nur eine einzige Warenkorb-Position erzeugt werden. Diese Warenkorb-Position muss zwingend die GUID der "Position 1" aus dem JSON speichern.
Aufruf zur Bearbeitung: Bietet der Warenkorb einen „Bearbeiten“- oder „Ändern“-Button an, wird der iFrame mit der Basis-URL von moveIT WEBCON geöffnet. Hierbei muss der Parameter
&BasePosition=%GUID%angehängt werden (z. B.&BasePosition=f2c31881...), um exakt diese Konfiguration wieder aufzurufen.Abschluss der Änderung: Schließt der User die Änderung ab, wird erneut das gesamte, aktualisierte JSON an den Endpoint übertragen. Der Unterschied zur initialen Übergabe ist, dass das Feld
BasePositionnun mit der ursprünglichen GUID gefüllt ist und für sämtliche Positionen (inklusive Position 1) komplett neue GUIDs generiert wurden.Ersetzen im WebShop: Der WebShop-Controller erkennt am gefüllten
BasePosition-Feld, dass es sich um eine Änderung handelt. Er verwirft die Ursprungsposition im Warenkorb, überschreibt sie mit der geänderten Position und speichert die neu generierte GUID von Position 1 ab, falls später ein erneuter Änderungsvorgang gestartet wird.
Relevante URL-Parameter
Für die Steuerung des Änderungsdienstes sind spezifische URL-Parameter erforderlich bzw. möglich:
&BasePosition=Dieser Parameter muss beim Aufruf einer zu ändernden Konfiguration mit der GUID der Position 1 belegt werden. Er dient dem WebShop nach Abschluss der Konfiguration als Erkennungsmerkmal dafür, welche Position ersetzt werden soll.&AdditionalResponseData=Dies ist ein optionaler URL-Parameter, dessen Inhalt beim Aufruf durchgeschleust und bei der Übergabe an den Warenkorb wieder mitgegeben wird.Der Parameter kann frei vom Kunden belegt werden.
Ein möglicher Anwendungsfall ist die Belegung mit einem Wert wie “ChangeAndReplace”, um dem WebShop einen zusätzlichen Trigger für den Überschreibungs-Prozess zu liefern.
Die genaue Nutzung und Reaktion auf diesen Parameter obliegt der Implementierung des Kunden.
JSON-Datenstruktur (Beispiel für den Endpoint)
Das folgende Beispiel zeigt auszugsweise die JSON-Struktur, in der ersichtlich ist, wo die BasePosition und die GUID der Unterpositionen übertragen werden.
{
"LeafletId": "997-20061819-24-24",
"GUID": "a1a22854-44af-944a-2412-dddfdf8d325a2",
"DocTyp": 2,
"EnvironmentID": 997,
"BasePosition": "a1a22854-44af-944a-2412-dddfdf8dfdfa",
"AdditionalResponseData": "",
"1": {
"Model": "G_Gliederung",
"ModelDescription": "Gliederung für Garagentor",
"GrossPrice": 123.45,
"PurchasePrice": 100.22,
"Currency": "EUR",
"Quantity": 1,
"Unit": "Stk",
"ImageUrl": "isswebdata\\Data\\WebConfigGraphics\\0104-6\\PosGraphic_1.jpg",
"ProductText": "<div>text</div>",
"GUID": "f2c31881-49bd-939a-5414-efdf288325f7",
"EAN": "",
"ReferenceArticleNumber": "",
"GLN": "1222321"
}
}