Befehl 'OrderPrepare'
Dieser Befehl bereitet eine Bestellung vor, indem er Preise, Rabatte, Versandspesen und Steuern
der Bestellung bestimmt. Wenn
keine Bestellreferenznummer angegeben ist, werden alle aktuellen
anstehenden Bestellungen für den aktuellen Kunden im gegebenen
Geschäft vorbereitet.

Parameterwerte
- http://host_name/pfad/
- (Obligatorisch) Der vollständig qualifizierte Name Ihres WebSphere Commerce Servers und der Konfigurationspfad.
- 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.
- 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.
- URL
- (Obligatorisch) Die URL-Adresse, die nach der erfolgreichen Ausführung des
Befehls aufgerufen werden soll.
- storeId
- Die Referenznummer des Geschäfts, für das die Bestellung
vorbereitet werden soll.
- orderId
- Die Referenznummer der Bestellung, die vorbereitet werden soll. Wird
dieser Parameter weggelassen, verwendet der Befehl standardmäßig die aktuell anstehenden
Bestellungen. Siehe hierzu die Beschreibung unter Abkürzungen für Bestellungen.
- outOrderName
- Gibt die Namen von Name/Wert-Paaren an, die der Umleitungs-URL
hinzugefügt werden sollen. Der Wert der einzelnen Name/Wert-Paare ist die Referenznummer
der vorbereiteten Bestellung. Wenn der Name nicht angegeben ist, wird der Standardname 'orderId' verwendet.
- remerge
- Eine Liste der OrderItems (Bestellartikel), die (wenn möglich) mit anderen OrderItems
in derselben Bestellung und mit dem gleichen Attribut 'correlationGroup' zusammengefügt werden sollen. Bestellartikel
werden nur zusammengefügt, wenn ihr Lagerbestandsstatus "NALC" ist oder
wenn sie in einem der Parameter 'allocate', 'backorder' und 'reverse' angegeben werden.
- merge
- Eine Liste der OrderItems, die (wenn möglich) mit anderen OrderItems
in der selben Bestellung - unabhängig vom Attribut correlationGroup - zusammengefügt werden sollen.
- check
- Eine Liste der OrderItems, die vom Task-Befehl 'CheckInventory'
geprüft werden sollen.
- allocate
- Eine Liste der OrderItems, die von einem bestehenden Lagerbestand
zugeordnet werden sollen.
- backorder
- Eine Liste der OrderItems, die von einem erwarteten Lagerbestand
zugeordnet werden sollen.
- reverse
- Eine Liste der OrderItems, deren Zuordnungen freigegeben werden sollen
(deren Zuordnung also vom vorhandenen oder erwarteten Lagerbestand rückgängig gemacht werden
soll).
Hinweis: Die Parameter remerge, merge, check, allocate, backorder und reverse
sind nur dann anwendbar, wenn ein ATP-Lagerbestand aktiviert ist (siehe die Spalte ALLOCATIONGOODFOR
in der Tabelle STORE). Sie stellen Listen von OrderItems (Bestellartikeln) dar, die
an den Task-Befehl
'AllocateInventory' weitergegeben werden, der wiederum die Task-Befehle 'CheckInventoryAvailability',
'AllocateExistingInventory', 'AllocateExpectedInventory', 'DeallocateExistingInventory' und
'DeallocateExpectedInventory' wie unten angegeben aufruft. Darüber hinaus akzeptieren diese Parameter
OrderItem-Abkürzungen, die in der Hilfe für die Befehle des Bestellsubsystems
detailliert beschrieben sind.
Folgendes sind die ATP-Standardparameterwerte:
- remerge=*
- merge=*n
- check=*n
- allocate=*
- backorder=*
- reverse=*
Beispiel
Bei diesem Beispiel wird die Bestellung mit der
Referenznummer 1 vorbereitet und der Befehl
OrderDisplay zum Anzeigen dieser Bestellung umgeleitet.
http://myhostname/webapp/wcs/stores/servlet/OrderPrepare?orderId=1
&URL=/webapp/commerce/OrderDisplay
Verhalten
- Dieser Befehl bereitet die angegebenen Bestellungen für die Anzeige (durch den Befehl
'OrderDisplay') oder für die Verarbeitung (durch den Befehl OrderProcess) vor.
Wenn keine Bestellnummern angegeben sind, bereitet der Befehl alle
aktuellen anstehenden Bestellungen des aktuellen Kunden vor, die zu
dem angegebenen Geschäft gehören.
- Der Status der angegebenen Bestellungen muss 'P', 'I', 'E', 'W' oder 'N' sein.
- Der Befehl 'OrderPrepare' ruft den Task-Befehl
PrepareOrder auf, um für jede der angegebenen Bestellungen die folgenden Aktionen auszuführen:
- Löscht generierte Bestellartikel (siehe die Spalte PREPAREFLAGS der Tabelle ORDERITEMS).
- Überprüft, ob alle Bestellartikel in der Bestellung zum Verkauf stehen (siehe die Spalte BUYABLE der Tabelle
CATENTRY).
- Wenn die ATP-Lagerbestandzuordnung aktiviert ist (siehe die
Spalte ALLOCATIONGOODFOR der Tabelle
STORE), wird der Task-Befehl
AllocateInventory aufgerufen, um die durch die ATP-Parameter ('merge', 'remerge', 'check', 'allocate', 'backorder' und 'reverse') identifizierten Bestellartikel zu verarbeiten und die geschätzten Verfügbarkeitszeiten, Lieferverzögerungen und Fulfillment-Center für zugeordnete Bestellartikel oder Bestellartikel im Lieferrückstand zu erhalten. Bestellartikel können mit diesem Task-Befehl aufgespalten oder zusammengefügt werden. Die Standardimplementierung dieses Task-Befehls ruft die Task-Befehle GetEligibleFulfillmentCenters,
CheckInventoryAvailability,
AllocateExistingInventory,
AllocateExpectedInventory,
DeallocateExistingInventory und DeallocateExpectedInventory auf, um die von den ATP-Parametern angegebenen Operationen auszuführen.
Die Task-Befehle, die Tabellen
RECEIPT und
RADETAIL sowie deren zugeordnete Tabellen werden verwendet,
um die vorhandene und erwartete Lagerbestandsverfügbarkeit zu ermitteln.
- Wenn die ATP-Lagerbestandzuordnung nicht aktiviert ist, wird der Task-Befehl
ResolveFulfillmentCenter aufgerufen, um jedem Bestellartikel auf der Basis der Lagerbestandsverfügbarkeit ein Fulfillment-Center zuzuordnen. Die Standardimplementierung dieses Task-Befehls ruft den Task-Befehl CheckInventory auf, um die Lagerbestandsverfügbarkeit zu ermitteln. Die Standardimplementierung des Task-Befehls 'CheckInventory' verwendet die Tabelle
INVENTORY.
- Ruft den Task-Befehl
ValidateDynamicKitConfiguration auf.
- Ruft neue Einheitenpreise für alle Bestellartikel ab, mit Ausnahme der Bestellartikel mit manuell überschriebenen Preisen (siehe die Spalte PREPAREFLAGS der Tabelle ORDERITEMS), indem er den Task-Befehl
GetContractSpecialPrice oder, falls dieser nicht definiert ist, den Task-Befehl
GetBaseSpecialPrice aufruft.
- Multipliziert die Menge mit dem Einheitenpreis für jeden Bestellartikel und speichert diesen Wert in der Spalte TOTALPRODUCT der Tabelle ORDERITEMS.
- Berechnet die Beträge erneut, die in der Spalte USAGEFLAGS in der Tabelle STENCALUSG für die Berechnungsverwendungen angegeben werden. Zuerst werden alle Methoden aufgerufen, die in der Spalte CALMETHOD_ID_INI der Tabelle STENCALUSG identifiziert werden. Anschließend werden alle in der Spalte CALMETHOD_ID_APP identifizierten Methoden aufgerufen. Wenn die Markierung auf die Verwendung -1 gesetzt ist, wird zum Zweck der Abwärtskompatibilität an Stelle der in der Spalte CALMETHOD_ID_APP der Tabelle STENCALUSG identifizierten Methode der Task-Befehl
ApplyOrderAdjustments aufgerufen, falls er in der Tabelle CMDREG definiert ist. Wenn die Markierung auf die Verwendung -2 gesetzt ist, wird zum Zweck der Abwärtskompatibilität an Stelle der in der Spalte CALMETHOD_ID_APP identifizierten
Methode der Task-Befehl
ApplyOrderShippingCharges aufgerufen, falls er in der
Tabelle CMDREG definiert ist. Wenn die Markierung auf die Verwendungen -3 und -4 gesetzt ist, wird zum Zweck der Abwärtskompatibilität an Stelle der in der Spalte CALMETHOD_ID_APP der Tabelle STENCALUSG identifizierten Methoden der Task-Befehl
ApplyOrderTaxes aufgerufen, falls er in der Tabelle
CMDREG definiert ist.
- Erstellt erneut Unterbestellungen (Zeilen in der Tabelle SUBORDERS) für jede eindeutige Versandadresse und fasst anschließend die erneut berechneten Informationen für jede Unterbestellung zusammen, indem die in der Spalte CALMETHOD_ID_SUM der Tabelle
STENCALUSG identifizierten Methoden für jede in der Spalte CALUSGAEFLAGS identifizierte Berechnungsverwendung aufgerufen werden.
- Sperrt die Bestellung, um anzuzeigen, dass sie für den Befehl 'OrderProzess' bereit ist. Die Sperrung kann entweder durch Ablaufen, durch Ändern der Bestellung (z. B. durch Verwenden des Befehls
OrderItemUpdate) oder explizit durch Anwendung des Befehls OrderUnlock zurückgesetzt werden. Der Ablaufzeitraum für eine Sperrung ist in der Spalte QUOTEGOODFOR der Tabelle STORE gespeichert.
Ausnahmebedingungen
- Wenn keine Bestellung den angegebenen Parametern entspricht,
generiert der Befehl die Ausnahmebedingung
ECApplicationException
und gibt den Fehlersichtbefehl
ErrorOrderNoneCmd
an.
- Wenn Produkte oder Artikel in der Bestellung nicht gekauft werden
können, gibt der Befehl die Ausnahmebedingung
'ECApplicationException' aus und gibt den Fehlersichtbefehl
BadOrderDataErrorView
an.
Weitere Informationen zu Ausnahmebedingungen für Bestellfehler
enthält der Abschnitt Fehlercodes für
Fehlersichten.
- Der Befehl gibt die Ausnahmebedingung 'ECApplicationException' unter
Angabe des Fehlersichtbefehls RetrievePriceErrorView
aus, wenn eine der folgenden Bedingungen vorliegt:
- Eingegebene Handelsvereinbarungen (Verträge) sind ungültig oder können
nicht verwendet werden.
- In der Bestellung verwendete Handelsvereinbarungen (Verträge) wenden
nicht kompatible Zahlungsmethoden an.
- Preislisten für Produkte oder Artikel können nicht abgerufen werden.
- Wenn eine der in der Spalte USAGEFLAGS der Tabelle STENCALUSG angegebenen Berechnungen nicht in der Lage war, einen Wert für jeden Bestellartikel in einer Bestellung zu berechnen, und die Spalte USAGEFLAGS in der Tabelle STENCALUSG anzeigt, dass ein Wert berechnet werden muss, wird eine Ausnahmebedingung des Typs 'ECApplicationException' ausgegeben.
- Wenn eine Bestellung keine Bestellartikel besitzt, wird eine Ausnahmebedingung des Typs 'ECApplicationException' ausgegeben.