Befehl 'OrderProcess'
Dieser Befehl übergibt eine Bestellung. Die Bestellung muss zuvor
vom Befehl OrderPrepare gesperrt
worden sein. Sobald die Ausführung des Befehls "OrderProcess" beginnt, kann die
Bestellung nicht mehr mit
OrderCancel storniert
werden.

Parameterwerte
- http://host_name/pfad/
- (Obligatorisch) Der vollständig qualifizierte Name Ihres WebSphere
Commerce Servers und der Konfigurationspfad.
- forUser
- Die Anmelde-ID des Benutzers in dessen Namen der Befehl ausgeführt wird;
nur eine Person mit der Berechtigung, Bestellungen verarbeiten zu können,
kann diesen Parameter angeben.
- forUserId
- Identisch mit "forUser"; hier wird jedoch der Benutzer mit
einer internen Benutzer-ID identifiziert, wie in der Tabelle
USERS angegeben.
- langId
- Setzt die bevorzugte Sprache für die Dauer der Sitzung oder setzt die bevorzugte
Sprache zurück; die unterstützten Sprachen sind in der Tabelle
STORELANG enthalten.
- storeId
- Die Referenznummer des Geschäfts, bei dem
die Bestellung aufgegeben werden soll. Dieser Wert wird
ignoriert, wenn nicht vor Auflösung der Bestellung ein Fehler
auftritt. Er wird verwendet, um die
Ausnahmebedingungsbehandlung für das richtige Geschäft aufzurufen.
- orderId
- (Obligatorisch) Die Referenznummer der Bestellung.
- billtoAddressId
- Die Referenznummer der Adresse, für die die Rechnung gestellt werden soll.
- field1, field2 und field3
- Anpassbare Felder.
- notifyMerchant
- Gibt an, ob das Geschäft benachrichtigt werden soll, wenn die
Bestellbearbeitung abgeschlossen ist.
1=Ja
0=Nein
- notifyShopper
- Gibt an, ob der Kunde benachrichtigt werden soll, wenn die
Bestellbearbeitung abgeschlossen ist.
1=Ja
0=Nein
- quoteExpiredURL
- Gibt die URL an, zu der die Umleitung erfolgen soll, wenn
die Bestellgesamtsumme entsprechend der vom Parameter
"quoteExpiryPolicy" angegebenen Ablaufmethode abgelaufen ist.
- quoteExpiryPolicy
- Definiert das Verhalten des Befehls, wenn die
Bestellgesamtsumme abläuft, oder wenn das Fulfillment-Center für einen Bestellartikel während der Lagerbestandzuordnung geändert wird. Die Bestellgesamtsumme läuft ab, wenn die aktuelle Uhrzeit
größer-gleich der Zeitmarke der letzten Aktualisierung der
Bestellung plus der Anzahl der in der Spalte
QUOTEGOODFOR der Tabelle
STORE angegebenen Sekunden ist.
Dieser Parameter kann drei Werte annehmen:
- alwaysProceed=Nach der erneuten
Berechnung der Bestellgesamtsumme stets mit der Verarbeitung der
Bestellung fortfahren.
- stopOnBiggerTotal=Mit der Verarbeitung der
Bestellung fortfahren, wenn die neu berechnete Bestellgesamtsumme
unverändert oder kleiner als die vorhergehende Bestellgesamtsumme
ist.
Andernfalls wird an eine von "quoteExpiredUrl" angegebene URL umgeleitet.
- neverProceed= stets an eine vom Parameter "quoteExpiredUrl"
angegebene URL umleiten.
- notifyOrderSubmitted
- Gibt an, ob der Kunde benachrichtigt werden soll, wenn die
Bestellung erfolgreich an die Verarbeitung übergeben wurde.
1=Ja
0=Nein (Standard)
- availabilityChangeURL
- Gibt die URL an, an die die Umleitung erfolgen soll, wenn sich die geschätzte Verfügbarkeitszeit plus die Lieferverzögerung um mehr als das vom Parameter 'maxAvailabilityChange' angegebene Zeitintervall verzögern (als Ergebnis der Zuordnung bzw. Nachbestellung von Lagerbestand). Dieser Parameter wird ignoriert, wenn die ATP-Lagerbestandzuordnung nicht aktiviert ist.
- maxAvailabilityChange
- Gibt das in der Beschreibung des Parameters 'availabilityChangeURL' erwähnte Zeitintervall (in Sekunden) an. Der Standardwert ist 3600 (eine Stunde). Dieser Parameter wird ignoriert, wenn der Parameter 'availabilityChangeURL' nicht angegeben wurde, oder wenn die ATP-Lagerbestandzuordnung nicht aktiviert ist.
- noInventoryURL
- Gibt die URL an, an die die Umleitung erfolgen soll, wenn
Bestellartikel in der Bestellung nicht zugeordnet oder in den Lieferrückstand gestellt werden können. Dieser Parameter wird ignoriert, wenn die ATP-Lagerbestandzuordnung nicht aktiviert ist.
- tcId
- Die Kennung eines Liefer- und Zahlungsbedingungs-Objekts (siehe die Tabelle TERMCOND). Wenn diese ID angegeben ist und eine Liefer- und Zahlungsbedingung für die Zahlung (PaymentTC) identifiziert, und wenn diese Liefer- und Zahlungsbedingung einen Mitglieds-ID und einen Kurznamen für die Adresse angibt (siehe die PaymentTC-Zuordnung), werden diese Mitglieds-ID und der
Adressenkurzname zum Ermitteln der Rechnungsadresse verwendet. In diesem Fall wird der Parameter 'billToAddressId' ignoriert.
Hinweise zu Zahlungen
Der Befehl "OrderProcess" bearbeitet nicht selbst
Zahlungen. Zum Bearbeiten von Zahlungen wird die
Schnittstellenklasse DoPaymentCmd
verwendet, die von "DoPayment"-Task-Befehlen implementiert wird. Die
von "OrderProcess" an diesen Befehl übergebenen Parameter können
beliebige Parameter sein, normalerweise implementieren sie jedoch
Kreditkarteninformationen.
WebSphere Commerce enthält zwei Implementierungsklassen
des Task-Befehls, die Klasse
DoPaymentCmdImpl
und die Klasse
DoPaymentMPFCmdImpl. Die Klasse "DoPaymentCmdImpl" ist eine Beispielimplementierung,
die zeigt, wie eine Implementierung des Task-Befehls "DoPayment"
geschrieben werden kann, die mit dem Befehl "OrderProcess" verwendet
werden kann.
Die Klasse "DoPaymentMPFCmdImpl" ist die Standardimplementierungsklasse für
"DoPaymentCmd" und ist für die Verwendung mit IBM WebSphere Payment Manager, Version 3.1
konzipiert. Die Klasse beinhaltet die Unterstützung für die Business-to-Business-Funktionen,
die mit diesem Release von WebSphere Commerce Business Edition eingeführt werden.
Hinweise zur Bestellbenachrichtigung
Um die Bestellbenachrichtigung zu konfigurieren, müssen Sie die
folgenden Schritte ausführen:
- Aktivieren Sie
ausgehende Nachrichten.
- Erstellen Sie
Nachrichtenerstellungsschablonen zum
Erstellen von Nachrichten zur Bestellungsbenachrichtigung.
Beispiel 1
Mit dem folgenden Befehl wird die Aufgabe einer Bestellung mit der
Referenznummer 3 verarbeitet:
http://myhostname/webapp/wcs/stores/servlet/OrderProcess?orderId=3
Beispiel 2
Vorausgesetzt, dass Payment Manager bereits eingerichtet wurde,
übergibt dieser Befehl die Zahlungsinformationen des Kunden an
Payment Manager.
Der Parameter "policyId=200" bezieht sich auf die Methode
"OfflineCard", die das Geschäftsmodell für
Payment Manager standardmäßig verwendet.
http://myhostname/webapp/wcs/stores/servlet/OrderProcess?storeId=34
&orderId=556677&policy=200&cardBrand=Visa
&cardNumber=41111111111111111&cardExpiryMonth=12&cardExpiryYear=2001
Hinweis: Der Parameter "payMethodId" wird nur zur Sicherstellung
der Abwärtskompatibilität unterstützt.
Verwenden Sie für neue Payment Manager-Kassetten und neue
Business-to-Business-Funktionen statt dessen den Parameter
"policyId" (wie in Beispiel 2). Eine Liste der definierten
Zahlungsrichtlinien finden Sie unter dem unten aufgeführten Link.
Die Klasse "DoPaymentMPFCmdImpl" unterstützt einen zusätzlichen Parameter namens
"tcId", über den die ID der Zahlungsbedingungen angegeben wird, die für eine Bestellung
verwendet werden sollen. Die Zahlungsbedingungen müssen Teil der allgemeinen
Zahlungsbedingungen gemäß den Verträgen sein, die den Bestellartikeln zugeordnet
sind. Verwenden Sie zur Unterstützung der Auswahl einer JSP-Datei mit allgemeinen
Zahlungsbedingungen die "UsablePaymentTCListDataBean". Der Parameter 'tcId' ist obligatorisch, wenn einem oder mehreren der Verträge für diesen Bestellartikel eine Liefer- und Zahlungsbedingung für die Zahlung zugeordnet ist.
Verhalten
- Der Befehl 'OrderProcess' ruft den Task-Befehl 'ProcessOrder' auf, um die folgenden Aktionen auszuführen:
- Wenn die Bestellung nicht gesperrt ist (was anzeigt, dass die Bestellung seit ihrer Vorbereitung durch den Befehl 'OrderPrepare' nicht geändert wurde), oder wenn der Bestellstatus nicht 'P', 'I', 'E', 'W', 'N' oder 'B' lautet, wird eine Ausnahmebedingung des Typs 'ECApplicationException' ausgegeben.
- Wenn der Wert der Spalte QUOTEGOODFOR in der Tabelle
STORE ungleich NULL ist, die Parameter
'quoteExpiryPolicy' und 'quoteExpiredURL' angegeben wurden und die Bestellung den
Status 'P', 'I', 'W' oder 'N' aufweist, prüft der Befehl die Zeitmarke der letzten Aktualisierung der Bestellung.
Ist die aktuelle Uhrzeit größer-gleich der Zeitmarke
der letzten Aktualisierung plus der Anzahl der in der Spalte
QUOTEGOODFOR angegebenen Sekunden, ruft der Befehl 'OrderProcess' den Task-Befehl
PrepareOrder auf und führt entsprechend dem Wert von
'quoteExpiryPolicy' eine der folgenden Aktionen aus:
- Wenn die neu berechnete Bestellgesamtsumme unverändert ist
und der Parameter "quoteExpiryPolicy" dies zulässt, wird die
Verarbeitung normal fortgesetzt.
- Wenn die neu berechnete Bestellgesamtsumme geringer ist und
der Parameter "quoteExpiryPolicy" dies zulässt, wird die
Verarbeitung normal fortgesetzt.
- Wenn die neu berechnete Bestellgesamtsumme höher ist und der
Parameter "quoteExpiryPolicy" dies zulässt, wird die Verarbeitung
normal fortgesetzt.
- Andernfalls wird die Bestellung nicht verarbeitet, sondern es
erfolgt eine Umleitung zu der vom Parameter "quoteExpiredURL"
angegebenen URL.
- Wenn ATP-Lagerbestandzuordnung aktiviert ist, geschieht Folgendes:
- Alle Bestellartikel, die noch nicht zugeordnet bzw. in den Lieferrückstand gestellt wurden, oder die seit der letzten Zuordnung bzw. Nachbestellung geändert wurden, werden durch Aufrufen des Task-Befehls
AllocateInventory zugeordnet oder in den Lieferrückstand gestellt (falls keine Zuordnung möglich ist).
- Wenn Bestellartikel nicht zugeordnet bzw. in den Lieferrückstand gestellt werden können:
- Ist der Parameter 'noInventoryURL' angegeben, gibt der Befehl eine Umleitung an diese URL zurück.
- Andernfalls wird der Bestellstatus nach 'L' geändert und der Befehl wird zurückgegeben.
- Ist der Parameter 'availabilityChangeURL' angegeben, und die geschätzten
Verfügbarkeitszeiten für Bestellartikel verzögern sich bei der Zuordnung bzw. Nachbestellung um mehr als den vom Parameter 'maxAvailabilityChange' angegebenen Wert, gibt der Befehl eine Umleitung an diese URL zurück.
- Wenn die Bestellung durch den Task-Befehl 'AllocateInventory' entsperrt wurde
(was anzeigt, dass sich das Fulfillment-Center für einen Bestellartikel geändert hat), gilt Folgendes:
- Versandspesen und Steuerbeträge werden neu berechnet, und die Bestellung wird durch Aufrufen des Task-Befehls
ReprepareOrder gesperrt. Ändert sich hierdurch der Gesamtbetrag für die Bestellung, und die Parameter
'quoteExpiryPolicy' und 'quoteExpiredUrl' sind angegeben, gilt Folgendes:
- Wenn die neu berechnete Bestellgesamtsumme unverändert ist
und der Parameter "quoteExpiryPolicy" dies zulässt, wird die
Verarbeitung normal fortgesetzt.
- Wenn die neu berechnete Bestellgesamtsumme geringer ist und
der Parameter "quoteExpiryPolicy" dies zulässt, wird die
Verarbeitung normal fortgesetzt.
- Wenn die neu berechnete Bestellgesamtsumme höher ist und der
Parameter "quoteExpiryPolicy" dies zulässt, wird die Verarbeitung
normal fortgesetzt.
- Andernfalls wird die Bestellung nicht verarbeitet, sondern es
erfolgt eine Umleitung zu der vom Parameter "quoteExpiredURL"
angegebenen URL.
- Die zugesagten Verfügbarkeitszeiten für die Bestellartikel werden auf die aktuellen geschätzten Verfügbarkeitszeiten eingestellt.
- Wenn der Bestellstatus 'I' ist, wird der Task-Befehl 'CheckOrder' aufgerufen, um zu bestätigen, dass diese Bestellung noch nicht zur Verarbeitung übergeben wurde.
- Der Task-Befehl CheckOrderAcceptance wird aufgerufen, um zu bestätigen, dass die Verträge für die Bestellartikel aktiv sind.
- Die Tabelle ORDOPTIONS wird aktualisiert, um die Werte für die Parameter 'notifyMerchant' und 'notifyShopper' widerzuspiegeln.
- Die Rechnungsadresse (falls vorhanden), wie durch die Parameter 'tcId' oder
'billToAddressId' angegeben, wird in der Bestellung gespeichert.
- Die Werte der Parameter 'field1', 'field2' und 'field3' (falls angegeben) werden in der Bestellung gespeichert (siehe die Tabelle ORDERS).
- Wenn die ATP-Lagerbestandzuordnung nicht aktiviert ist und die Implementierung der Task-Befehlsschnittstelle 'DoPayment' nicht gleichzeitig auch die Schnittstelle 'DoInventory' implementiert, wird der Task-Befehl 'UpdateInventory' aufgerufen, um den Lagerbestand für die Bestellartikel zu vermindern. (Die Schnittstelle 'DoInventory' deklariert keine Methoden). Ein Task-Befehl "DoPayment", der diese Schnittstelle implementiert,
gibt an, dass die Implementierung des Befehls oder seiner
zugehörigen Funktionen die Aktualisierung des Bestands
verarbeiten.)
- Der entsprechende Task-Befehl 'DoPayment' wird aufgerufen, um zusätzliche
Fehlerprüfungen auszuführen und die Zahlung zu verarbeiten. Hierbei werden die Name/Wert-Paare der Zahlungsinformationen aus der Tabelle
ORDPAYINFO weitergegeben und mit den an den URL-Befehl 'OrderProcess' weitergegeben Parametern zusammengefügt. Wenn die Namen bestimmter an den
URL-Befehl 'OrderProcess' weitergegebenen Parameter mit den Namen bestimmter Name/Wert-Paare aus der Tabelle ORDPAYINFO identisch sind, ersetzen die erstgenannten Werte die zuletzt genannten. Die zusammengefügte Liste der Name/Wert-Paare wird in der Tabelle ORDPAYINFO gespeichert und ersetzt die vorherigen Zahlungsinformationen. Dem URL-Befehl 'OrderProcess' spezifisch bekannte Parameter (oben auf dieser Seite dokumentiert), mit Ausnahme des Parameters 'tcId', werden nicht als Zahlungsinformationen angesehen und sind nicht in der Tabelle ORDPAYINFO gespeichert.
- Wenn der Task-Befehl 'DoPayment' einen Wert für den Bestellstatus zurückgibt, wird der Bestellstatus auf diesen Wert gesetzt. Andernfalls wird der Status auf 'C' oder, wenn ATP-Lagerbestandzuordnung aktiviert ist und die Bestellung Artikel im Lieferrückstand enthält, auf 'B' gesetzt.
- Wenn der Bestellstatus nicht 'I' ist, wird der Task-Befehl
ExtOrderProcess aufgerufen.
(Der Scheduler-Befehl PaySynchronizePM ruft später den Task-Befehl 'ExtOrderProcess' auf, wenn er den Bestellstatus von 'I' auf einen anderen Status abändert.)
- Der Task-Befehl OrderMessaging wird aufgerufen.
- Wenn der Parameter 'notifyOrderSubmitted' 1 (Ja) angibt, wird der Task-Befehl
OrderNotify aufgerufen, um den Einkäufer darüber zu benachrichtigen, dass die Bestellung übergeben wurde.
- Wenn der Task-Befehl 'DoPayment' Byte-Daten zurückgegeben hat, wird er an die Sicht 'DirectView' und von dort direkt an den Browser des Kunden weitergegeben (beispielsweise zum Starten einer elektronischen "Wallet"-Anwendung für die Zahlung). Andernfalls wird die Umleitungs-URL 'OrderOKView' an die Sicht 'RedirectView' weitergegeben, um dem Kunden eine Bestellbestätigung anzuzeigen.
Ausnahmebedingungen
- Wenn die Bestellung nicht gesperrt ist, generiert der Befehl
die Ausnahmebedingung
ECApplicationException
und gibt den Fehlersichtbefehl
OrderUnlockErrorView
an.
- Wenn der Kunde ungültige Daten eingegeben hat, generiert der
Befehl die Ausnahmebedingung "ECApplicationException" und gibt
den Fehlersichtbefehl
BadOrderDataErrorView
an, um den Kunden zu benachrichtigen.
- Wenn die Bestellung nicht anstehend ist, generiert der Befehl
die Ausnahmebedingung "ECApplicationException" und gibt den
Fehlersichtbefehl
OrderNoneErrorView
an.
- Falls einer oder mehrere der von der Bestellung verwendeten Verträge nicht mehr
gültig sind, gibt der Befehl die Ausnahmebedingung "ECApplicationException" aus.