![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
Ecshop如何实现商品详情页面的销售统计,百度到了代码,试过了无效果,高手们帮忙看看啊
通过百度,知道了下面的代码:第一步、修改includes/lib_insert.php文件在最下面增加一个函数/***调用某商品的累积已售出*/functioninser...
通过百度,知道了下面的代码:
第一步、修改 includes/lib_insert.php 文件
在最下面增加一个函数
/**
* 调用某商品的累积已售出
*/
function insert_goods_sells($arr)
{
$sql = 'SELECT SUM(goods_number) AS number ' .
' FROM ' . $GLOBALS['ecs']->table('order_goods') ." AS og , " . $GLOBALS['ecs']->table('order_info') ." AS o ".
" WHERE og.order_id = o.order_id and o.order_status =1 and og.goods_id=".$arr['goods_id'];
$row = $GLOBALS['db']->GetRow($sql);
if ($row)
{
$number = intval($row['number']);
}
else
{
$number = 0;
}
return $number;
}
第二步、修改 模板文件夹下 goods.dwt 文件中进行调用
<strong>已售出:</strong>{insert name='goods_sells' goods_id=$id}
这样就可以了如果没有效果可以清缓存试试看
————————————————————————————————————————
可以在商品详情页面显示“商品已经售出”,但是数量一直为0,没有效果,请问下这个代码有什么问题吗? 展开
第一步、修改 includes/lib_insert.php 文件
在最下面增加一个函数
/**
* 调用某商品的累积已售出
*/
function insert_goods_sells($arr)
{
$sql = 'SELECT SUM(goods_number) AS number ' .
' FROM ' . $GLOBALS['ecs']->table('order_goods') ." AS og , " . $GLOBALS['ecs']->table('order_info') ." AS o ".
" WHERE og.order_id = o.order_id and o.order_status =1 and og.goods_id=".$arr['goods_id'];
$row = $GLOBALS['db']->GetRow($sql);
if ($row)
{
$number = intval($row['number']);
}
else
{
$number = 0;
}
return $number;
}
第二步、修改 模板文件夹下 goods.dwt 文件中进行调用
<strong>已售出:</strong>{insert name='goods_sells' goods_id=$id}
这样就可以了如果没有效果可以清缓存试试看
————————————————————————————————————————
可以在商品详情页面显示“商品已经售出”,但是数量一直为0,没有效果,请问下这个代码有什么问题吗? 展开
展开全部
很多时候,客户需要在前端页面中显示商品的销售数量,可以根据以下方法来展示总销售数量
首先,ecshop的信息显示模块在includes/lib_goods.php文件在其末尾添加下面这个函数
function ec_buysum($goods_id)
{
$sql = "select sum(goods_number) from " .
$GLOBALS['ecs']->table('order_goods') . " AS g
,".$GLOBALS['ecs']->table('order_info') . " AS o WHERE
o.order_id=g.order_id and g.goods_id = " . $goods_id . " and
o.order_status=5 " ;
if (($GLOBALS['db']->getOne($sql)) == ""){
return "0";
}else{
return $GLOBALS['db']->getOne($sql);
}
}
然后,在上面的代码位置,大约是317行左右,找到
$goods[$idx]['brand_name'] = isset($goods_data['brand'][$row['goods_id']]) ? $goods_data['brand'][$row['goods_id']] : '';
在它的下面添加
$goods[$idx]['buy_num']= ec_buysum($row['goods_id']);
这样,您在模板中用
$goods.buy_num
就可以调用销量数据了.
当然,这里只是修改了首页调用部分,在内页,即商品详情,你仍然只修改这个文件
在大概594行的空白位置插入
/*显示商品销量*/
$row['buy_num'] = ec_buysum($row['goods_id']);
这样操作应该就可以了。
首先,ecshop的信息显示模块在includes/lib_goods.php文件在其末尾添加下面这个函数
function ec_buysum($goods_id)
{
$sql = "select sum(goods_number) from " .
$GLOBALS['ecs']->table('order_goods') . " AS g
,".$GLOBALS['ecs']->table('order_info') . " AS o WHERE
o.order_id=g.order_id and g.goods_id = " . $goods_id . " and
o.order_status=5 " ;
if (($GLOBALS['db']->getOne($sql)) == ""){
return "0";
}else{
return $GLOBALS['db']->getOne($sql);
}
}
然后,在上面的代码位置,大约是317行左右,找到
$goods[$idx]['brand_name'] = isset($goods_data['brand'][$row['goods_id']]) ? $goods_data['brand'][$row['goods_id']] : '';
在它的下面添加
$goods[$idx]['buy_num']= ec_buysum($row['goods_id']);
这样,您在模板中用
$goods.buy_num
就可以调用销量数据了.
当然,这里只是修改了首页调用部分,在内页,即商品详情,你仍然只修改这个文件
在大概594行的空白位置插入
/*显示商品销量*/
$row['buy_num'] = ec_buysum($row['goods_id']);
这样操作应该就可以了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
![](https://ecmc.bdimg.com/public03/b4cb859ca634443212c22993b0c87088.png)
2024-08-26 广告
在选择数据中台时,有几个关键事项需要注意:需求分析与业务匹配:不同的企业在数据处理、分析和应用的需求上各有差异,因此需要深入了解企业当前和未来的业务需求,确定数据中台需要支持的业务场景。技术架构与可扩展性:当下,数据量增长和技术更新迅速,数...
点击进入详情页
本回答由龙石数据提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询