Benutzer-Werkzeuge

Webseiten-Werkzeuge


tutorials:t3_createorderforexistingcustomer

Auftrag anlegen per cURL

In diesem Beispiel legen wir einen Auftrag für einen Bestandskunden im System an. Wir benutzen hier keinen Webbrowser sondern das Kommandozeilen-Tool „cURL“1), da wir POST-Anfragen verwenden müssen. Hinweise auf weitere Tools finden sie unter Hilfsprogramme.

Schritt 1: Besucher registrieren

Im ersten Schritt registrieren wir einen Besucher (Visitor) indem wir eine Information (dStore: VisitorInformation) im System zu ihm hinterlegen. Das ist im Beispiel eine anonymisierte IP-Adresse. Wir verwenden hier mi_InsertVisitorInformation_Pu

Jeder Visitor hat eine eindeutige ID, die vor dem Aufruf erzeugt wird (falls nicht bereits bekannt). Diese UniqueID ist eine dauerhafte ID die in der Regel in einem Cookie und der Session gespeichert wird, jedoch nicht mit der Session-ID übereinstimmt.

curl -X POST 'http://dbap-demo.dstore.de/default/engine/mi_InsertVisitorInformation_Pu?UniqueID=gah3736840528&VisitorInformationTypeID=1&VisitorInformation=192.168.1.x'

Schritt 2: Warenkorb füllen

Nun legen wir den Artikel mit der ID 25 in den Warenkorb (dStore: Trolley) des Besuchers mit der UniqueID „gah3736840528“. Wir verwenden dazu om_InsertIntoTrolley_Pu. Auf die verschiedenen Möglichkeiten Artikel zu finden und die verschiedenen Arten/IDs ihn zu referenzieren gehen wir an anderer Stelle ein.

curl -X POST 'http://dbap-demo.dstore.de/default/engine/om_InsertIntoTrolley_Pu?UniqueID=gah3736840528&NodeID=25&IsTreeNodeID=1&Quantity=1'

Schritt 3: Login

Nun loggen wir den Kunden (dStore: Person) mit seinen Anmeldedaten (PersonIdentificationValues) ein. Wir verwenden hierzu pm_CheckPersonIdentity_Pu. In diesem Beispiel wird das Passwort im Klartext übergeben, in der Praxis werden bei Kundenanlage die Passwörter gehasht.

In dem Beispiel läuft uns nun das Trennzeichen "¶" über den Weg. Dies findet immer Anwendung wenn in einem Parameter mehrere Werte übergeben werden müssen.

curl -X POST 'http://dbap-demo.dstore.de/default/engine/pm_CheckPersonIdentity_Pu?UniqueID=gah3736840528&PersonIdentificationValues=peter.anders@dbap.at¶Sonne&PersonTypeID=1'

Als Rückgabe erhalten wir die PersonID, hier in diesem Beispiel die „16“. Diese ID benötigen wir hinterher zur Anlage des Auftrags und müssen uns diese merken.

<Statement Type="Procedure">
	<MetaInformation>
		<SQLString>exec pm_CheckPersonIdentity_Pu @PersonID=@PersonID OUT ,
			@PersonTypeID=1 , @UniqueID='gah3736840528' ,
			@PersonIdentificationValues='peter.anders@dbap.at¶Sonne'</SQLString>
		<Information Type="ExecutionTime">3 ms</Information>
	</MetaInformation>
	<ResultSet>
		<ColumnDefinition>
			<Column Name="PersonID">
				<Type>INTEGER</Type>
			</Column>
		</ColumnDefinition>
		<Rows>
			<Row>
				<Column Name="PersonID"><![CDATA[16]]></Column>
			</Row>
		</Rows>
	</ResultSet>
	<OutputParameter Name="PersonID" Type="INTEGER" IsNull="false">
		16</OutputParameter>
</Statement>

Schritt 4: Auftrag anlegen

Als letztes wird der Auftrag nun mittels om_CopyFromTrolleyToOrder_Pu angelegt. Auf die Zahlungs- und Versandarten gehen wir an anderer Stelle gesondert ein.

curl -X POST 'http://dbap-demo.dstore.de/default/engine/om_CopyFromTrolleyToOrder_Pu?UniqueID=gah3736840528&PersonID=16&PaymentTypeID=2&ShippingTypeID=1'

Der Auftrag hat die OrderID 10001 bekommen:

<Statement Type="Procedure">
	<MetaInformation>
		<SQLString>exec om_CopyFromTrolleyToOrder_Pu
			@GeneratedOrderID=@GeneratedOrderID OUT , @ShippingTypeID=1 ,
			@PaymentTypeID=2 , @PersonID=16 , @UniqueID='gah3736840528'
		</SQLString>
		<Information Type="ExecutionTime">210 ms</Information>
	</MetaInformation>
	<OutputParameter Name="GeneratedOrderID" Type="INTEGER"
		IsNull="false">10001</OutputParameter>
</Statement>
tutorials/t3_createorderforexistingcustomer.txt · Zuletzt geändert: 13.11.2014 (Externe Bearbeitung)