ReturnItemAdd コマンド
このコマンドは、返品商品取引許可 (RMA) に商品を追加します。

パラメーター値
- http://host_name/path/
- (必須) WebSphere Commerce サーバーおよび構成パスの完全修飾名
- forUser
- このコマンドの実行対象のユーザーのログオン ID。
このパラメーターを指定できるのはオーダーを処理する権限がある人だけです。
- forUserId
- forUser と同様ですが、ユーザーは USERS テーブル中にある内部ユーザー ID によって識別されます。
- creditAdjustment_i
- 商品の信用販売の金額を調整するための金額。
この数字の形式は、java.math.BigDecimal オブジェクトのルールに一致しなければなりません。
この数字の小数点にはピリオドを使用しなければなりません。
この金額は、RMAITEM テーブルの ADJUSTMENT 列に置かれます。
このパラメーターはオプションであり、forUserId パラメーターが指定された場合にのみ有効です。
- langId
- セッション期間中の優先言語を設定またはリセットします。
ストアでサポートされている言語は、STORELANG テーブルにあります。
- storeId
- (必須) ストアの参照番号。
- orderItemId_i
- (必須) 使用可能であれば、OrderItem ID。
動的キットの一部ではないコンポーネントまたは OrderItem からの全体キットを返品するためには、
このパラメーターに値を指定しなければなりません。
OrderItem を持つ動的キットの一部を戻すためには、
このパラメーターおよび catEntryId_i パラメーターに値を指定しなければなりません。
- catEntryId_i
- (必須) 返品されるカタログ・エントリー。
この値は、商品またはアイテムでなければなりません。
その他のカタログ・エントリー値はサポートされていないので、
BAD_MISSING_CMD_PARAMETER 例外が呼び出されます。
OrderItem ではないコンポーネントを返品するためには、このパラメーターに値を指定しなければなりません。
OrderItem を持つ動的キットの一部を返品するためには、
このパラメーターおよび orderItem_i パラメーターに値を指定しなければなりません。
- attrName_i
- 商品に対して定義される特有の属性。
- attrValue_i
- 商品属性の値。
- RMAId
- 返品アイテムが追加される既存の RMA の ID。
新規 RMA を作成するには、値として "**" を使用します。
このパラメーターに値が指定されていない場合、** がデフォルトとして使用されます。
- quantity_i
- (必須) 返品される数量。
- UOM_i
- quantity_i の計測単位。
この値は、QTYUNIT テーブル内の基本キーの 1 つと一致しなければなりません。
指定されない場合、
CATENTSHIP テーブルのその OrderItem と同じ CATENTRY_ID の行の QUANTITYMEASURE 列の値が使用され、
quantity_i パラメーターの値は、CATENTSHIP テーブルの同じ行の NOMINALQUANTITY 列によって乗算されます。
- comment_i
- 返品されるアイテムに関するコメント。
- reason_i
- (必須) 購入者による、返品の理由。
この値は、RTNREASONテーブルの CODE 列にあり、理由タイプは 'B' または 'C' です。
- outRMAName
- リダイレクト先の URL に渡される、名前と値の対に使用される名前。
このパラメーターは、コマンドのチェーニングに役立ちます。
このパラメーターが指定されない場合、RMAId パラメーターの値が使用されます。
- URL
- (必須) コマンドが正常に完了した時に呼び出される URL
- forUserId
- コマンドを実行するユーザーのログオン ID。
このパラメーターを指定できるのは、技術員のセキュリティー役割がある個人だけです。
ユーザーは USERS テーブル中にある内部ユーザー ID によって識別されます。
例
以下の例では、オーダー・アイテム 15 の 5 単位を新規 RMA に追加します。
返品の理由コードは DEFECT です。
RMA が作成された後にそれが表示されます。
http://myhostname/webapp/wcs/stores/servlet/ReturnItemAdd?
orderItemId_1=15&quantity_1=5&reason_1=DEFECT&RMAId=**&storeId=1
&URL=ReturnDisplay
動作
- RMAId が "**" に設定されている場合、新規 RMA を作成します。
新規 RMA の通貨は、オーダー・アイテムを基にした、返品アイテムのいずれかの通貨に設定されます。
返品されるオーダー・アイテムが 1 つもない場合 (すなわち、カタログ・エントリーだけが戻る場合) には、
通貨は呼び出し側のショッピング通貨に設定されます。
新規 RMA の取引 ID は、返品されたオーダー・アイテムのいずれかの取引 ID に設定されます。
返品されるオーダー・アイテムがない場合には、
コマンド・コンテキスト (getCurrentTradingAgreements() メソッド) 内で見つかる最初の取引 ID が使用されます。
RMA の memberId は、コマンド・コンテキスト内のユーザー ID に設定されます。
- RMAId が "**" に設定されていない場合、既存の RMA をオープンし、それが現行のストアに属するかどうかを検査します。
- RMA の PREPARED フラグは 'N' に設定されます。
- forUser または forUserId パラメーターのどちらかが指定されている場合、RMA は 'EDT'、'PND'、'APP' 状況で開始し、
その状況は 'EDT' に設定される必要があります。
それ以外の場合、RMAは 'PRC' 状況で開始し、その状況は 'PRC' に変更されなければなりません。
- このコマンドには OrderItems およびカタログ・エントリーのリストを指定して呼び出すことができます。
それぞれは、以下のように処理されます。
- OrderItem が RMA に追加されることになる場合、以下のようになります。
- CheckReturnItemInCorrectStateCmd
タスク・コマンドを呼び出し、オーダー・アイテムが返品可能な状態にあることを確認します。
- OrderItem の通貨が、RMA の通貨と同じであることを検査します。
- オーダー・アイテムの取引 ID が RMA の取引 ID と同じであることを検査します。
- このオーダー・アイテムの返品条件があることを検査します。
- オーダー・アイテムの取引 ID およびメンバー ID と関連のある条件が、
RMA と関連する条件と互換性のあることを検査します (同じ条件)。 RMA と関連する条件は、RMA の取引 ID および既存の返品されるオーダー・アイテムのメンバー ID、
または RMA のメンバー ID を使用して計算されます (すべての既存の返品されるアイテムがカタログ・エントリーの場合)。
- catEntryId が指定される場合 (部分的なキット・リターン)、
ResolveSkuCmd タスク・コマンドを呼び出し、カタログ・エントリー ID およびアイテム・スペック ID を解決します。
- これが部分的なキット・リターンである場合、
CalculateReturnItemCreditForCatEntryCmd タスク・コマンドを呼び出し、
それ以外の場合には CalculateReturnItemCreditCmd タスク・コマンドを呼び出します。
- アイテムを RMA に追加して、RMA アイテムを RMA アイテム・コンポーネント内に展開します。 これがキットの場合、
そのオーダー・アイテムと関連する OICOMPLIST テーブルからコンポーネント・レコードを作成します。 それ以外の場合には、返品されたアイテムのために 1 つのコンポーネントが作成されます。
- カテゴリー・エントリーが RMA に追加されることになる場合、以下のようになります。
- ResolveSkuCmd タスク・コマンドを呼び出し、カタログ・エントリー ID およびアイテム・スペック ID を解決します。
- 返品されたアイテムの通貨は、RMA の通貨に設定されます。
- CalculateReturnItemCreditForCatEntryCmd タスク・コマンドを呼び出し、クレジット金額を計算します。
- すべてのアイテムに関して、
AutoApproveReturnItemCmd タスク・コマンドが呼び出され、
そのアイテムが自動的に承認されるかどうかを確認します。 返品されたアイテムは、自動承認に基づいて 'PND' または 'APP' 状況に設定されます。
- 計測単位は OrderItemAdd コマンドと類似した方法で使用されます。 指定された計測単位による数量は、
CATENTSHIP テーブルで指定された正規化数量の倍数である正規化数量に変換されます。
- OrderItem の動的キットまたは全体キットの一部ではないコンポーネントを返品するために、
コマンドは orderItemId_i パラメーターの値を取得して、キット用に、
RMAITEM テーブルへ 1 つのエントリーを追加し、
RMAITEMCMP テーブルに複数のエントリーを追加します。
また、その他について RMAITEMCMP テーブルへ 1 つのエントリーを追加します。 キットのコンポーネントが RMAITEMCMP テーブルに追加される際、
オプションとしてマークされたそれらのコンポーネント (OICOMPLIST テーブルの REQUIRED 列を 'N' に設定する) は記録されません。
- OrderItem を有する動的キットの一部を返品するために、
コマンドは orderItemId_i パラメーターおよび catEntryId_i パラメーターの値を取得し、
RMAITEM テーブルおよび RMAITEMCMP テーブルにエントリーを追加します。
- OrderItem ではないコンポーネントを返品するため、このコマンドは catEntryId_i パラメーターの値を取得して、
エントリーを RMAITEM テーブルに追加し、エントリーを RMAITEMCMP テーブルに追加します。
- 商品またはアイテムであるカタログ・エントリーのみが返品できます。
- 正常終了する際、指定された URL にダイレクトするようにセットアップします。
- ExtendReturnItemAddCmd タスク・コマンドを呼び出します。
例外条件
- オーダー・アイテムの通貨が RMA の通貨と同じではない場合、メッセージ _ERR_ITEM_RMA_CURRENCY_MISMATCH と共に ECApplicationException が生成されます。
- オーダー・アイテムが正しい状態にない場合、CheckReturnItemInCorrectStateCmd タスク・コマンドにより判別され、
メッセージ _ERR_ORD_ITEM_NOT_RETURNABLE と共に ECApplicationException が生成されます。
- RMA 状況が 'PRC' に設定されていない場合 (forUser または forUserId パラメーターが使用されていない場合)、
または 'EDT'、'PND'、'APP' に設定されていない場合 (forUser または forUserId パラメーターが使用されていない場合) には、
メッセージ _ERR_RMA_IN_INVALID_STATE_FOR_COMMAND を伴い ECApplicationException が生じます。
- オーダー・アイテムの取引 ID が RMA の取引 ID と同じではない場合、
メッセージ _ERR_ITEM_RMA_TRADING_MISMATCH と共に ECApplicationException が生成されます。
- このオーダー・アイテムの返品条件がない場合には、
メッセージ _ERR_NO_RETURN_TERMCOND と共に ECApplicationException が生成されます。
- オーダー・アイテムの条件が RMA に関連する条件と異なる場合、
メッセージ _ERR_ITEM_RMA_TERMS_MISMATCH と共に ECApplicationException が生成されます。
