我們在用ecshop商城網(wǎng)站建設時(shí),遇到一個(gè)問(wèn)題是產(chǎn)品頁(yè)商品屬性排序,默認是亂的,網(wǎng)上搜索相關(guān)文檔后,發(fā)現有人還開(kāi)發(fā)了這個(gè)插件,要收費,
ecshop默認的屬性是亂的,排序是亂的,查找文件代碼發(fā)現,影響這個(gè)排序的是有三個(gè)字段:g.goods_attr_id, a.sort_order, g.attr_price,仔細研究一下這3個(gè)字段的關(guān)系。
前臺:添加新產(chǎn)品時(shí),讓屬性按照添加的順序(屬性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);
這段代碼是在網(wǎng)上搜集的,但是應用之后沒(méi)有反應,還是沒(méi)有變,分析之后發(fā)現是價(jià)格影響到排序,那么我們就把這個(gè)g.attr_price去掉,刷新之后發(fā)現可以實(shí)現了,排序好了。
修改之后發(fā)現后臺排序還是沒(méi)有變過(guò)來(lái),我們來(lái)看一下,后臺怎么去修改,其實(shí)跟前臺的方法是一致的,
二、后臺顯示,讓屬性按照添加的順序(屬性id)排列
修改admin/inclues/lib_goods.php
// 查詢(xún)屬性值及商品的屬性值
$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";
這也是網(wǎng)上搜索的代碼,應用后也是不管用,跟前臺方法一致,將
v.attr_price 去掉,這樣就可以了,
還有產(chǎn)品復制也可能存在相應的問(wèn)題,沒(méi)去實(shí)踐過(guò),方法應該和上面類(lèi)似。
商城網(wǎng)站建設-選擇瑞恒網(wǎng)絡(luò )