分析订单状态:
在ecshop中控制订单的整个流程的状态有4种:
1,order_status 订单状态
2,shipping_status发货状态
3,pay_status付款状态
4,综合状态
在代码中使用常量来进行配置
inc_onstant.php中配置了
/* 订单状态 */
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); // 已完成:已确认、已付款、已发货
在lib_transaction.php中
lib_transaction.php 395行
if ($row['pay_status'] == PS_UNPAYED && $row['order_status']==1 )中
添加$row['handler'] =$row['handler'] . "<br><a href=\"user.php?act=cancel_order&order_id=" .$row['order_id']. "\" οnclick=\"if (!confirm('".$GLOBALS['_LANG']['confirm_cancel']."')) return false;\">".$GLOBALS['_LANG']['cancel']."</a>";
460行cancel_order()函数中注释掉
//订单一旦确认,不允许用户取消
// if ( $order['order_status'] == OS_CONFIRMED)
// {
// $GLOBALS['err']->add($GLOBALS['_LANG']['current_os_already_confirmed']);
// return false;
// }