OrderStatus コマンド
OrderStatus コマンドは、Update_WCS_OrderStatus、Update_NC_OrderStatus、または Order Status Update メッセージが、
バックエンド・システムから受信されると使用されます。 このコマンドは、既存オーダーの状況に関する情報を更新します。
パラメーター
- sequenceNumber
- String。 シリアライゼーションのための WCS オーダー状況のシーケンス番号です。
- lastUpdateTimestamp:
- タイム・スタンプ形式の String。 シリアライゼーションのための、WebSphere Commerce オーダー状況の最終更新タイム・スタンプ。
- versioning: String "TRUE" または "FALSE"。 デフォルトは FALSE です。
- TRUE の場合には、バージョン管理が使用可能になります。
下記パラメーターは ORDSTAT テーブルの列に対応しています。
- orderId: Integer。
- テーブル ORDSTAT 中の ORDERS_ID 列に定義されているとおりの WebSphere Commerce オーダー参照番号。 この参照番号は、ORDERS テーブル中の列 ORDERS_ID を参照する外部キーです。
- merchantOrderNumber: STRING。必須。
- OSMORDER 列に定義されている通りにバックエンド・システム内で生成されているオーダー番号。
- currency: String
- OSCPCUR 列に定義される表示価格の ISO 4217 通貨タイプです。
- priceTotal: BigDecimal(20,4)
- OSPRTOT 列に定義されるオーダーの商品価格合計です。
- taxTotal: BigDecimal(20,4)
- OSTXTOT 列への定義されるオーダーの税合計です。
- shippingTotal: BigDecimal(20,4)
- OSSHTOT 列に定義されるオーダーの配送料合計です。
- shipingTaxTotal: BigDecimal(20,4)
- OSSHTXTOT 列に定義されるオーダーの配送料金税合計です。
- orderStatus: String
- OSSTATUS 列に定義されるオーダーの状況です。
- placeDateTime: タイム・スタンプ
- OSPLTIME 列に定義されるオーダーが実際に発行される日付です。
- requestShipDateTime: タイム・スタンプ
- OSRSTIME 列に定義されるオーダーの配送要求日です。
- scheduleShipDateTime: タイム・スタンプ
- OSSSTIME 列に定義されるオーダーの配送予定日です。
- actualShipDateTime: タイム・スタンプ
- OSASTIME 列に定義されるオーダーの実配送日です。
- invoiceDateTime: タイム・スタンプ
- OSINVTIME 列に定義されるオーダーの送り状送付日です。
- invoiceValue: BigDecimal(20,4)
- OSINVVAL 列に定義されるオーダーの送り状送付の所要日です。
- shipCondition: String
- OSSCOND 列に定義されるオーダーの分割配送を受諾するかどうかを指定するコードです。'SC': 一回の配送、 'SP': 分割配送
- shippingModeFlag: String
- OSSMFLAG 列に定義される、配送先住所および配送モードがオーダー・レベルか、
またはオーダー・アイテム・レベルであることを指示するコード。O': オーダー・レベル、 'I': アイテム・レベル
- comment: String
- OSCMNT 列に定義されるオーダー状況に関するコメントです。
- field1: Integer
- FIELD1 列に定義されるオーダー状況のカスタマイズ・フィールド 1 です。
- field2: BigDecimal(15,2)
- FIELD2 列に定義されるオーダー状況のカスタマイズ・フィールド 2 です。
- field3: String
- FIELD3 列に定義されるオーダー状況のカスタマイズ・フィールド 3 です。
- items: ハッシュ・テーブルのベクトル
- 各ハッシュ・テーブルは 1 アイテムのパラメーターを表します。
動作
- オーダーの初回オーダー状況には orderId および merchantOrderNumber が指定されていなければなりません。
- orderId に指定されているオーダーが ORDERS テーブル中に存在しているかどうか調べます。
- sequenceNumber および lastUpdateTimestamp などのシリアライゼーション情報が利用可能である場合には、値が ORDSTAT テーブル中の値より最新であるかどうかを調べ、最新でない場合には、更新は実行されません。
- 指定されたすべての情報を使用して ORDSTAT テーブル中の行を作成または更新します。
- バージョン管理が使用可能になっていて、これがオーダーの初回オーダー状況である場合には、新規行が ORDSTAT テーブル中に作成されることになります。そうでない場合には、最終オーダー状況のコピーが作成されて、そのバージョン (OSVERNBR) が既存バージョンの最大数 +1 に設定されます。指定されたすべての情報が入っている新規行が、
その OSVERNBR が 0 に設定されて作成されます。
- テーブル ORDERS の STATUS 列の値を 'G' に更新します。
例外条件
- 指定されている orderId が ORDERS テーブル中の有効なオーダー番号でありません。
- orderId または merchantOrderNumber のいずれかが、特定オーダーの初回オーダー状況に指定されていません。
- orderId および merchantOrderNumber が後続のオーダー状況更新で特定オーダーのために ORDSTAT テーブル中にすでん存在しているものと不一致です。
- シリアライゼーション情報が指定されていて、オーダー状況メッセージが順序通りでありません。