香港独立IP空间
香港php空间
美国php空间
域名注册

无忧主机小编在测试ECTouch程序的订单功能时发现,当测试用户在商城中购买了商品,已经完成确认订单、已付款、已发货的情况下,如图1所示,

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

商品列表中的第一个订单已经交易成功了,但是在商品列表中的显示销量依然为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所示。

图22 300x107 ECTouch商品列表的销量显示为0的解决办法
方法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所示。

图32 300x107 ECTouch商品列表的销量显示为0的解决办法
方法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所示:

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

将这三行代码注释或者删除掉,这时清空浏览器缓存回到商品列表,刷新当前页面,如图5所示:

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

已经成功显示了真实的销量大小了。

本文地址:http://www.51php.com/ecshop/ectouch/25773.html

喜欢本文或觉得本文对您有帮助,请分享给您的朋友 ^_^

阅读本文的人还阅读: