ecshop购物车分析 ecshop 的购物车是依靠数据库中cart表来支持的。ecshop表中,rec_id为表示编号,user_id为注册用户的id,session_id表示session会话id,现在的缺陷就在这里,如果关闭浏 览器。那么这个session_id将会自动注销。所以购物车中的产品总是会随着浏览器的关闭而丢失,ecshop的购物车它会存储一个产品id,还有产品价格,市场价格,产品名称等相关的产 品信息.在购买的时候,还有一个最重要的步骤,判断购买的类型$flow_type = isset($_SESSION['flow_type']) ? intval($_SESSION['flow_type']) : CART_GENERAL_GOODS; 也需要检查商品类型,是礼品还是其他 "AND parent_id = 0 AND is_gift = 0 AND rec_type = '$flow_type'";如果是全是礼品,将被提示不能进行购买。 ecshop购物车修改购买数量 ecshop发展到今天,已经有比较完善的购物车购买修改产品数量功能了。很多人还模仿了自动修改功能,输入数量,就达到自动计算金额的效果. ecshop2.6.2还没有这个功能,他修改购物车的时候,需要通过按扭,确认更改之后,才能修改购物车。首先看flow.php中。 elseif ($_REQUEST['step'] == 'update_cart') if (isset($_POST['goods_number']) && is_array($_POST['goods_number'])) show_message($_LANG['update_cart_notice'], $_LANG['back_to_cart'], 'flow.php'); 他是通过获取goods_number来处理的。goods_number格式为 这里面的7为购物车中产品所在表中的ID,value=2这里表示购买该产品的数量。 通过ecshop函数 flow_update_cart($_POST['goods_number']);来达到修改购买数量的效果。在购买过程中,如果购买的数量超过了该产品库存的数量。那么在该函数中, if ($row['goods_number'] < $val) 会提示你。购买的数量超过了库存。 |