OrderCopy コマンド
このコマンドは、状況属性が "P" または "E" のいずれかのオーダーを作成、マージ、または変更します。

パラメーター値
- http://host_name/path/
- (必須) WebSphere Commerce サーバーおよび構成パスの完全修飾名
- langId
- セッション期間中の優先言語を設定またはリセットします。
ストアでサポートされている言語は、STORELANG テーブルにあります。
- forUser
- このコマンドの実行対象のユーザーのログオン ID。
このパラメーターを指定できるのはオーダーを処理する権限がある人だけです。
- forUserId
- forUser と同様ですが、ユーザーは USERS テーブル中にある内部ユーザー ID によって識別されます。
- URL
- (必須) コマンドが正常終了したときに呼び出されるリダイレクト URL。
- fromOrderId_i
- 列挙グループ i が処理されるときにオーダー・アイテムのコピー元のゼロ個または 1 個以上のソース・オーダーを指定します。
特殊の省略形 "."、"*"、".t" 、"*t"、および "q" は memberId_i および storeId を使用して解決されます。
- toOrderId
- 作成または変更するオーダーを指定します。
これはオーダー参照番号として、あるいは特殊省略形 "."、"*"、".t"、"*t"、"**"、および ".**." のいずれかとして指定できます。
指定しないと、デフォルトとして、新規オーダーを作成する "**" が使用されます。
複数のオーダーが指定された場合、最後に更新されたオーダーだけが指定されたかのようになります。
省略形は、現行顧客 (このコマンドを実行している顧客) と storeId パラメーターに指定されたストアを使用して解決されます。
- copyOrderItemId_i
- どのオーダー・アイテムを、fromOrderId_i で指定されたソース・オーダーからコピーし、toOrderId で指定された宛先オーダーに追加するのかを指定します。
- 指定されないか、または "*" が指定されると、
パラメーターは、fromOrderId_i で指定されたオーダーに属するすべてのオーダー・アイテムを参照します。
- "." が指定されていると、パラメーターは、fromOrderId_i によって指定されているオーダーに属している最近更新されたオーダー・アイテムを参照します。
- "**" が指定されていると、列挙グループのソース・オーダーからではなく、i によって指定されている列挙グループ内のその他のパラメーターからのみの情報を使用して宛先オーダーに追加される単一の新規オーダー・アイテムを参照します。
この場合、catEntryId_i または partNumber_i は指定する必要があります。
OrderCopy コマンドは、OrderItemUpdate コマンドを呼び出し、オーダー・アイテムを宛先オーダーへ新規追加します。
- updateOrderItemId_i
- 宛先オーダー内の、更新するオーダー・アイテムを指定します。
これは、列挙グループのソース・オーダーからでも、catEntryId_i および partNumber_i からでもなく、i によって指定されている列挙グループ内のその他のパラメーターからの情報を使用して更新されます。
オーダー・アイテムのカタログ・エントリー ID は更新できないことに注意してください。OrderCopy コマンドは、宛先オーダーのオーダー・アイテムを更新するために OrderItemUpdate コマンドを呼び出します。
- "*" が指定されると、宛先オーダー内のすべてのオーダー・アイテムを意味します。
- "." が指定されていると、最新に更新されたオーダー・アイテムを意味します。
- orderInfoFrom
- オーダー・レベル情報 ( ORDERS
テーブルの DESCRIPTION、ADDRESS_ID、SEQUENCE、FIELD1、FIELD2、および FIELD3 列の値)
をコピーするオーダーの参照番号を指定します。
- 複数のオーダーが指定された場合、それらの中で最後に更新されたオーダーだけが指定されたように扱われます。
- "**" が指定されると、オーダー・レベル情報はどのオーダーからもコピーされません。
-
このパラメーターが指定されておらず、fromOrderId_i パラメーターによって指定されたソース・オーダーが 1 つだけの場合、そのオーダーが指定されたかのようになります。
それ以外の場合は、"**" がデフォルトになります。
省略形は、現行ショッパーと storeId パラメーターで指定されたストアを使用して解決されます。
- payInfoFrom
- GetOrderPaymentInfoCmd タスク・コマンドを呼び出して、入手される支払い情報をコピーするオーダーの参照番号を指定します。
複数のオーダーが指定された場合、それらの中で最後に更新されたオーダーだけが指定されたように扱われます。
"**" が指定されると、オーダー・レベル情報はどのオーダーからもコピーされません。
このパラメーターが指定されておらず、fromOrderId_i パラメーターによって指定されたソース・オーダーが 1 つだけの場合、そのオーダーが指定されたかのようになります。
それ以外の場合は、"**" がデフォルトになります。
省略形は、現行顧客と storeId パラメーターで指定されたストアを使用して解決されます。
- catEntryId_i
- 列挙グループ i 内のオーダー・アイテムのカタログ・エントリー ID を設定します。
- quantity_i
- 列挙グループ i 内のオーダー・アイテムの数量を設定します。
- UOM_i
- quantity_i. の計測単位。
- partNumber_i
- カタログ・エントリー ID に関係している部品番号。
これは catEntryId_i を変更します。
- addressId_i
- i によって指定された列挙グループ内のオーダー・アイテムの配送先住所の参照番号。
この住所は、このコマンドを実行しているショッパーのものでなければなりません。
- shipModeId_i
- i によって指定される列挙グループに対して、オーダー・アイテムが宛先オーダーに追加されたり、
宛先オーダー内で更新されるときに OrderItemUpdate コマンドに渡される配送モード参照番号を指定します。
この参照番号は、特定の配送サービスに関連付けられます。
- comment_i
- オーダー・アイテムが宛先で追加または更新されるときに OrderItemUpdate コマンドに渡すアイテムに付けられるコメント。
- field1_i
- オーダー・アイテムが宛先オーダーで追加または更新されるときに OrderItemUpdate コマンドに渡す、i によって指定されている列挙グループの整数値を指定します。
- field2_i
- i によって指定される列挙グループに対して、
オーダー・アイテムが宛先オーダーに追加されたり、宛先オーダー内で更新されるときに、
OrderItemUpdate コマンドに渡される文字ストリングを指定します。
- contractId_i
- オーダー・アイテムが宛先で追加または更新されるときに OrderItemUpdate コマンドに渡す、オーダーと関連付けられている契約参照番号。
- offerId_i
- 新規オーダー・アイテムの作成時に選択するオファー ID のリスト。このリストは、OrderItemUpdate コマンドに渡されます。デフォルト値はありません。
- outOrderName
- リダイレクト URL に追加される、名前と値の対の名前を指定します。
追加済みの名前と値のペアの各値は宛先オーダーの参照番号です。デフォルト値は "orderId" です。
- outOrderItemName
- リダイレクト URL に追加される、名前と値の対の名前を指定します。
追加済みの名前と値のペアの各値は宛先オーダー・アイテムの参照番号です。デフォルト値は "orderItemId" です。
- description
- 宛先オーダーの説明を設定します。指定しないと、"orderInforFrom" オーダーの説明 (ある場合) が使用されます。
- billingAddressId
- 宛先オーダーの請求先住所 ID を指定します。 指定しないと、"orderInfoFrom" オーダーの請求先住所 (ある場合) が使用されます。
- displaySeq
- 宛先オーダーの表示順序を設定します。指定しないと、"orderInforFrom" オーダーの表示順序 (ある場合) が使用されます。
- field1 から field3
- それぞれ、宛先オーダーの field1、field2、および field3 値を設定します。指定しないと、"orderInfoFrom" オーダーの対応しているフィールド値 (ある場合) が使用されます。
- status
- 宛先オーダーの状況を指定します。 有効値は I (投入済み) および P (保留) だけです。デフォルトは P です。I が指定されていると、宛先オーダーの更新後に、
OrderPrepare が呼び出し済みであっても表示しロックするために準備済みされてから、I に設定されます。
これで、オーダーは OrderProcess によって受け入れられるように準備され、ショッパーがそれ以上変更できないようにします。
- memberId_i
- fromOrderId_i で使用されると、特殊省略形 ("."、"*"、".t"、".**."、および "*t") を解決するために使用されるメンバーの参照番号。
たとえば、以下のコマンドはメンバー 1001 の保留中のオーダーをすべて参照します。
fromOrderId_1=*&memberId_1=1001
デフォルト値は、現行ユーザーのメンバー ID です。
現在のショッパーが、他のショッパーのオーダーを許可なしでアクセスしようとすると、例外エラーが発生します。
- storeId
- 宛先オーダーのストア ID を設定します。 これは、特殊省略形 (".", "*",
".t", ".**.", および "*t") が fromOrderId_i、toOrderId、orderInfoFrom、および payInfoFrom に使用された場合に、それらを解決するためにも使用されます。
たとえば、以下のコマンドはストア 1 のメンバー 1001 の全保留オーダーを参照します。
fromOrderId_1=*&memberId_1=1001&storeId=1
- attr_i_名前
- i によって指定されている列挙グループのオーダー・アイテムを宛先オーダーに追加するときに、OrderItemUpdate に渡す属性の名前と値を指定します。
たとえば、以下のコマンドは、属性が "length"=="10" の部品 ABC123を参照します。
partNumber_1=ABC123&attr_1_length=10
- pay_payment_name
- 宛先オーダーの支払い名と値のペアを設定します。たとえば、以下のコマンドは、支払い名と値のペア "creditCardNumber==2222222222" を参照します:
pay_creditCardNumber=2222222222
これらの支払い名と値のペアは、SetOrderPaymentInfoCmdタスク・コマンドによって ORDPAYINFO テーブルに追加されます。
指定しないと、payInfoFrom オーダーの支払い名と値のペア (ある場合) が使用されます。
- partOwner_Id_i
- partNumber_i で使用されるパーツ所有者のメンバー ID。ストアの所有者に対するデフォルト。
- remerge (再マージ)
- 可能であれば同じ順序と同じ correlationGroup 属性で、他の OrderItems と共にマージする OrderItems のリスト。
- merge (マージ)
- correlationGroup 属性には関係なく、可能であれば同じ順序で、他の OrderItems と共にマージする OrderItems のリスト。
- check (検査)
- CheckInventory タスク・コマンドで検査する 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
以下の例は、デフォルト toOrder が ** (新規オーダー) であり、
copyOrderItemId_1 のデフォルトが * (全オーダー・アイテム) であるので、
fromOrderId_1 を使用してオーダーをコピーします:
http://myhostname/webapp/wcs/stores/servlet/OrderCopy?fromOrderId_1=388
&URL=OrderItemDisplay
例 2
以下の例は、2 つの保留オーダーを作成してから、全オーダー・アイテムをすべての顧客の保留オーダーからマージします。
http://myhostname/webapp/wcs/stores/servlet/OrderItemAdd?catEntryId=322200305
&quantity=11&URL=OrderItemDisplay&storeId=32&orderId=**
http://myhostname/webapp/wcs/stores/servlet/OrderItemAdd?catEntryId=322200301
&quantity=11&URL=OrderItemDisplay&storeId=32&orderId=**
http://myhostname/webapp/wcs/stores/servlet/OrderCopy?URL=OrderItemDisplay
&fromOrderId_1=*©OrderItemId_1=*
例 3
以下の例は、新規オーダー・アイテムをオーダー 111 に追加します。
http://myhostname/webapp/wcs/stores/servlet/OrderCopy?fromOrderId_1=111
&toOrderId=111&partNumber_1=PART-I312200303&quantity_1=21&memberId_1=0
&storeId=31&URL=OrderItemDisplay
例 4
以下の例は partNumber を使用してコピーします。
これが指定されると、catEntryId_i パラメーターは無視されます。
他のパラメーターによって指定または暗黙指定されている partNumber_i パラメーターおよびストア参照番号は、
CATENTRY テーブル中の PARTNUMBER および MEMBER_ID 列を選択することによって商品参照番号を判別するために使用されます。
このコマンドは商品参照番号が catEntryId_i に対する値として指定されているかのように振る舞います。
コマンドはほかのパラメーターからストア参照番号を判別できます。
結果は、新規オーダー・アイテムがオーダー 111 に追加されるというものです。
http://myhostname/webapp/wcs/stores/servlet/OrderCopy?fromOrderId_1=111
&toOrderId=111&partNumber_1=PART-I312200303&quantity_1=21
&memberId_1=1&storeId=31&URL=OrderItemDisplay
動作
- ResolveOrdersCmd および ResolveOrderItemsCmd タスク・コマンドが呼び出され、
OrderId およびOrderItemId 省略形を解決し、どのオーダーおよび OrderItems がパラメーターによって指定されたのかを判別する。
- 必要な場合には、宛先オーダーが状況 P を指定しアンロック状態で ORDERS テーブル中に作成される。
- CheckOrderCopyCmd タスクが呼び出され、
fromOrderId_i、orderInfoFrom、および payInfoFrom パラメーターによって指定されたオーダーから情報をコピーし、宛先オーダー内の情報を更新するためのショッパーの権限を検査する。
- オーダー情報が、ORDERS テーブル内で更新される。
- 支払い情報が payInfoFrom パラメーターによって指定されたオーダーから読み取られる。そのために、次を呼び出す。
GetOrderPaymentInfoCmd タスク・コマンド。
pay_payment_name パラメーターの指定に従って更新され、toOrderId パラメーターで指定された宛先オーダーに、
SetOrderPaymentInfoCmd 処理タスクを呼び出すことによって書き込まれる。
- i の昇順の各 copyOrderItem_i および updateOderItem_i パラメーターに対して、
指定オーダー・アイテム情報を、OrderItemUpdate を呼び出して、
宛先オーダーORDERITEMS テーブルへコピーするか、またはその情報で更新する。
- 状況パラメーターが I を示していると、宛先オーダーは、表示して、OrderPrepare コマンドを呼び出したかのように処理され (金額が計算されてオーダーがロックされ)、
ORDERS および ORDERITEMS テーブル中の宛先オーダーおよびそのオーダー・アイテムの状況が I に変更される。
- ExtOrderCopyCmd タスク・コマンドが呼び出される。
- outOrderName および outShiptoName パラメーターによって指定された名前と値の対がリダイレクト URL に追加される。
例外条件
- CheckOrderCopyCmd タスク・コマンドは、
OrderCopy コマンドがオーダーへのアクセスを拒否すると、エラー・ビュー OrderCopyErrorView でタイプ_ERR_ORDER_COPY の ECApplicationException をスローします。
以下の名前と値のペアが設定されます。
- ERROR_CODE=601
- orderId=問題のオーダー ID
- 宛先オーダーが保留状態になっていないと、
タイプ _ERR_ORDER_WRONG_STATUS の ECApplicationException がエラー・ビュー OrderCopyErrorView でスローされます。
以下の名前と値のペアも設定されます。
- ERROR_CODE=603
- orderId=問題のオーダー ID
- すべて OrderItemUpdate 例外条件。