ecshop订单管理退货时如何做到不退运费

2016-06-13 13:05 来源:www.chinab4c.com 作者:ecshop专家

解决ecshop订单管理退货时,如何做到不退邮费,ecshop模板屋提供相关ecshop教程如下: 打开admin/order.php在大约4468行处找到   /**  * 退回余额、积分、红包(取消、无效、退货时),把订单使用余额、积分、红包设为0  * @param   array   $order  订单信息  */  function return_user_surplus_integral_bonus($order)  {      /* 处理余额、积分、红包 */      if ($order['user_id'] > 0 && $order['surplus'] > 0)      {          $surplus = $order['money_paid'] < 0 ? $order['surplus'] + $order['money_paid']: $order['surplus'];          log_account_change($order['user_id'], $surplus, 0, 0, 0, sprintf($GLOBALS['_LANG']['return_order_surplus'], $order['order_sn']));          $GLOBALS['db']->query("UPDATE ". $GLOBALS['ecs']->table('order_info') . " SET `order_amount` = '0' WHERE `order_id` =". $order['order_id']);      }        if ($order['user_id'] > 0 && $order['integral'] > 0)      {          log_account_change($order['user_id'], 0, 0, 0, $order['integral'], sprintf($GLOBALS['_LANG']['return_order_integral'], $order['order_sn']));      }        if ($order['bonus_id'] > 0)      {          unuse_bonus($order['bonus_id']);      }        /* 修改订单 */      $arr = array(          'bonus_id'  => 0,          'bonus'     => 0,          'integral'  => 0,          'integral_money'    => 0,          'surplus'   => 0      );      update_order($order['order_id'], $arr);  }  改成 /** * 退回余额、积分、红包(取消、无效、退货时),把订单使用余额、积分、红包设为0 * @param   array   $order  订单信息 */ function return_user_surplus_integral_bonus($order) {     /* 处理余额、积分、红包 */     if ($order['user_id'] > 0 && $order['surplus'] > 0)     {         $surplus = $order['money_paid'] < 0? $order['surplus'] + $order['money_paid']-$order['shipping_fee'] : $order['surplus'];         log_account_change($order['user_id'], $surplus, 0, 0, 0, sprintf($GLOBALS['_LANG']['return_order_surplus'], $order['order_sn']));         $GLOBALS['db']->query("UPDATE ". $GLOBALS['ecs']->table('order_info') . " SET `order_amount` = '0' WHERE `order_id` =". $order['order_id']);     }      if ($order['user_id'] > 0 && $order['integral'] > 0)     {         log_account_change($order['user_id'], 0, 0, 0, $order['integral'], sprintf($GLOBALS['_LANG']['return_order_integral'], $order['order_sn']));     }      if ($order['bonus_id'] > 0)     {         unuse_bonus($order['bonus_id']);     }      /* 修改订单 */     $arr = array(         'bonus_id'  => 0,         'bonus'     => 0,         'integral'  => 0,         'integral_money'    => 0,         'surplus'   => 0     );     update_order($order['order_id'], $arr); }  就可以了 官方默认的是退货时把已付款退到会员的帐中户,而退回的费用中没有减去 运费 支付手费费 包装费 如果ecshop退货时不退运费应是: $surplus = $order['money_paid'] < 0 ? $order['surplus'] + $order['money_paid'] - $order['shipping_fee']: $order['surplus']; 如果退货时不退动费和支付的手费费应是: $surplus = $order['money_paid'] < 0 ? $order['surplus'] + $order['money_paid'] - $order['shipping_fee']- $order['pay_fee']: $order['surplus']; 如果ecshop退货时不退动费和支付的手费费及包装费应是: $surplus = $order['money_paid'] < 0 ? $order['surplus'] + $order['money_paid'] - $order['shipping_fee']- $order['pay_fee']]- $order['pack_fee']: $order['surplus']; 以此类推可以做到ecshop退货时不退其它费