不同会员等级和不同品牌折扣率不同 问题

2016-07-07 15:36 来源:www.chinab4c.com 作者:ecshop专家

我想让价格按不同会员等级和商品所属不同品牌的折扣率来计算价格。
程序默认是不管什么品牌的商品都按会员等级来打折,这样不太实际,不同的品牌也打不同的折更符合常理。
品牌表改为如下,加了个会员等级vip字段。
brand_idbrand_namebrand_logobrand_descsite_urlsort_orderis_showvip
然后修改了goods.php文件中get_user_rank_prices()函数;
function get_user_rank_prices($goods_id, $shop_price)
{

$strsql1 = "SELECT brand_id FROM" . $GLOBALS['ecs']->table('goods') . "where goods_id='$goods_id'";// 根据商品id取出品牌id
// 执行sql查询
$result1=$GLOBALS['db']->query($strsql1);
// 获取查询结果
$row1 = $GLOBALS['db']->fetchRow($result1);
$kk=$row1[0];

$strsql2 = "SELECT vip FROM" .$GLOBALS['ecs']->table('brand') . "where brand_id='$kk' ";
//取出这个会员购买的商品的品牌所对应的具有此会员等级的折扣率
$result2=$GLOBALS['db']->query($strsql2);
// 获取查询结果
$row2 = $GLOBALS['db']->fetchRow($result2);
$pp=$row2[0];
//然后根据这个折扣来计算会员等级价格。
$sql = "SELECT rank_id, IFNULL(mp.user_price, '$pp' * $shop_price / 100) AS price, r.rank_name, r.discount " .
'FROM ' . $GLOBALS['ecs']->table('user_rank') . ' AS r ' .
'LEFT JOIN ' . $GLOBALS['ecs']->table('member_price') . " AS mp ".
"ON mp.goods_id = '$goods_id' AND mp.user_rank = r.rank_id " .
"WHERE r.show_price = 1 OR r.rank_id = '$_SESSION[user_rank]'";
$res = $GLOBALS['db']->query($sql);
$arr = array();
while ($row = $GLOBALS['db']->fetchRow($res))
{
$arr[$row['rank_id']] = array(
'rank_name' => htmlspecialchars($row['rank_name']),
'price'=> price_format($row['price']));
}
return $arr;
}
更改之后在商品详情页中 会员等级价格全都为0
不知道什么原因,有心人士看看了
QQ119470
感激不尽啊

回答:
不建议这样更改程序。你可以找官方或者2次开发商定制。

或者不更改程序,给每个商品,每个等级设定一个价格,这样也是可以的。