ECTouch商品列表的销量显示为0的解决办法

高速度 主机小编在测试ECTouch程序的订单功能时发现,当测试用户在商城中购买了商品,已经完成确认订单、已付款、已发货的情况下,如图1所示,图1商品列表中的第一个订单已经交易成功了,但是在商品列表中的显示销量依然为0。高速度 主机小编利用多年的php空间建站经验也没弄破开这个难题,后来在网上寻找网友帮助才将问题解决,为了把这份爱心传递下去,小编给大家分享ECTouch商品列表的销量显示为0的解决办法。不显示的原因:ECTouch程序的模板中加入了用于统计销量的代码,但是跟它公库的ECShop数据库没有用来存储销量大小的字段,通过下面的其中一个方法都可以使商品列表显示销量大小,为操作简便,推荐使用第三种方法。方法1:在根目录的/include/apps/default/controller/路径下找到GoodsController.class.php文件,用文本编辑器打开,将第118行的下面这句代码:

$this->assign('sales_count', model('GoodsBase')->get_sales_count($this->goods_id));
替换成
$sql = "select sum(goods_number) as sales_count from".$this->model->pre."order_goods as g left join ".$this->model->pre."order_info as o on o.order_id=g.order_id where g.goods_id =".$this->goods_id;$sales_count = M()->getOne($sql);$this->assign('sales_count', $sales_count);
操作如图2所示。图2方法2:在根目录的include/base/model/路径下找到GoodsBaseModel.class.php文件,打开后在第589行找到以下代码:
function get_sales_count($goods_id) {        return get_goods_count($goods_id);}
替换成:
function get_sales_count($goods_id) {	$sql = "select sum(goods_number) as sales_count from ".$this->model->pre."order_goods where goods_id = ".$goods_id;	$sales_count = M()->getRow($sql);	return $sales_count['sales_count'];}
操作如图3所示。图3方法3:在根目录的include/apps/default/common路径下找到function.php文件,打开后在第1594行找到下面三行代码:
" AND o . order_status = '" . OS_CONFIRMED . "'" ." AND o . shipping_status " . db_create_in(array(SS_SHIPPED, SS_RECEIVED)) ." AND o . pay_status " . db_create_in(array(PS_PAYED, PS_PAYING)) .
如图4所示:图4将这三行代码注释或者删除掉,这时清空浏览器缓存回到商品列表,刷新当前页面,如图5所示:图5已经成功显示了真实的销量大小了。

本文地址:https://www.gaosudu.com/ectouch/25773.html