ecshop 二次开发 订单模块流程分析和修改,修改确认后未付款可以取消订单

分析订单状态:

   在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'] . "
".$GLOBALS['_LANG']['cancel']."";

 

460行cancel_order()函数中注释掉

//订单一旦确认,不允许用户取消

  // if ( $order['order_status'] == OS_CONFIRMED)
  //  {
    //    $GLOBALS['err']->add($GLOBALS['_LANG']['current_os_already_confirmed']);

   //     return false;
  //  }

           

 

   

你可能感兴趣的:(php)