新闻中心

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

作者 / 时间 2017-12-10 20:38:22

无忧主机小编在测试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.51php.com/ectouch/25773.html

1
1
1
1
1
1
1