Bestellung in Verbindung mit Online-Shop (Transaktion: OrderInOnlineShop)
Wir gehen von folgendem Szenario aus: Der Käufer hat im Online-Shop des Verkäufers bereits einen Artikel in den Warenkorb gelegt und hat in seinem eigenen Warenwirtschaftssystem eine Bestellung mit weiteren Artikeln angelegt. Diese beiden Bestellungen sollen synchronisiert und abgeschlossen werden. Der Client verwendet hierzu die Transaktion OrderInOnlineShop. Als erstes informiert er sich vermöge der Anfrage
https://shop.beispielserver.com/vc_order.jsp?BuyersID=127654&Password=secret&RequestName=ViewOrderRequest&TransactionId=online-basket
über den Inhalt des Warenkorbs. Die abweichende URL und die TransactionID hat er dem veloconnect-Profil des Servers entnommen.
Folgende Antwort wird zurückgeliefert.
<?xml version="1.0" encoding="iso-8859-1" ?>
<OrderResponse xmlns="urn:veloconnect:order-1.1"
xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-1.0"
xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-1.0"
xmlns:vct="urn:veloconnect:transaction-1.0">
<vct:BuyersID>B127645</vct:BuyersID>
<vct:ResponseCode>200</vct:ResponseCode>
<vct:TransactionID>online-basket</vct:TransactionID>
<vct:StatusCode>2</vct:StatusCode>
<OrderResponseLine>
<cbc:Quantity quantityUnitCode="PK">5</cbc:Quantity>
<cac:Item>
<cbc:Description>Speichen DD 2,0x1,8x 263 mm, silber
Race,Niro, mit Messingnippel</cbc:Description>
<cbc:PackQuantity quantityUnitCode="EA">100</cbc:PackQuantity>
<cac:BuyersItemIdentification>
<cac:ID>7285</cac:ID>
</cac:BuyersItemIdentification>
<cac:SellersItemIdentification>
<cac:ID>42213526300</cac:ID>
</cac:SellersItemIdentification>
<cac:StandardItemIdentification>
<cac:ID identificationSchemeID="EAN/UCC-13">4032191511108</cac:ID>
</cac:StandardItemIdentification>
<cac:BasePrice>
<cbc:PriceAmount amountCurrencyID="EUR">34.90</cbc:PriceAmount>
<cbc:BaseQuantity quantityUnitCode="PK">1</cbc:BaseQuantity>
</cac:BasePrice>
<cac:BasePrice>
<cbc:PriceAmount amountCurrencyID="EUR">29.50</cbc:PriceAmount>
<cbc:BaseQuantity quantityUnitCode="PK">1</cbc:BaseQuantity>
<cbc:MinimumQuantity quantityUnitCode="PK">10</cbc:MinimumQuantity>
</cac:BasePrice>
<cac:RecommendedRetailPrice>
<cbc:PriceAmount amountCurrencyID="EUR">0.70</cbc:PriceAmount>
<cbc:BaseQuantity quantityUnitCode="EA">1</cbc:BaseQuantity>
</cac:RecommendedRetailPrice>
</cac:Item>
<cac:UnitPrice amountCurrencyID="EUR">29.50</cac:UnitPrice>
<Availability>
<Code>available</Code>
</Availability>
</OrderResponseLine>
</OrderResponse>
Durch Abgleich mit den eigenen Stammdaten oder durch Abfrage beim Benutzer ermittelt der Client die interne Artikelnummer und fügt den Inhalt des Warenkorbs in die Bestellung ein. Die noch nicht im Warenkorb befindlichen Positionen dieser Bestellung werden dem Server durch Übermittlung folgenden XML-Dokuments an die URL https://shop.beispielserver.com/vc_order.jsp
mitgeteilt.
<?xml version="1.0" encoding="iso-8859-1" ?>
<UpdateOrderRequest xmlns="urn:veloconnect:order-1.1"
xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-1.0"
xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-1.0"
xmlns:vct="urn:veloconnect:transaction-1.0">
<vct:BuyersID>B127645</vct:BuyersID>
<vct:Credential><vct:Password>secret</vct:Password></vct:Credential>
<vct:TransactionID>online-basket</vct:TransactionID>
<OrderRequestLine>
<cac:SellersItemIdentification>
<cac:ID>42038057500</cac:ID>
</cac:SellersItemIdentification>
<cbc:Quantity quantityUnitCode="EA">20</cbc:Quantity>
<cac:BuyersItemIdentification>
<cac:ID>7290</cac:ID>
</cac:BuyersItemIdentification>
</OrderRequestLine>
<OrderRequestLine>
<cac:SellersItemIdentification>
<cac:ID>52090311100</cac:ID>
</cac:SellersItemIdentification>
<cbc:Quantity quantityUnitCode="PK">4</cbc:Quantity>
<cac:BuyersItemIdentification>
<cac:ID>7295</cac:ID>
</cac:BuyersItemIdentification>
</OrderRequestLine>
</UpdateOrderRequest>
Der Server antwortet hierauf so:
Nunmehr sind Warenkorb und Bestellung abgeglichen. Würde der Benutzer im Online-Shop den aktuellen Warenkorb abrufen, enthielte dieser genau die gleichen drei Positionen, die die Bestellung im eigenen Warenwirtschaftssystem enthält. Die Bestellung wird nun mit der Anfrage
abgeschlossen, worauf der Server die erwartete komplette Bestellung zurückliefert.
Damit ist nun auch der Warenkorb im Online-Shop wieder leer und die Bestellung im Warenwirtschaftssystem des Käufers als bestellt markiert.