OrderItemStatus 指令
當收到後端系統傳來的 Update_WCS_OrderStatus、
Update_NC_OrderStatus 或「訂單狀態更新」訊息時,OrderStatus、OrderConfirmStatus、OrderInvoiceStatus 與
OrderShippingStatus 指令即會內部呼叫 OrderItemStatus 指令。
此指令會更新項目之現有訂單的狀態資訊。
參數
以下列出指令的參數。每一個參數各對應至 ORDISTAT 表格中的一個欄位:
- versioning: 可為字串 "TRUE" 或 "FALSE"。選用;預設值為 FALSE。
- 若為 TRUE,則會啟用版本化。
- orderItemId: 整數
- WebSphere Commerce 訂單項目參考號碼;將視 ORDISTAT 表格之 ORDERITMES_ID 中的定義而定。此為
參照 ORDERITEMS 表格中之 ORDERITEMS_ID 直欄的外來鍵。
- merchantItemNumber: 字串
- 在後端系統中產生的訂單項目號碼;視 OIMITEM 直欄中的定義而定。
- PartNumber: 字串
- 項目產品號碼/SKU;視 PARTNUMBER 直欄中的定義而定。
- UnitOfMeasure: 字串
- 項目的度量單位;視 OIUOFM 直欄中的定義而定。
- RequestQuantity: 整數
- 所要的項目數量;視 OIQTREQUEST 直欄中的定義而定。
- ConfirmQuantity: 整數
- 確認的項目數量;視 OIQTCONFIRM 直欄中的定義而定。
- ShipQuantity: 整數
- 出貨的項目數量;視 OIQTSHIP 直欄中的定義而定。
- Currency: 字串
- 表示價格的 ISO 4217 貨幣類型;視 OICPCUR 直欄中的定義而定。
- UnitPrice: BigDecimal(20,4)
- 產品單價;視 OIUNPRC 直欄中的定義而定。
- PriceTotal: BigDecimal(20,4)
- 項目的產品價格總額;視 OIPRTOT 直欄中的定義而定。
- TaxTotal: BigDecimal(20,4)
- 項目的稅金總額;視 OITXTOT 直欄中的定義而定。
- ShippingTotal: BigDecimal(20,4)
- 項目的貨運費總額;視 OISHTOT 直欄中的定義而定。
- ShippingTaxTotal: BigDecimal(20,4)
- 項目運費的總稅金;視 OISHTXTOT 直欄中的定義而定。
- Status: 字串
- 項目狀態;視 OISTATUS 直欄中的定義而定。
- PlaceDateTime: 時間戳記
- 項目實際下單的日期;視 OIPLTIME 直欄中的定義而定。
- RequestShipDateTime: 時間戳記
- 所要求的項目出貨日期;視 OIRSTIME 直欄中的定義而定。
- ScheduleShipDateTime: 時間戳記
- 所排定的項目出貨日期;視 OISSTIME 直欄中的定義而定。
- ActualShipDateTime: 時間戳記
- 實際的項目出貨日期;視 OIASTIME 直欄中的定義而定。
- InvoiceDateTime: 時間戳記
- 項目的發票日期;視 OIINVTIME 直欄中的定義而定。
- InvoiceValue: BigDecimal(20,4)
- 項目發票的淨值;視 OIINVVAL 直欄中的定義而定。
- itemShipCondition: 字串
- 此代碼用以指出是否接受部份的項目出貨;
視 OISCOND 直欄中的定義而定。SC':完整出貨,'SP':部份出貨。
- itemComment: 字串
- 項目狀態的相關備註;定義於 OICMNT 直欄中。
- field1: 整數
- 項目狀態自訂欄位 1;視 FIELD1 直欄中的定義而定。
- field2: BigDecimal(15,2)
- 項目狀態自訂欄位 2;視 FIELD2 直欄中的定義而定。
- field3: 字串
- 項目狀態自訂欄位 3;視 FIELD3 直欄中的定義而定。
規則
- 訂單的第一個訂單項目狀態必須有指定 orderItemId 與 merchantItemNumber。
- 檢查 orderItemId 中指定的訂單項目是否存在於 ORDERITEMS 表格中。
- 在每一個後續的訂單項目狀態(ORDISTAT 表格中有其項目存在)中
後端系統並不需要 orderItemId 即可為現有的分項建立新分項。
- 使用提供的資訊,建立或更新 ORDISTAT 表格中之列。
- 若有啟用版本化,且這是訂單的第一個訂單項目狀態,
則會在 ORDISTAT 表格中建立新列。否則將會建立一個最新訂單項目狀態複本,並將其版本 (OIVERNBR) 設為現有版本數最大值 + 1。
此外會建立新列並填入所有提供的資訊,
且將其版本 (OIVERNBR) 設為 0。
異常狀況
- 指定的 orderItemId 在 ORDERITEMS 表格中不是一個有效的訂單號碼。
- 在特定訂單項目的第一個訂單項目狀態中並未指定 orderItemId 或 merchantItemNumber。
- 在後續的訂單項目狀態更新中,orderItemId 與 merchantItemNumber 和
ORDISTAT 表格中特定訂單項目的不符。