ecshop团购运费错误,ecshop包邮BUG,ecshopo二次开发

  • 时间:2017-10-17 23:59 编辑: 来源: 阅读:1009
  • 扫一扫,手机访问
摘要:ecshop团购运费错误,ecshop包邮BUG,ecshopo二次开发

不知道你们有没有发现,当你添加团购活动的时候,如无论怎么添加团购商品多不是包邮的。而且你如果一旦点击了加入立即购买后,就算去店里购买其他包邮商品的时候,任然会变成不包邮的了。运费都要计算在内!

其实这个问题很简单,分析代码发现,包邮就是提交订单的时候的所有商品包邮的情况下才能免去运费,只要有一个商品没有包邮,那么就不会包邮。


而团购商品添加进购物才时没有吧is_shipping这个字段给添加进去,这个字段默认是0.当是0的时候,表示不包邮,1的时候包邮。添加团购因为没有设置这个字段的值,所以添加进去就是不包邮的。


而且,购物车列表他还不显示团购的商品,然后问题就出现了,添加到了购物车cart表中,但是却没有删除和显示出来,那么后面你在添加商品的时候就一直不能免邮费。


问题具体原因说完了,就找解决办法:


打开团购页面:

group_buy.php文件

搜索:

$goods_price = $group_buy['deposit'] > 0 ? $group_buy['deposit'] : $group_buy['cur_price'];

在下面数组的最后一个值加上:

'is_shipping'        => $group_buy['is_shipping']  //注意上局后面要添加一个“,”号

改后的效果如下:

$cart = array(
        'user_id'        => $_SESSION['user_id'],
        'session_id'     => SESS_ID,
        'goods_id'       => $group_buy['goods_id'],
        'product_id'     => $product_info['product_id'],
        'goods_sn'       => addslashes($goods['goods_sn']),
        'goods_name'     => addslashes($goods['goods_name']),
        'market_price'   => $goods['market_price'],
        'goods_price'    => $goods_price,
        'goods_number'   => $number,
        'goods_attr'     => addslashes($goods_attr),
        'goods_attr_id'  => $specs,
        'is_real'        => $goods['is_real'],
        'extension_code' => addslashes($goods['extension_code']),
        'parent_id'      => 0,
        'rec_type'       => CART_GROUP_BUY_GOODS,
        'is_gift'        => 0,
	'is_shipping'        => $group_buy['is_shipping']  //这个就是获取当前商品的包邮情况,0为不包邮,1为包邮
    );


这个时候添加团购在购物车后就会根据商品实际请款来显示了。当然如果你要所有的团购都包邮,那么之久吧后面的$group_buy['is_shipping']改为1即可。


然后就是购物车列表不显示团购的商品的问题。

根据flow.php代码分析,调用购物车上面列表的函数是:get_cart_goods

而改函数在文件:\includes\lib_order.php里面


而该函数结构可以看出:

" WHERE session_id = '" . SESS_ID . "' AND rec_type = '" . CART_GENERAL_GOODS . "'" .

这个where的AND语句前面是session_id char 登录的sessionid。AND后面是rec_type = '" . CART_GENERAL_GOODS . "',这个 CART_GENERAL_GOODS是常量,是普通商品。

根据EC的常量:

/* 购物车商品类型 */
define('CART_GENERAL_GOODS',        0); // 普通商品
define('CART_GROUP_BUY_GOODS',      1); // 团购商品
define('CART_AUCTION_GOODS',        2); // 拍卖商品
define('CART_SNATCH_GOODS',         3); // 夺宝奇兵
define('CART_EXCHANGE_GOODS',       4); // 积分商城

可以看出,购物车商品列表值显示了普通商品,其他商品压根就是排除了的。所以解决办法最简单就是把AND和后面的条件删除即可。


最终改为:

" WHERE session_id = '" . SESS_ID . "'" .


其实最好的就是直接把团购商品全部改为包邮。因为团购和其他商品一起提交的时候可能会出其他问题可能会出一些未知的问题,然后就越改越复杂。


还有就是像团购或者其他活动的时候,我们在购买之前应该先清空购物车,然后再提交活动的商品到购物车表中。因为假如你最开始购物车中的商品没有包邮,你提交活动商品到购物车又是包邮的,然后结算的时候又不能包邮了。


而如果你在结算那里做的话,直接算当前的话那问题又有。多个商品呢?又要重新设计规则,所以,最简单的就是提交活动商品之前先清空他的购物车,再提交。


这里我就只举一个团购的例子,团购的方法就是打开文件:group_buy.php文件


搜索:

/* 更新:清空购物车中所有团购商品 */

clear_cart(CART_GROUP_BUY_GOODS);

的下面添加如下代码:

clear_cart($flow_type);

即可


  • 全部评论(0)
资讯详情页最新发布上方横幅
最新发布的资讯信息
【计算机/互联网|】DiscuzX3.2 论坛性能优化给网站飞一般的感觉(2018-04-15 13:41)
【计算机/互联网|开发经验】爱奇艺腾讯视频VIP视频免费播放的方法(2017-11-23 16:53)
【管理/营销/职场|市场推广】淘宝天猫双十一促销活动策划方案汇总(2017-11-18 11:25)
【管理/营销/职场|市场推广】O2O营销实用技巧 餐饮企业快速突破的绝技(2017-11-18 11:24)
【管理/营销/职场|市场推广】品牌在营销过程中的重要地位(2017-11-18 11:23)
【管理/营销/职场|市场推广】开发者必看:App运营入门之8个潜规则(2017-11-18 11:23)
【管理/营销/职场|市场推广】企业O2O网络营销活动分享 巧妙运用关键词做营销(2017-11-18 11:21)
【管理/营销/职场|市场推广】天涯十六年的产品运营之路丨经验总结(2017-11-18 11:20)
【管理/营销/职场|市场推广】广州房地产营销活动策划20个高端大气的创意点子(2017-11-18 11:16)
【计算机/互联网|二次开发】PHP使用AJAX无刷新技术提交表单的方法实例织梦常用数据库操作方法,织梦DEDECMS二次开发(2017-10-28 04:25)
网站首页 | 关于我们 | 广告合作 | 联系我们 | 隐私条款 | 免责声明
CopyRight 2014-2024 铭翼开发中心 | 闽ICP备16013094号