ECshop商品列表添加按销售排序及默认排序的修改方法

 areay   2014-11-02 00:13   401 人阅读  0 条评论

商品列表页面的按上架时间、价格、更新时间是默认的,现在需要添加的是按销量排行,但是在商品表里面没有销量的字段,这样的话,必须二次开发才可以解决。

【第一步】在表“ecs_goods”添加字段:salesnum(注:自定义字段名)

方法:

1
alter table`ecs_goods`ADD`salesnum`int(11)NOTNULLDEFAULT'0',;

 【第二步】打开根目录下文件:flow.php

找到以下代码:

PHP
1
2
3
4
5
6
7
8
9
/* 插入订单商品 */
$sql="INSERT INTO ".$ecs->table('order_goods')."( ".
"order_id, goods_id, goods_name, goods_sn, product_id, goods_number, market_price, ".
"goods_price, goods_attr, is_real, extension_code, parent_id, is_gift, goods_attr_id) ".
" SELECT '$new_order_id', goods_id, goods_name, goods_sn, product_id, goods_number, market_price, ".
"goods_price, goods_attr, is_real, extension_code, parent_id, is_gift, goods_attr_id".
" FROM ".$ecs->table('cart').
" WHERE session_id = '".SESS_ID."' AND rec_type = '$flow_type'";
$db->query($sql);

在这段代码的下面,添加如下代码:

PHP
1
2
3
4
5
6
/* 插入商品表的salesnum 字段,统计销量排行 代码开始*/
$sql="update ".$GLOBALS['ecs']->table('goods')." AS a, ".$GLOBALS['ecs']->table('cart')." AS b ".
"set a.salesnum= a.salesnum + b.goods_number".
" WHERE a.goods_id=b.goods_id AND b.session_id = '".SESS_ID."' AND b.rec_type = '$flow_type'";
$db->query($sql);
/* 插入商品表的salesnum 字段,统计销量排行 代码结束*/

【第三步】打开文件:default\library\goods_list.lbi,找到下面的代码:

1
<ahref="{$script_name}.php?category={$category}&display={$pager.display}&brand={$brand_id}&price_min={$price_min}&price_max={$price_max}&filter_attr={$filter_attr}&page={$pager.page}&sort=last_update&order=<!-- {if $pager.sort == 'last_update' && $pager.order == 'DESC'} -->ASC<!-- {else} -->DESC<!-- {/if} -->#goods_list"><img src="images/last_update_<!-- {if $pager.sort == 'last_update'} -->{$pager.order}<!-- {else} -->default<!-- {/if} -->.gif"alt="{$lang.sort.last_update}"></a>

在上面那段代码的下面添加:

<a href=”{$script_name}.php?category={$category}&display={$pager.display}&brand={$brand_id}&price_min={$price_min}&price_max={$price_max}&filter_attr={$filter_attr}&page={$pager.page}&sort=salesnum&order=<!– {if $pager.sort == ‘salesnum‘ && $pager.order == ‘DESC’} –>ASC<!– {else} –>DESC<!– {/if} –>#goods_list”><img src=”images/shop_salesnum_<!– {if $pager.sort == ‘salesnum’} –>{$pager.order}<!– {else} –>default<!– {/if} –>.gif” alt=”按商品销量排行”></a>

[红色区是图片的名称,对应做上该命名的图片即可][蓝色区是第一步所添加的字段名称]

PS:如果把销量的点击排行分开处理,可以按照下面的方法添加代码:

<!– {if $pager.sort == ‘salesnum‘ && $pager.order == ‘DESC’} –>
<a href=”/category.php?category=1&display=grid&brand=0&price_min=0&price_max=0&filter_attr=0&page=1&sort=salesnum&order=DESC#goods_list” title=”销量从高到低排序”><img src=”images/shop_sales_DESC.jpg” alt=”销量从高到低排序”></a><!– {else} –>
<a href=”/category.php?category=1&display=grid&brand=0&price_min=0&price_max=0&filter_attr=0&page=1&sort=salesnum&order=DESC#goods_list” title=”销量从高到低排序”><img src=”images/shop_sales_DESC_default.jpg” alt=”销量从高到低排序”></a><!– {/if} –>
<!– {if $pager.sort == ‘salesnum‘ && $pager.order == ‘ASC’} –>
<a href=”/category.php?category=1&display=grid&brand=0&price_min=0&price_max=0&filter_attr=0&page=1&sort=salesnum&order=ASC#goods_list” title=”销量从低到高排序”><img src=”images/shop_sales_ASC.jpg” alt=”销量从低到高排序”></a><!– {else} –>
<a href=”/category.php?category=1&display=grid&brand=0&price_min=0&price_max=0&filter_attr=0&page=1&sort=salesnum&order=ASC#goods_list” title=”销量从低到高排序”><img src=”images/shop_sales_DESC_default.jpg” alt=”销量从低到高排序”></a><!– {/if} –>

【第四步】打开文件:category.php,找到如下代码:

PHP
1
$sort=(isset($_REQUEST['sort'])&&in_array(trim(strtolower($_REQUEST['sort'])),array('goods_id','shop_price','last_update')))?trim($_REQUEST['sort']):$default_sort_order_type;

修改为:

PHP
1
$sort=(isset($_REQUEST['sort'])&&in_array(trim(strtolower($_REQUEST['sort'])),array('goods_id','shop_price','last_update','salesnum')))?trim($_REQUEST['sort']):$default_sort_order_type;

也就是在代码: ‘last_update’ 的后面添加:, ‘salesnum’

如果要修改默认的排序显示,找到以下的代码:

PHP
1
2
3
4
/* 排序、显示方式以及类型 */
$default_display_type=$_CFG['show_order_type']=='0'?'list':($_CFG['show_order_type']=='1'?'grid':'text');
$default_sort_order_method=$_CFG['sort_order_method']=='0'?'DESC':'ASC';
$default_sort_order_type=$_CFG['sort_order_type']=='0'?'goods_id':($_CFG['sort_order_type']=='1'?'shop_price':'last_update');

修改其中的这一句代码:

PHP
1
$default_sort_order_type=$_CFG['sort_order_type']=='0'?'goods_id':($_CFG['sort_order_type']=='1'?'shop_price':'last_update');

修改为:

PHP
1
$default_sort_order_type=$_CFG['sort_order_type']=='0'?'salesnum':($_CFG['sort_order_type']=='1'?'shop_price':'last_update');

方法一:如果按照上面这个方法修改,还要到数据库操作,后台设置也要一致!

数据库操作方法:
找到表名:ec_shop_config
字段名:code
值为:sort_order_type
如下图所示,添加一个数字3在后面!

20131123114411408 ECshop商品列表添加按销售排序及默认排序的修改方法

然后修改语言包:
1.找到文件:languages\zh_cn\admin\shop_config.php 大概位置:293行到295行,代码如下:

PHP
1
2
3
$_LANG['cfg_range']['sort_order_type']['0']='按上架时间';
$_LANG['cfg_range']['sort_order_type']['1']='按商品价格';
$_LANG['cfg_range']['sort_order_type']['2']='按最后更新时间';

2.修改为:

PHP
1
2
3
4
$_LANG['cfg_range']['sort_order_type']['0']='按商品销量';
$_LANG['cfg_range']['sort_order_type']['1']='按商品价格';
$_LANG['cfg_range']['sort_order_type']['2']='按上架时间';
$_LANG['cfg_range']['sort_order_type']['3']='按最后更新时间';

然后在后台——商店设置——显示设置下面可以看到如下图所示:

20131123114418268 ECshop商品列表添加按销售排序及默认排序的修改方法

方法二:

PHP
1
2
3
4
/* 排序、显示方式以及类型 */
$default_display_type=$_CFG['show_order_type']=='0'?'list':($_CFG['show_order_type']=='1'?'grid':'text');
$default_sort_order_method=$_CFG['sort_order_method']=='1'?'DESC':'ASC';
$default_sort_order_type='salesnum';

OK,完工。到这里就修改完毕了!

  • 本文固定链接: http://piaoyun.cc/ecshop-sort-order-type-salesnum.html

本文地址:http://wangshuming.cn/article/30.html
免责声明:本文为转载文章,来源于网络,文章版权归原作者所有。若因本站的引用侵犯了您的版权权利,麻烦发邮件49212578@qq.com联系我们及时删除,谢谢。

 发表评论


表情

还没有留言,还不快点抢沙发?