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