SetOrderTemplate 指令
這個指令會設定或重設「範本」訂單或「現行範本」訂單。

參數值
- http://host_name/path/
- (必要)WebSphere Commerce Server 和架構路徑的完整名稱。
- forUser
- 將代替其執行指令之使用者的登入 ID;只有具備處理訂單權限的人才可指定這個參數。
- forUserId
- 與 forUser 相同,但卻是 USERS 表格中之內部使用者 ID 所指的使用者。
- langId
- 設定或重設在階段作業期間的屬意語言;
有關商店的支援語言可在 STORELANG 表格中找到。
- storeId
- 設定目標訂單的商店 ID。
它也在特殊縮寫("."、"*"、".t", ".**." 和 "*t")出現於 fromOrderId_i、toOrderId、orderInfoFrom 和 payInfoFrom 時,用來解析這些特殊縮寫。
比方說,下列指令會參照商店 1 中之成員 1001 中的所有現行擱置訂單:
fromOrderId_1=.&memberId_1=1001&storeId=1
- URL
- (必要)指令順利完成時要呼叫的重新導向 URL。
- orderId_i
- 利用訂單參考號碼或其中一個訂單縮寫
"."、"*"、".t"、"*t",來指定零或多張訂單
- memberId_i
- 在特殊縮寫("."、"*"、".t", ".**." 和 "*t")出現於 fromOrderId_i 時,用來解析這些特殊縮寫的成員參考號碼。
比方說,下列指令會參照成員 1001 的所有擱置的訂單:
fromOrderId_1=*&memberId_1=1001
預設值是現行使用者的成員 ID。
如果現行客戶試圖在未經授權的情況下,擅自存取其它購物者的訂單,就會擲出異常狀況。
- usage_i
- 如果有指定 orderId_i,也必須指定 usage_i 的值。
若指定 1,則會為執行此指令的客戶將指定的訂單標為現行的範本訂單。若指定 0,
則會為客戶將訂單標為(非現行)範本訂單;
若指定 -1,則會為客戶取消指定訂單的標示。
- storeId_i
- 商店的參考號碼。在評估 orderId_i 參數值的特殊縮寫
"."、"*"、".t" 與
"*t" 時使用。若未指定,則會預設為 storeId 參數所提供的值。若 storeId_i 與 storeId 皆未指定,
則會評估所有商店的特殊縮寫。
- outOrderName
- 指出將加到重新導向 URL 中的「名稱-值」配對名稱。
每一個新增的「名稱-值」組合值都是目標訂單的參考號碼。預設值是 "orderId"。
範例
下列範例會使參考號碼為 5137 的訂單成為商店 2066 與執行指令之客戶的唯一現行範本,且會重新導向到顯示這份訂單的 URL。
http://myhostname/webapp/wcs/stores/servlet/SetOrderTemplate?storeId=2066
&orderId_1=.t&ordert_usage_1=0&orderId_2=5137&ordert_usage_2=1
&URL=/webapp/wcs/stores/servlet/OrderDisplay?status%3DP%26orderId%3D.t
規則
- 訂單是按 i 的升序順序處理。
- 針對每一份指定訂單,
分別呼叫 CheckOrderTemplateCmd 作業指令,
以檢查客戶是否能標示或取消標示該訂單。
- 如果客戶被容許進行標示,則會利用 ResolveOrdersCmd 作業指令,以
usage_i 參數指定,在 ORDERTMPL
表格中標示或取消標示該訂單。
異常狀況
如果拒絕 SetOrderTemplate 指令存取訂單的話,CheckOrderTemplateCmd作業指令會利用錯誤檢視 SetOrderTemplateErrorView 來執出 _ERR_SET_ORDER_TEMPLATE 類型的 ECApplicationException。
這時會設定下列「名稱-值」配對:
- ERROR_CODE=601
- orderId=違規訂單 ID