ecshop购买流程中增加修改订单总金额的方法

2009-12-02 09:47 来源:www.chinab4c.com 作者:ecshop专家

    ecshop电子商务系统中,有很多地方还需要完善和处理,在ecshop复杂的购买流程中,如何调整ecshop订单总金额.根据自己的需求,能调动订单金额的办法呢.下面将结合例子,来分析.ECSHOP电子商务系统中,如何修改ecshop订单总金额.

   1:在flow.dwt中增加以下代码.

     <input type="radio" name="upup" value="2" onclick="upupto();">

   2:修改js,增加以下函数.

   function upupto(){
 Ajax.call('flow.php?step=check_upupto', '', upuptoresponse, 'GET', 'JSON');

}
function upuptoresponse(obj)
{

if (obj.error)
  {
    alert(obj.error);

    try
    {
      document.getElementById('ECS_BONUSN').value = '0';
    }
    catch (ex) { }
  }
  else
  {
    orderSelectedResponse(obj.content);
  }
}

   他是通过ajax来调整ecshop订单总金额的。

  3:flow.php中增加以下代码

  //##########################################
//处理升级定单
//##########################################
elseif ($_REQUEST['step'] == 'check_upupto')
{
  
    include_once('includes/cls_json.php');
    $result = array('error' => '', 'content' => '');

    /* 取得购物类型 */
    $flow_type = isset($_SESSION['flow_type']) ? intval($_SESSION['flow_type']) : CART_GENERAL_GOODS;

    /* 获得收货人信息 */
    $consignee = get_consignee($_SESSION['user_id']);

    /* 对商品信息赋值 */
    $cart_goods = cart_goods($flow_type); // 取得商品列表,计算合计

    if (empty($cart_goods) || !check_consignee_info($consignee, $flow_type))
    {
        $result['error'] = $_LANG['no_goods_in_cart'];
    }
    else
    {
        /* 取得购物流程设置 */
        $smarty->assign('config', $_CFG);

        /* 取得订单信息 */
        $order = flow_order_info();

        /* 计算订单的费用 */
        $total = order_fee($order, $cart_goods, $consignee);
  /*
   $total['amount']           += $total['pay_fee']; // 订单总额累加上支付费用
   $total['amount_formated']  = price_format($total['amount'], false);
  */
  $price =  $total['amount'] +  $total['amount'] *0.25;
  if($total[real_goods_count]>0){
   if($price<2000){
   $result['error'] = '对不起,您提交的升级订单不足2000元,请重新选购产品后重新提交!';
   }else{
   
    $total['amount']           = $price; // 订单总额累加上支付费用
    $total['amount_formated']  = price_format($total['amount'], false);
   }
  }else{
   if($price<1000){
   $result['error'] = '对不起,您提交的升级订单不足1000元,请重新选购产品后重新提交!';
   }else{
   
    $total['amount']           = $price; // 订单总额累加上支付费用
    $total['amount_formated']  = price_format($total['amount'], false);
   }
  }
  
  if($total[amount])
        $smarty->assign('total', $total);

        /* 团购标志 */
        if ($flow_type == CART_GROUP_BUY_GOODS)
        {
            $smarty->assign('is_group_buy', 1);
        }

        $result['content'] = $smarty->fetch('library/order_total.lbi');
    }

    $json = new JSON();
    die($json->encode($result));


}
//##########################################
//结束
//###########################################

用来处理回调ajax处理结果

这样,在ecshop的订单管理中,就处理了订单总金额了。

来源:中国B4C电子商务