Befehl 'OrderItemAdd'
Dieser Befehl fügt der Liste der Artikel weitere Artikel oder Produkte hinzu, die ausgeliefert werden sollen.

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.
- URL
- (Obligatorisch) Die URL-Adresse, die nach der erfolgreichen Ausführung des
Befehls aufgerufen werden soll.
- storeId
- (Obligatorisch) Die Referenznummer des Geschäfts; diese ist obligatorisch, da Sie nicht in einem
Einkaufszentrum einkaufen können
- catEntryId_i
- (Obligatorisch) Die Referenznummer des Artikels, das in die Bestellung aufgenommen
werden soll
- partNumber_i
- Wenn dieser Parameter angegeben ist, wird der Parameter 'catEntryId' ignoriert. Die
Parameter 'partNumber' und 'memberId' ermitteln eine 'catentry_id' durch Auswählen von PARTNUMBER und
MEMBER_ID in der Tabelle CATENTRY, und dieser Befehl
verhält sich, als wäre diese Referenznummer als Wert für 'catEntryId' angegeben worden.
- memberId_i
- Die Kennung für das Mitglied, das der Eigner des Katalogs ist, in dem die Bestellung platziert wird.
- attrName_i
- Ein beliebiges eindeutiges Attribut, das für den Artikel definiert ist.
- attrValue_i
- Der Wert des Attributs in 'attrName'.
- quantity_i
- (Obligatorisch) Die Menge des der Bestellung hinzuzufügenden Artikels.
- UOM_i
- Die Maßeinheit für 'quantity_i'. Dieser Wert muss mit einem der Primärschlüssel
in der Tabelle QTYUNIT übereinstimmen. Wenn
dieser Parameter nicht angegeben wird, wird der Wert der Spalte QUANTITYMEASURE
in der Tabelle CATENTSHIP für die Zeile verwendet, deren CATENTRY_ID mit dem Bestellartikel
übereinstimmt, und der Wert des Parameters 'quantity_i' wird mit der Spalte
NOMINALQUANTITY
derselben Zeile in der Tabelle CATENTSHIP multipliziert.
- addressId_i
- Die Referenznummer der Adresse, an die die Produkte und Artikel versendet werden.
- shipModeId_i
- Die Referenznummer des Versandmodus, nach dem das Produkt oder
der Artikel versendet werden soll.
- comment_i
- Ein Kommentar, der in die erstellten oder aktualisierten
Bestellartikel aufgenommen werden soll.
- contractId_i
- Die Kennung des Vertrags für die Bestellung, der der Artikel hinzugefügt wird.
Es gibt für jedes Geschäft einen Standardvertrag; Sie können jedoch weitere Verträge einrichten
- field1_i
- Ein für das Geschäft reservierter ganzzahliger Wert.
- field2_i
- Ein für das Geschäft reservierter Textwert. Dieser Parameter kann maximal 254 Zeichen enthalten.
- offerId_i
- Die Kennung des Angebots für die Bestellung, der der Artikel hinzugefügt wird.
- orderId
- Die Kennung der Bestellung, der der Artikel hinzugefügt wird.
- outOrderName
- Gibt die Namen der Referenznummern der erstellten bzw. aktualisierten Bestellungen an, die der Umleitungs-URL hinzugefügt werden sollen. Verwenden Sie diesen Parameter
und 'outOrderItemName' beim Verketten von Befehlen.
- outOrderItemName
- Die Namen der Referenznummern der erstellten bzw.
aktualisierten Bestellartikel, die der Umleitungs-URL hinzugefügt werden sollen.
- listId
- Die Kennung der Liste interessanter Artikel. Wenn Sie diesen Parameter angeben, erstellt der Befehl 'OrderItemAdd' eine neue Bestellung, die alle Artikel in der Liste enthält.
- orderDesc
- Gibt die Beschreibung der Bestellung für eine von diesem Befehl
erstellte neue Bestellung an.
- 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. OrderItems
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 derselben Bestellung - unabhängig vom Attribut 'correlationGroup' - zusammengefügt werden sollen. OrderItems
werden nur zusammengefügt, wenn ihr Lagerbestandsstatus "NALC" ist oder
wenn sie in einem der Parameter 'allocate', 'backorder' und 'reverse' angegeben werden.
- check
- Eine Liste der OrderItems, die vom Task-Befehl 'CheckInventory'
geprüft werden sollen.
- allocate
- Eine Liste der OrderItems, die mit dem Task-Befehl 'AllocateExistingInventory'
aus dem bestehenden Lagerbestand zugeordnet werden sollen.
- backorder
- Eine Liste der OrderItems, für die mit dem Task-Befehl 'AllocateExpectedInventory'
ein Lieferrückstand erstellt werden soll. Wenn die Parameter 'allocate' und 'backorder'
denselben OrderItem angeben, wird kein Lieferrückstand erstellt, wenn eine Lagerbestandszuordnung
möglich ist.
- reverse
- Eine Liste der OrderItems, deren Zuordnungen freigegeben werden sollen
(d. h. deren Zuordnung aus dem vorhandenen oder erwarteten Lagerbestand rückgängig gemacht werden
soll), indem der Task-Befehl 'DeallocateExistingInventory' bzw.
'DeallocateExpectedInventory' aufgerufen wird.
- configurationId_i
- Wenn der Bestellartikel ein konfiguriertes dynamische Kit ist,
ist dies die Konfigurations-ID.
Hinweis:
Die Parameter 'remerge', 'merge', 'check', 'allocate', 'backorder' und 'reverse' sind nur dann anwendbar, wenn ATP-Lagerbestandzuordnung 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=*n
- merge=*n
- check=***
- allocate=*n
- backorder=*n
- reverse=*n
Beispiel 1
Im folgenden Beispiel werden drei Einheiten des Produkts mit der
Referenznummer 24 allen aktuellen anstehenden Bestellungen des
Kunden (die unter dem Geschäft erstellt wurden, das Katalogeintrag 24
verkauft) hinzugefügt, und diese
Produkte sollen an die Adresse geliefert werden, die der
Adressreferenznummer 2 entspricht. Anschließend wird der
Befehl OrderItemDisplay
aufgerufen.
http://myhostname/webapp/wcs/stores/servlet/OrderItemAdd?addressId=2
&URL=/webapp/wcs/stores/servlet/OrderItemDisplay&catEntryId=24&quantity=3
Beispiel 2
Im folgenden Beispiel werden zehn Einheiten des Katalogs mit der
Referenznummer 2 der neuen Bestellung des aktuellen Kunden
hinzugefügt. Der Parameter 'orderId' wird der Umleitungs-URL hinzugefügt, wobei 'value' die
Referenznummer der erstellten Bestellung ist. Anschließend wird der Befehl 'OrderItemDisplay' aufgerufen.
http://myhostname/webapp/wcs/stores/servlet/OrderItemAdd?catEntryId=2&quantity=10
&orderId=**&outOrderName=orderId&URL=/webapp/wcs/stores/servlet/OrderItemDisplay
Beispiel 3
Bei diesem Beispiel wird ein Bundle hinzugefügt, das aus den
folgenden Elementen besteht:
Artikel 312200001
Artikel 312200301
Produkt 312200200 mit Attribut 312200201
http://myhostname/webapp/wcs/stores/servlet/OrderItemAdd?catEntryId_1=312200001
&quantity_1=1&shipModeId_1=1&catEntryId_2=312200301&quantity_2=1
&shipModeId_2=1&catEntryId_3=312200200&attrName_3=312200201
&attrValue_3=Value+2200200+1&quantity_3=1&shipModeId_3=1&URL=OrderItemDisplay
Beispiel 4
Im folgenden Beispiel werden zwei Produkte mit mehreren Attributen zu einem Einkaufskorb hinzugefügt, wobei der erste Katalogeintrag über zwei Attribute und der zweite Katalogeintrag über drei Attribute
verfügt:
http://myhostname/webapp/wcs/stores/servlet/OrderItemAdd?catEntryId_1=111&attrName_1=1
&attrValue_1=a&attrName_1=2&attrValue_1=b&quantity_1=1&catEntryId_2=222&attrName_2=21
&attrValue_2=aa&attrName_2=22&attrValue_2=bb&attrName_2=33&attrValue_2=cc&quantity_2=1
&URL=OrderItemDisplay
Verhalten
- Der Befehl ruft 'ResolveOrdersCmd'
mit dem Eingabeparameter 'orderId' auf, der eine Bestellungsliste erstellt. Wenn dieser
Parameter nicht angegeben wird, werden als Standardwert die aktuellen anstehenden
Bestellungen verwendet.
- Der Befehl führt für jede Aufzählungsgruppe 'i' von Parametern folgende Schritte aus:
- Bei Angabe des Parameters 'orderItemId_i' werden die Parameter 'partNumber_i' und
'catEntryId_i' ignoriert. Der Befehl versucht, den Bestellartikel zu aktualisieren.
- Bei Angabe des Parameters 'partNumber_i' wird der Parameter 'catEntryId_i' ignoriert. Der
Befehl verwendet 'partNumber_i' mit dem optionalen Parameter 'memberId_i', um den
Katalogeintrag zu suchen. Wird 'memberId_i' nicht angegeben, wird standardmäßig die Member-ID des
Geschäftseigners als Member-ID verwendet.
- Wenn der Parameter 'orderItemId_i' nicht angegeben wird und der Parameter
'partNumber_i' oder 'catEntryId_i' angegeben wird, versucht der Befehl, einen neuen Bestellartikel
zu erstellen und ihn in alle aufgelösten Bestellungen einzufügen. Ist die Liste der
aufgelösten Bestellungen leer, wird eine neue anstehende Bestellung erstellt.
- Bei der Erstellung einer neuen Bestellung wird der aktuelle Benutzer
im Befehlskontext als Member-ID verwendet und auch die Währung wird aus dem
Befehlkontext übernommen.
- Bei der Erstellung einer neuen Bestellung ist der Parameter 'quantity_i'
erforderlich; der Parameterwert muss eine positive Zahl sein. Als Member-ID
des Bestellartikels wird die Member-ID der Bestellung übernommen.
Der Parameter 'storeId' ist ebenfalls erforderlich.
- Wenn dieselbe Aufzählungsgruppe 'i' mehrmals angegeben wird, ist nur eine
Aufzählungsgruppe gültig und die übrigen werden ignoriert.
- Die übrigen Parameter werden vom Befehl zur Aktualisierung des Bestellartikels
verwendet. Bei Angabe des Parameters 'orderItemId_i' wird der bestehende Bestellartikel
aktualisiert, bei Angabe des Parameters 'partNumber_i' oder 'catEntryId_i' wird
ein neuer Bestellartikel erstellt.
- Wenn der Parameter 'addressId_i' nicht angegeben wird, wird für registrierte Benutzer als
Standardwert die addressId in der Tabelle ADDRESS
verwendet (wobei die Spalte STATUS
den Wert P hat und der Wert der Spalte NICKNAME die Anmelde-ID des Benutzers ist,
die aus der Spalte LOGONID in der Tabelle USERREG abgerufen wurde). Wird die
Adresse in der Tabelle ADDRESS nicht gefunden, ist die 'address_id' für den Bestellartikel
in der Tabelle ORDERITEMS gleich NULL.
- Wenn 'quantity_i' gleich null ist, wird der Bestellartikel aus den Bestellungen
entfernt.
- Wenn der Parameter 'shipModeId_i' nicht angegeben wird, wird der Standardwert
aus der Tabelle STOREDEF verwendet.
- Ruft den Task-Befehl 'GetContractUnitPriceCmd' auf, um anhand der angegebenen
oder der zutreffenden Handelsvereinbarungen (Verträge) den Vertragspreis des Produkts
oder Artikels abzurufen. Davon ausgenommen sind Bestellartikel, die generiert wurden
oder deren Preis manuell eingegeben (vom Administrator überschrieben) wurde. Für alle
zu verwendenden eingegebenen Handelsvereinbarungen (Verträge) wird überprüft, ob ihre Zahlungsmethoden
kompatibel sind. Die Währung ist immer mit der Währung der Bestellung identisch.
- Alle Bestellungen, die einen oder mehrere aktualisierte oder eingefügte
Bestellartikel umfassen, werden entsperrt und die Felder zur Angabe der letzten
Aktualisierung werden auf die aktuelle Zeitmarke aktualisiert.
- Nach der Verarbeitung der Aufzählungsgruppen nimmt der Befehl für alle geänderten
oder erstellten Bestellartikel eine Aktualisierung der Auftragserfüllung und eine
Überprüfung des Lagerbestands vor. Wenn ATP aktiviert ist, wird 'AllocateInventoryCmd'
aufgerufen. Andernfalls wird der abwärtskompatible Befehl 'ResolveFulfillmentCenterCmd'
aufgerufen.
- Ruft den Task-Befehl 'ExtendOrderItemProcessCmd' auf, um weitere Verarbeitungsprozesse für spezifische
Anforderungen auszuführen.
- Ruft 'RedirectView' zur Umleitung an die angegebene URL auf.
Ausnahmebedingungen
- Je nach dem Fehler werden unterschiedliche Ausnahme-Tasks aufgerufen.
- Wenn einige Parameterwerte ungültig sind, gibt der Befehl die Ausnahmebedingung
'ECApplicationException' mit der Nachricht _ERR_INVALID_INPUT und der Fehlersicht
'InvalidInputErrorView' aus.
- Wenn die Artikelnummer (partNumber) angegeben wird, im Katalog jedoch nicht
gefunden werden kann, gibt der Befehl die Ausnahmebedingung 'ECApplicationException' mit der Nachricht
_ERR_PROD_NOT_EXISTING und der Fehlersicht 'badPartNumberErrorView' aus.
- Außerdem wird die Ausnahmebedingung 'ECApplicationException' ausgegeben, wenn folgende Fehler auftreten:
- 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 können nicht abgerufen werden.
- Wenn ATP nicht aktiviert ist, gibt der Task-Befehl 'ResolveFulfillmentCenterCmd'
u. U. die Ausnahmebedingung 'ECApplicationException' mit der Nachricht
_API_BAD_INV und der Fehlersicht 'ResolveFulfillmentCenterErrorView' aus.