[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 当前操作列表
根据操作权限与订单状态获取操作列表中允许的操作