OrderItemUpdate コマンド
このコマンドは、 OrderItemAdd コマンドで実行できること (すなわち、
商品およびアイテムを 1 つまたは複数のオーダー (オーダー・リスト) の中に追加すること) をすべて行うことができます。
さらに、既存のオーダーの OrderItems を更新することもできます。

パラメーター値
- http://host_name/path/
- (必須) WebSphere Commerce サーバーおよび構成パスの完全修飾名
- forUser
- このコマンドの実行対象のユーザーのログオン ID。
このパラメーターを指定できるのはオーダーを処理する権限がある人だけです。
- forUserId
- forUser と同様ですが、ユーザーは USERS テーブル中にある内部ユーザー ID によって識別されます。
- langId
- セッション期間中の優先言語を設定またはリセットします。
ストアでサポートされている言語は、STORELANG テーブルにあります。
- URL
- (必須) コマンドが正常に完了した時に呼び出される URL
- orderItemId_i
- 更新される OrderItem の ID。
指定される場合には、catEntryId_i および partNumber_i パラメーター (同じ i の値) は無視されます。
- storeId
- ストア ID (商品またはアイテムをオーダーに追加したい場合のみ必須)。
storeId は、ストア内でアイテムが購入可能な場合に検査を行うために必須です。
storeId を一度指定すると、将来の利用のためにキャッシュされます。
- catEntryId_i
- 新規 OrderItem を作成するのに使用される、カタログ・エントリーの ID。
- partNumber_i
- これが指定されると、catEntryId_i パラメーターは無視されます。
partNumber_i および memberId_i パラメーターが指定される場合、
CATENTRY テーブル内の PARTNUMBER および MEMBER_ID 列を選択することにより、カタログ・エントリーが判別されます。
このコマンドは、カタログ・エントリーの ID が catEntryId_i の値として指定されたかのように動作します。
- memberId_i
- オーダーを発行するカタログを所有しているメンバーの ID
- attrName_i
- アイテムに対して定義される特有の属性
- attrValue_i
- attrName 内の属性の値
- quantity_i
- オーダーに追加するアイテムの数量。
このパラメーターは、catEntryId_i または partNumber_id が指定される場合には必須です。
OrderItemId_i が指定される場合、これは任意指定です。
- UOM_i
- quantity_i の計測単位。この値は、QTYUNIT テーブル内の基本キーの 1 つと一致しなければなりません。
指定されない場合、 CATENTSHIP テーブルのその OrderItem と同じ CATENTRY_ID の行の QUANTITYMEASURE 列の値が使用され、
quantity_i パラメーターの値は、CATENTSHIP テーブルの同じ行の NOMINALQUANTITY 列によって乗算されます。
- addressId_i
- 商品およびアイテムが配送される宛先住所の ID。
- shipModeId_i
- 商品またはアイテムに使用する配送モードの参照番号。
- comment_i
- 作成または更新されたオーダー・アイテムに組み込むコメント
- contractId_i
- オーダーに関連付けられた契約の ID。
- field1_i
- ストア予約済みの整数値。
- field2_i
- ストア予約済みのテキスト値。 このパラメーターは 254 文字まで入力できます。
- offerId_i
- オーダーに関連付けられたオファーの ID。
- orderId
- これは更新するゼロ件以上のオーダーを指定する内部生成 ID で、オーダーの参照番号、または特殊省略形 ("**"、"."、"*"、".t"、"*t") のいずれかを使用します。
これらの省略形の説明については、オーダーの省略形を参照してください。
特定のストアに対して保留オーダーが存在していない場合は、新規の保留オーダーが作成されます。
複数の保留オーダーが指定されている場合は、その指定された各オーダーごとにオーダー・アイテム・エントリーが作成または更新されます。
- outOrderName
- リダイレクト URL に追加される、名前と値の対の名前を指定します。
追加された名前と値の対の値は、作成または更新されたオーダーの参照番号です。
- outOrderItemName
- リダイレクト URL に追加される、名前と値の対の名前を指定します。
追加された名前と値の対の値は、作成または更新されたオーダー・アイテムの参照番号です。
- listId
- 興味のあるアイテム・リスト ID です。
このパラメーターを指定すると、OrderItemUpdate コマンドがリストにすべてのアイテムを含む新しいオーダーを作成します。
特殊な省略形 "." および "*" のどちらか 1 つを使用できます。
詳しくは、カタログの省略形を参照してください。
- orderDesc
- このコマンドによって作成される新規オーダーについての説明を指定します。
- remerge (再マージ)
- 可能であれば同じ順序と同じ correlationGroup 属性で、他の OrderItems と共にマージする OrderItems のリスト。
OrderItems は、InventoryStatus が "NALC" であるか、1 つまたは複数の allocate (割り振り)、backorder (バック・オーダー)、
および reverse (取り消し) パラメーターによって指定されなければ、マージされません。
- merge (マージ)
- correlationGroup 属性には関係なく、可能であれば同じ順序で、他の OrderItems と共にマージする OrderItems のリスト。
- check (検査)
- CheckInventoryAvailability タスク・コマンドで検査する OrderItems のリスト。
- allocate (割り振り)
- 既存の在庫から割り振られる OrderItems のリスト。
- backorder (バック・オーダー)
- 既存の在庫から割り振られない場合に将来の在庫から割り振られる OrderItems のリスト。
- reverse (取り消し)
- 割り振りを解除する (つまり、必要に応じて既存または将来の在庫から割り振り解除する) 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
以下の例は、参照番号 18 の 1 単位のカタログ・エントリーに対する配送レコードを作成し、組み合わせ文字 CJK の属性を持つことを示したものです。
この配送レコードは、顧客の現行保留オーダーに追加されます。
このコマンドが完了すると、OrderItemDisplay コマンドが呼び出されます。
http://myhostname/webapp/wcs/stores/servlet/OrderItemUpdate?addressId=2
&catEntryId=18&attrName=monogram&attrValue=CJK&quantity=1&shipModeId=4
&URL=OrderItemDisplay
例 2
以下の例は、すべての顧客の現行保留オーダーに、カタログ・エントリー 2 を 10 単位追加します。
このコマンドが完了すると、OrderItemDisplay コマンドが呼び出されます。
http://myhostname/webapp/wcs/stores/servlet/OrderItemUpdate?catEntryId=2
&quantity=10&orderId=*&outOrderName=orderId&URL=/webapp/wcs/stores/servlet/OrderItemDisplay
例 3
以下の例は、3 つの OrderItem ID を更新します。
http://myhostname/webapp/wcs/stores/servlet/OrderItemUpdate?URL=OrderItemDisplay
&quantity_1=2&quantity_2=7&orderItemId_1=117&orderItemId_2=118
&orderItemId_3=113&quantity_3=2
動作
- このコマンドは、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 タスク・コマンドを呼び出し、
生成されたオーダー・アイテムまたは手動で価格が入力された (管理者によって指定変更された; 詳しくは、
ODERITEMS テーブルの PREPAREFLAGS 列を参照) アイテムを除き、
指定された取引条項 (契約) またはオーダーのメンバーにとって適格なすべての取引条項 (契約) を使用して、
商品またはアイテムの契約価格を取得します。
使用されるすべての入力取引条項 (契約) は、互換性のある支払いメソッドに該当するかを検査されます。
通貨はオーダーの通貨と常に同じです。
- 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 をスローする可能性があります。