新闻中心
ECTouch商品列表的销量显示为0的解决办法
作者 / 无忧主机 时间 2017-12-10 20:38:22
无忧主机小编在测试ECTouch程序的订单功能时发现,当测试用户在商城中购买了商品,已经完成确认订单、已付款、已发货的情况下,如图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: 在根目录的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: 在根目录的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所示: 将这三行代码注释或者删除掉,这时清空浏览器缓存回到商品列表,刷新当前页面,如图5所示: 已经成功显示了真实的销量大小了。
本文地址:https://www.51php.com/ectouch/25773.html
上一篇: ECTouch如何去除版权信息
下一篇: phpbb后台功能介绍–爬虫/机器人