19 require(ROOT_PATH . 'includes/lib_order.php'); 购物流程函数库 22 require_once(ROOT_PATH . 'languages/' .$_CFG['lang']. '/shopping_flow.php'); 载入语言文件 28-31 默认act为购物车 38 获取flow页面动态显示内容 1819 处理默认$_REQUEST['step'] 1822 $_SESSION['flow_type'] = CART_GENERAL_GOODS; 设置购物流程为普通购物流程 1825-1829 if ($_CFG['one_step_buy'] == '1') { ecs_header("Location: flow.php?step=checkout\n"); 如果设置$_CFG['one_step_buy'] == '1',直接退出,一般$_CFG['one_step_buy']设置为0 设置方法在数据库中ecs_shop_config表中 exit; } 1832 $cart_goods = get_cart_goods(); 取得购物车商品,计算合计 get_cart_goods() 在./includes/lib_order.php中定义1433 //-------------------------------------------------------------------------- 48 if ($_REQUEST['step'] == 'add_to_cart') 增加商品 54 $_POST['goods'] = json_str_iconv($_POST['goods']); 转码 56-64 检查商品ID和post的goods字符串,包括商品规格,id,商品数量 66 $result = array('error' => 0, 'message' => '', 'content' => '', 'goods_id' => '');初始化返回数组 69-73 检查goods 75 $goods = $json->decode($_POST['goods']); 解码 78-94 检查商品规格 97-100 一步式购物处理 111-134 添加购物商品 //--------------------------------------------------------------------------- elseif ($_REQUEST['step'] == 'link_buy') (选择付款方式,不确定) 135-145 判断商品是否在购物车中如果不存在则加入,然后重定向./flow.php //----------------------------------------------------------------------------- 146 elseif ($_REQUEST['step'] == 'login') 153-178 处理get请求(即显示登陆页面) 184-200 if (($captcha & CAPTCHA_LOGIN) && (!($captcha & CAPTCHA_LOGIN_FAIL) || (($captcha & CAPTCHA_LOGIN_FAIL) && $_SESSION['login_fail'] > 2)) && gd_version() > 0) $captcha 值为12,CAPTCHA_LOGIN为2 , $captcha & CAPTCHA_LOGIN值为0 ,所以不必处理验证码 202-219 登陆处理,登陆成功后更新用户信息从新计算购物车的商品价格,如果该用户购物车中有商品,跳转到结算页面,否则跳转到主页 220-222 登陆失败处理 226-250 注册处理 228 if ((intval($_CFG['captcha']) & CAPTCHA_REGISTER) && gd_version() > 0) ((intval($_CFG['captcha']) & CAPTCHA_REGISTER) 值为0 所以不必处理验证码 245-254 如果注册成功跳转到flow.php?step=consignee页面,否则提示错误 //---------------------------------------------------------------------------- 267 elseif ($_REQUEST['step'] == 'consignee') 收货人信息 284-286 获取区域信息 289-298 获取同一session的收货人信息 301-307 如果session中用户id为0时获取在session中收货人信息 312-328 确定各区域选中状态 333-370 保存收货人信息,并写到$_SESSION['flow_consignee'] 跳转到Location: flow.php?step=checkout //---------------------------------------------------------------------------- 371 elseif ($_REQUEST['step'] == 'drop_consignee') 删除收货人信息 //--------------------------------------------------------------------------- 390 elseif ($_REQUEST['step'] == 'checkout') 定单确认 406-413 判断购物车中是否有商品 420-425 获取默认收货地址,检查session中默认收货地址和用户标识 427-435 保证收货人信息完整,并写入session 441 $cart_goods = cart_goods($flow_type); // 取得商品列表,计算合计 原文:http://hi.baidu.com/liehu1119/blog/item/6541aadd93dcbe335882dd66.html