[TOC]
* * * * *
## 1 訂單操作權限
`$actions = $_SESSION['action_list'];`
### 訂單刪除操作權限
`'edit' => strpos($actions, ',order_edit,') !== false`
### 訂單狀態操作權限
'os' => strpos($actions, ',order_os_edit,') !== false,
### 訂單發貨操作權限
'ss' => strpos($actions, ',order_ss_edit,') !== false,
### 訂單支付操作權限
'ps' => strpos($actions, ',order_ps_edit,') !== false,
## 2 訂單當前狀態
### 訂單狀態
~~~
$os = $order['order_status'];
OS_UNCONFIRMED 未確認
OS_CONFIRMED 已確認
OS_CANCELED 取消
OS_INVALID 無效
OS_RETURNED 退貨
OS_SPLITING_PART 部分分單
OS_SPLITED 已分單
~~~
### 發貨狀態
~~~
$ss = $order['shipping_status'];
SS_UNSHIPPED 未發貨
SS_PREPARING 配貨中
SS_SHIPPED 已發貨
SS_RECEIVED 收貨確認
SS_SHIPPED_PART 部分發貨
SS_SHIPPED_ING 發貨中
~~~
### 支付狀態
~~~
$ps = $order['pay_status'];
PS_UNPAYED 未付款
PS_PAYING 付款中
PS_PAYED 已付款
~~~
## 3 訂單操作列表
### OS操作 訂單級操作
~~~
$list['op_confirm'] = true; // 確認
$list['op_invalid'] = true; // 無效
$list['op_cancel'] = true; // 取消
$list['op_return'] = true; // 退貨
$list['op_after_service'] = true; // 售后
$list['op_remove'] = true; // 刪除
~~~
### SS操作 發貨操作
~~~
$list['op_prepare'] = true; // 配貨
$list['op_split'] = true; // 生成發貨單
$list['op_unship'] = true; // 未發貨
$list['op_cancel_ship'] = true; // 取消發貨
$list['op_receive'] = true; // 已收貨
$list['op_to_delivery'] = true; // 去發貨
~~~
### PS操作 支付操作
~~~
$list['op_pay'] = true; // 付款
$list['op_uppay'] = true; // 未付款
~~~
## 4 訂單常量定義
### 訂單狀態
~~~
define('OS_UNCONFIRMED', 0); // 未確認
define('OS_CONFIRMED', 1); // 已確認
define('OS_CANCELED', 2); // 已取消
define('OS_INVALID', 3); // 無效
define('OS_RETURNED', 4); // 退貨
define('OS_SPLITED', 5); // 已分單
define('OS_SPLITING_PART', 6); // 部分分單
~~~
### 支付類型
~~~
define('PAY_ORDER', 0); // 訂單支付
define('PAY_SURPLUS', 1); // 會員預付款
~~~
### 配送狀態
~~~
define('SS_UNSHIPPED', 0); // 未發貨
define('SS_SHIPPED', 1); // 已發貨
define('SS_RECEIVED', 2); // 已收貨
define('SS_PREPARING', 3); // 備貨中
define('SS_SHIPPED_PART', 4); // 已發貨(部分商品)
define('SS_SHIPPED_ING', 5); // 發貨中(處理分單)
define('OS_SHIPPED_PART', 6); // 已發貨(部分商品)
~~~
### 支付狀態
~~~
define('PS_UNPAYED', 0); // 未付款
define('PS_PAYING', 1); // 付款中
define('PS_PAYED', 2); // 已付款
~~~
### 綜合狀態
~~~
define('CS_AWAIT_PAY', 100); // 待付款:貨到付款且已發貨且未付款,非貨到付款且未付款
define('CS_AWAIT_SHIP', 101); // 待發貨:貨到付款且未發貨,非貨到付款且已付款且未發貨
define('CS_FINISHED', 102); // 已完成:已確認、已付款、已發貨
~~~
## 5 當前操作列表
根據操作權限與訂單狀態獲取操作列表中允許的操作