新年
快乐

垃圾堆中的精品

垃圾堆中的精品

解决人人商城同城配送达达提示cargo_weight必须大于0

解决人人商城同城配送时,推送订单到达达,提示cargo_weight必须大于0。

应该是达达原有接口的cargo_weight不需要必填,后面升级为必填后,人人没有跟着升级。

解决办法很简单,直接重新计算订单中商品的重量,然后把参数传上去就可以了。不过要注意有商品有过规格的情况。

找到文件/addons/ewei_shopv2/core/model/order.php中dada_send方法(2187行左右),在提交达达接口前添加下面代码。

$goods = pdo_fetchAll("SELECT og.total,og.optionid,g.weight FROM " . tablename('rongyu_shop_order_goods') . " og left join ".tablename('rongyu_shop_goods')." g on g.id=og.goodsid WHERE og.uniacid=:uniacid AND og.orderid=:orderid",array(":uniacid"=>$_W['uniacid'],":orderid"=>$order['id']));
$cargo_weight = 0;
foreach($goods as $good){
	if($good['optionid']){
		$op_weight = pdo_fetchcolumn("select weight from ".tablename('rongyu_shop_goods_option')." where id='{$good['optionid']}'");
		$cargo_weight += $good['total']*$op_weight;
	}else{
		$cargo_weight += $good['total']*$good['weight'];
	}
}

然后在下面的参数中补充 ‘cargo_weight’ => $cargo_weight/1000, 即可。

总的来说,人人还是bug有点多,按理说这个配送费的话应该是使用达达返回的配送费,这里却没有,而是直接使用的商城自己计算的配送费,会有一定的误差。如果谁要开发这个功能的话留言找我哟~~~

评论回复

回到顶部