8. Transaktion: OrderInOnlineShop

Die Transaktion OrderInOnlineShop verwendet die gleichen Nachrichten und die gleichen Zustände wie die im vorherigen Abschnitt beschriebene Transaktion Order. Ein velo..connect-konformer Server, der diese Transaktion unterstützt, gibt in seinem velo..connect-Profil mit der Eigenschaft OrderInOnlineShop.TransactionID eine feste TransactionID bekannt, die diese spezielle Transaktion von den Transaktionen vom Typ Order unterscheidet.

Sinn dieser Transaktion ist es, dem Käufer die Möglichkeit zu geben, einen Warenkorb in einem vorhandenen Online-Shop-System mit einer Bestellung in seinem Warenwirtschaftssystem abzugleichen. Insbesondere folgende Szenarien sollten möglich sein:

Um hierfür auf Serverseite die Voraussetzungen zu schaffen, muss ein velo..connect-konformer Server, der die Transaktion OrderInOnlineShop implementiert, folgende Regeln einhalten:

Regel: OrderInOnlineShop (Server). 

  1. Es existiert stets eine Transaktionsinstanz mit der fixierten TransactionID.
  2. Bevor ein Request gemäß den Regeln für die Transaktion Order abgearbeitet wird, wird der Transaktionskontext mit dem Warenkorb des Käufers im Onlineshop abgeglichen. Dieser Abgleich ist so zu implementieren, dass der Warenkorb nicht verändert wird und ein Abschluß der Bestellung im Shopsystem die gleiche Bestellung auslösen würde, wie ein Abschluß der Bestellung über die velo..connect-Schnittstelle. Abhängig davon, ob der Warenkorb leer ist oder nicht, befindet sich danach die Transaktionsinstanz im Startzustand oder im Updatezustand.
  3. Nachdem der Transaktionskontext gemäß der Verarbeitung der Anfrage des Clients modifiziert wurde, ist der Warenkorb des Shopsystems mit dem Transaktionskontext abzugleichen. Dieser Abgleich ist so zu implementieren, dass der Transaktionskontext nicht verändert wird und ein Abschluß der Bestellung im Shopsystem die gleiche Bestellung auslösen würde, wie ein Abschluß der Bestellung über die velo..connect-Schnittstelle. Ist der Request ein FinishOrderRequest, so bedeutet dieser Abgleich insbesondere, dass der Warenkorb zu löschen ist. (Die Bestellung ist ja bereits erfolgt)

Welche der Transaktionen Order oder OrderInOnlineShop ein Server implementiert, bleibt der Entscheidung des Verkäufers überlassen. Abhängig von den Voraussetzungen kann es durchaus einfacher sein, die velo..connect-Schnittstelle auf einem vorhandenen Online-Shop aufzusetzen. Für den Implementeur eines velo..connect-Clients bedeutet das, dass er mit den Besonderheiten der Transaktion OrderInOnlineShop zurecht kommen muss. Im einzelnen ist zu beachten: