OrderPrepare 指令
這個指令會決定訂單的價格、折扣、貨運費和稅金來準備訂單。
如果沒有指定訂單參考號碼,便會準備給定商店之現行客戶的所有現行擱置訂單。

參數值
- http://host_name/path/
- (必要)WebSphere Commerce Server 和架構路徑的完整名稱。
- langId
- 設定或重設在階段作業期間的屬意語言;
有關商店的支援語言可在 STORELANG 表格中找到。
- forUser
- 將代替其執行指令之使用者的登入 ID;只有具備處理訂單權限的人才可指定這個參數。
- forUserId
- 與 forUser 相同,但卻是 USERS 表格中之內部使用者 ID 所指的使用者。
- URL
- (必要)當指令順利完成時所要呼叫的 URL。
- storeId
- 要準備訂單之商店的參考號碼。
- orderId
- 所要準備之訂單的參考號碼。如果省略此參數,則此指令會將之預設為現行擱置的訂單。請參閱訂單縮寫,以取得說明。
- outOrderName
- 指出將加到重新導向 URL 中的「名稱-值」配對名稱。
每個新增的「名稱-值」配對的值都是準備的訂單之參考號碼。
若未提供名稱,則會採用預設名稱 orderId。
- remerge
- 在同一訂單中要合併於其他 OrderItems 且具有相同的 correlationGroup 屬性 (如果可能) 的 OrderItems 清單。
除非其 InventoryStatus 是 "NALC",或 allocate、backorder 或 reverse 參數指定了 OrderItems,否則,不會合併 OrderItems。
- merge
- 在同一訂單中要合併於其他 OrderItems (如果可能),且不論其 correlationGroup 屬性是什麼的 OrderItems 清單。
- check
- CheckInventory 作業指令應該檢查的 OrderItems 清單。
- allocate
- 應該從現有庫存來配置的 OrderItems 清單。
- backorder
- 應該從預期庫存來配置的 OrderItems 清單。
- reverse
- 應該釋出其配置(也就是從現有或預期庫存中適當解除配置)的 OrderItems 清單。
附註:只有在啟用 ATP 庫存時,才適合使用 remerge、merge、check、allocate、backorder 和 reverse 等參數(請參閱 STORE 表格中的 ALLOCATIONGOODFOR 直欄)。
它們代表要傳遞給 AllocateInventory 作業指令的 OrderItems 清單,由 AllocateInventory 作業指令依如下指定來呼叫
CheckInventoryAvailability、AllocateExistingInventory、AllocateExpectedInventory、DeallocateExistingInventory 和 DeallocateExpectedInventory 作業指令。
另外,這些參數也接受 OrderItem 縮寫,請參閱訂單子系統指令的說明,以取得詳細資料。
預設 ATP 參數值如下:
- remerge=*
- merge=*n
- check=*n
- allocate=*
- backorder=*
- reverse=*
範例
下列範例會準備參考號碼為 1 的訂單,並重新導向至 OrderDisplay 指令,以檢視這份訂單。
http://myhostname/webapp/wcs/stores/servlet/OrderPrepare?orderId=1
&URL=/webapp/commerce/OrderDisplay
規則
- 備妥指定的訂單進行顯示(由 OrderDisplay 指令)或處理(由
OrderProcess 指令)。
如果沒有指定訂單號碼的話,指令會準備指定的商店所擁有的現行客戶的所有現行擱置訂單。
- 指定的訂單狀態必須是 'P'、'I'、'E'、'W' 或 'N'。
- OrderPrepare 指令呼叫 PrepareOrder
作業指令,針對指定的每一個訂單執行下列動作:
異常狀況
- 如果沒有訂單符合指定參數的話,指令會擲出 ECApplicationException 異常狀況,指定 ErrorOrderNoneCmd 錯誤檢視指令。
- 如果訂單中有任何產品或項目無法購買,指令會擲出 ECApplicationException 異常狀況,指定 BadOrderDataErrorView 錯誤檢視指令。
如果需要訂單錯誤之異常狀況進一步的資訊,請參閱訂單錯誤檢視畫面的錯誤碼。
- 如果符合下列中的任何情況的話,指令會擲出 ECApplicationException 異常狀況,指定 RetrievePriceErrorView 錯誤檢視指令:
- 輸入交易協定(合約)無效,或沒有使用資格。
- 訂單中所用的交易協定套用不相容的付款方法。
- 無法擷取任何產品或項目的標價。
- 如果 STENCALUSG 表格中的 USAGEFLAGS 直欄所指出的任何計算方式無法算出訂單中每一個訂單項目的值,
並且如果 STENCALUSG 表格中的 USAGEFLAGS 直欄指出一定要算出一個值,
就會擲出 ECApplicationException 異常。
- 如果訂單沒有 OrderItems,會擲出 ECApplicationException 異常。