OrderItemAdd コマンド
このコマンドは、アイテムまたは商品を配送されるアイテムのリストに追加します。

パラメーター値
- http://host_name/path/
- (必須) WebSphere Commerce サーバーおよび構成パスの完全修飾名
- forUser
- このコマンドの実行対象のユーザーのログオン ID。
このパラメーターを指定できるのはオーダーを処理する権限がある人だけです。
- forUserId
- forUser と同様ですが、ユーザーは USERS テーブル中にある内部ユーザー ID によって識別されます。
- langId
- セッション期間中の優先言語を設定またはリセットします。
ストアでサポートされている言語は、STORELANG テーブルにあります。
- URL
- (必須) コマンドが正常に完了した時に呼び出される URL
- storeId
- (必須) ストア参照番号。モールからは購入できないので、これは必須です。
- catEntryId_i
- (必須) オーダーに入れるアイテムの参照番号
- partNumber_i
- これを指定すると、catEntryId パラメーターは無視されます。
partNumber および memberId パラメーターは、CATENTRY テーブル内の PARTNUMBER と MEMBER_ID を選択して catentry_id を指定するために使用され、
このコマンドは、その参照番号が catEntryId の値として指定されたのと同様に動作します。
- memberId_i
- オーダーを発行するカタログを所有しているメンバーの ID
- attrName_i
- アイテムに対して定義される特有の属性
- attrValue_i
- attrName 内の属性の値
- quantity_i
- (必須) オーダーに追加するアイテムの数量
- UOM_i
- quantity_i の計測単位。この値は、QTYUNIT テーブル内の基本キーの 1 つと一致しなければなりません。
指定されない場合、 CATENTSHIP テーブルのその OrderItem と同じ CATENTRY_ID の行の QUANTITYMEASURE 列の値が使用され、
quantity_i パラメーターの値は、CATENTSHIP テーブルの同じ行の NOMINALQUANTITY 列によって乗算されます。
- addressId_i
- 商品およびアイテムが配送される宛先住所の参照番号。
- shipModeId_i
- 商品またはアイテムに使用する配送モードの参照番号。
- comment_i
- 作成または更新されたオーダー済みアイテムに組み込むコメント。
- contractId_i
- アイテムの追加先オーダーの契約 ID。各ストアにはデフォルト契約が 1 つありますが、別のものをセットアップすることもできます。
- field1_i
- ストア予約済みの整数値。
- field2_i
- ストア予約済みのテキスト値。 このパラメーターは 254 文字まで入力できます。
- offerId_i
- アイテムの追加先オーダーに対するオファーの ID。
- orderId
- アイテムの追加先オーダーの ID。
- outOrderName
- リダイレクト URL に追加する、作成または更新されたオーダーの参照番号の名前を指定します。コマンドを連鎖させるときは、このパラメーターと outOrderItemName を使用します。
- outOrderItemName
- リダイレクト URL に追加する、作成または更新されたオーダー・アイテムの参照番号の名前。
- listId
- 「興味のあるアイテム」リスト ID。 このパラメーターを指定すると、OrderItemAdd コマンドは、リスト内のすべてのアイテムを含む新規オーダーを作成します。
- orderDesc
- このコマンドによって作成される新規オーダーのオーダー説明を指定します。
- remerge (再マージ)
- 可能であれば同じ順序と同じ correlationGroup 属性で、他の OrderItems と共にマージする OrderItems のリスト。
OrderItems は、InventoryStatus が "NALC" であるか、1 つまたは複数の allocate (割り振り)、backorder (バック・オーダー)、
および reverse (取り消し) パラメーターによって指定されなければ、マージされません。
- merge (マージ)
- correlationGroup 属性には関係なく、可能であれば同じ順序で、他の OrderItems と共にマージする OrderItems のリスト。
OrderItems は、InventoryStatus が "NALC" であるか、1 つまたは複数の allocate (割り振り)、backorder (バック・オーダー)、
および reverse (取り消し) パラメーターによって指定されなければ、マージされません。
- check (検査)
- CheckInventory タスク・コマンドで検査する OrderItems のリスト。
- allocate (割り振り)
- AllocateExistingInventory タスク・コマンドによって既存の在庫から割り振られる OrderItems のリスト。
- backorder (バック・オーダー)
- AllocateExpectedInventory タスク・コマンドによってバック・オーダーする OrderItems のリスト。
allocate (割り振り) および backorder (バック・オーダー) パラメーターの両方で同じ OrderItem が指定される場合、
割り振ることが可能であるならバック・オーダーされません。
- reverse (取り消し)
- DeallocateExistingInventory または DeallocateExpectedInventory タスク・コマンドを必要に応じて呼び出すことにより、
割り振りを解除する (つまり、必要に応じて既存または将来の在庫から割り振り解除する) OrderItems のリスト。
- configurationId_i
- OrderItem が構成された動的キットを表す場合、これは構成 ID。
注:
remerge (再マージ)、merge (マージ)、check (検査)、allocate (割り振り)、
backorder (バック・オーダー)、および reverse (取り消し) パラメーターは、ATP 在庫が使用可能な場合にのみ適用できます。
(STORE テーブルの ALLOCATIONGOODFOR 列を参照してください。)
それらは AllocateInventory タスク・コマンドに渡される OrderItems のリストを表しています。
そのタスク・コマンドは、以下に指定されているように CheckInventoryAvailability、AllocateExistingInventory、
AllocateExpectedInventory、DeallocateExistingInventory、および DeallocateExpectedInventory タスク・コマンドを呼び出します。
さらに、これらのパラメーターはオーダー・サブシステム・コマンド
のヘルプで詳述されている OrderItem 省略形を認めます。
以下は、デフォルトの ATP パラメーター値です:
- remerge=*n
- merge=*n
- check=***
- allocate=*n
- backorder=*n
- reverse=*n
例 1
以下の例は、参照番号 24 の商品の 3 単位を、住所参照番号 2 と対応している住所に配送することを指示して、
顧客の現行保留オーダー (カタログ・エントリー 24 を扱うストアのもとに作成されている現行保留オーダーのみ) に追加して、
OrderItemDisplay コマンドを呼び出します。
http://myhostname/webapp/wcs/stores/servlet/OrderItemAdd?addressId=2
&URL=/webapp/wcs/stores/servlet/OrderItemDisplay&catEntryId=24&quantity=3
例 2
以下の例は、参照番号 2 のカタログ・エントリーの 10 単位を現在の顧客の新規オーダーに追加します。
パラメーター orderId がリダイレクト URLに追加されます。この値は作成済みオーダーの参照番号であり、
OrderItemDisplay コマンドが呼び出されます。
http://myhostname/webapp/wcs/stores/servlet/OrderItemAdd?catEntryId=2&quantity=10
&orderId=**&outOrderName=orderId&URL=/webapp/wcs/stores/servlet/OrderItemDisplay
例 3
以下の例は、構成が以下の通りのバンドルを追加します:
アイテム 312200001
アイテム 312200301
商品 312200200、属性 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
例 4
以下の例は、複数の属性を持つ 2 つの製品をショッピング・カートに追加します。
最初のカタログ・エントリーには 2 つの属性があり、2 番目のカタログ・エントリーには 3 つの属性があります。
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
動作
- このコマンドは、ResolveOrdersCmd を入力パラメーター orderId と共に呼び出し、オーダーのリストを取得します。
orderId が指定されない場合、デフォルトは現行の保留オーダーです。
- コマンドは、パラメーター 'i' の各列挙グループに対して以下のことを行います。
- パラメーター orderItemId_i が指定される場合、パラメーター partNumber_i および catEntryId_i は無視されます。
このコマンドは、オーダー・アイテムの更新を試行します。
- パラメーター partNumber_i が指定される場合、パラメーター catEntryId_i は無視されます。
コマンドは partNumber_i をオプショナル・パラメーター memberId_i と共に使用し、カタログ・エントリーを検索します。
memberId_i が指定されない場合、デフォルトのメンバー ID はストア所有者のメンバー ID となります。
- パラメーター orderItemId_i が指定されず、パラメーター partNumber_i またはパラメーター catEntryId_i のどちらかが指定される場合、
コマンドは新規オーダー・アイテムを作成し、すべての解決済みのオーダーに挿入しようと試行します。
解決済みのオーダーのリストが空である場合、新規の保留オーダーが作成されます。
- 新規オーダーが作成される場合、メンバー ID はコマンド・コンテキスト内の現行ユーザーで、
通貨もコマンド・コンテキスト内から取られます。
- 新規オーダー・アイテムが作成される場合、パラメーター quantity_i が必要とされ、それは正数でなければなりません。
オーダー・アイテムのメンバー ID は、そのオーダーのメンバー ID から取られます。
storeId も必須です。
- 同じ列挙グループ 'i' が複数指定される場合、1 つだけが有効で、その他は無視されます。
- orderItemId_i が指定される場合に既存のオーダー・アイテムを更新する時、
あるいは partNumber_i または catEntryId_i が指定される場合に新規オーダー・アイテムを作成する時のどちらでも、
このコマンドはパラメーターの残りを使用してオーダー・アイテムを更新します。
- 登録済みのユーザーに対して、パラメーター addressId_i が指定されない場合、
デフォルトは、ADDRESS テーブル (ここで、STATUS 列は P の値を有し、
NICKNAME 列の値は USERREG テーブルの LOGONID 列から入手したユーザーのログイン ID) の addressID です。 ADDRESS テーブル内に住所がない場合、ORDERITEMS テーブル内のオーダー・アイテムの address_id は NULL です。
- quantity_i がゼロの場合、オーダー・アイテムはオーダーから除去されます。
- パラメーター shipModeId_i が指定されない場合、デフォルトは STOREDEF テーブルから取られます。
- これは、GetContractUnitPriceCmd タスク・コマンドを呼び出し、
生成されたオーダー・アイテムまたは手動で価格が入力された (管理者によって変更された) アイテムを除き、
指定された取引条項 (契約) または適格な取引条項 (契約) を使用して、商品またはアイテムの契約価格を取得します。
使用されるすべての入力取引条項 (契約) は、互換性のある支払いメソッドに該当するかどうかを検査されます。
通貨はオーダーの通貨と常に同じです。
- 1 つまたは複数のオーダー・アイテムが更新あるいは挿入されたいずれのオーダーに対しても、
オーダーはアンロックされ、lastUpdate フィールドは現在のタイム・スタンプで更新されます。
- すべての列挙グループが処理された後、
コマンドは変更または作成されたすべてのオーダー・アイテムに対して配送の更新および在庫チェックを行います。
ATP が使用可能な場合、AllocateInventoryCmd を呼び出します。
そうでないなら、後方互換性のある ResolveFulfillmentCenterCmd を呼び出します。
- ExtendOrderItemProcessCmd タスク・コマンドを呼び出して、固有の要件があればそれに合うように追加の処理を実行します。
- 指定される URL にリダイレクトする RedirectView を設定します。
例外条件
- エラーによって異なる例外タスクが呼び出されます。
- いずれかのパラメーター値が無効である場合、コマンドはメッセージ: _ERR_INVALID_INPUT およびエラー表示: InvalidInputErrorView と共に、
ECApplicationException をスローします。
- partNumber は指定されているものの、カタログ内に見つからない場合、
コマンドはメッセージ: _ERR_PROD_NOT_EXISTING およびエラー表示: badPartNumberErrorView と共に ECApplicationException をスローします。
- 以下のエラーが検出される場合、ECApplicationException もスローされます。
- 入力取引条項 (契約) が無効あるいは使用に適格でない。
- オーダーで使用されている取引条項 (契約) が非互換の支払いメソッドに該当する。
- 価格表が検索できない。
- ATP が使用不可能な場合、タスク・コマンド ResolveFulfillmentCenterCmd は、
メッセージ: _API_BAD_INV およびエラー表示: ResolveFulfillmentCenterErrorView と共に ECApplicationException をスローする可能性があります。
