大家在用ecshop商城网站建设时,遇到一个问题是产品页商品属性排序,默认是乱的,网上搜索相关文档后,发现有人还开发了这个插件,要收费,
ecshop默认的属性是乱的,排序是乱的,查找文件代码发现,影响这个排序的是有三个字段:g.goods_attr_id, a.sort_order, g.attr_price,仔细研究一下这3个字段的关系。
前台:添加新产品时,让属性按照添加的顺序(属性id)排列
修改/inclues/lib_goods.php
/* 获得商品的规格 */
$sql = "SELECT a.attr_id, a.attr_name, a.attr_group, a.is_linked, a.attr_type, ".
"g.goods_attr_id, g.attr_value, g.attr_price " .
'FROM ' . $GLOBALS['ecs']->table('goods_attr') . ' AS g ' .
'LEFT JOIN ' . $GLOBALS['ecs']->table('attribute') . ' AS a ON a.attr_id = g.attr_id ' .
"WHERE g.goods_id = '$goods_id' " .
'ORDER BY g.goods_attr_id, a.sort_order, g.attr_price';
$res = $GLOBALS['db']->getAll($sql);
这段代码是在网上搜集的,但是应用之后没有反应,还是没有变,分析之后发现是价格影响到排序,那么大家就把这个g.attr_price去掉,刷新之后发现可以实现了,排序好了。
修改之后发现后台排序还是没有变过来,大家来看一下,后台怎么去修改,其实跟前台的方法是一致的,
二、后台显示,让属性按照添加的顺序(属性id)排列
修改admin/inclues/lib_goods.php
// 查询属性值及商品的属性值
$sql = "SELECT a.attr_id, a.attr_name, a.attr_input_type, a.attr_type, a.attr_values, v.attr_value, v.attr_price ".
"FROM " .$GLOBALS['ecs']->table('attribute'). " AS a ".
"LEFT JOIN " .$GLOBALS['ecs']->table('goods_attr'). " AS v ".
"ON v.attr_id = a.attr_id AND v.goods_id = '$goods_id' ".
"WHERE a.cat_id = " . intval($cat_id) ." OR a.cat_id = 0 ".
"ORDER BY v.goods_attr_id, a.sort_order, a.attr_type, a.attr_id, v.attr_price";
这也是网上搜索的代码,应用后也是不管用,跟前台方法一致,将
v.attr_price 去掉,这样就可以了,
还有产品复制也可能存在相应的问题,没去实践过,方法应该和上面类似。
商城网站建设-选择威尼人娱乐网站官方网站