ecshop2.6.2中quotation.php显示会员等级价格
2009-08-26 17:14 来源:www.chinab4c.com 作者:ecshop专家
在ecshop2.6.2中。quotation.php报价单打印存在ecshop会员等级的价格问题.
比如在后台设置注册会员折扣为80.录入产品的时候,如果按默认的-1.那么本店价格100的产品,注册会员应该是80.如果手动录入,会员价格是85.在报价格单里面还是按照100*0.8来显示。这样的话,手动输入的 注册会员价格就失效了。
$user_rank = calc_user_rank($user_rank, $rank_point);是用来处理等级价格的,还真不好用,他却忘记了考虑手动录入的等级价格。
首先,编写会员等级处理价格函数.根据产品ID,会员等级ID.
   function get_user_rank_prices($goods_id, $shop_price)
{
    $sql = "SELECT rank_id, IFNULL(mp.user_price, r.discount * $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;
}
在报价单列表页面,需要加入会员等级ID和等级名称。
  $smarty->assign('urank',$_SESSION['user_rank']);
  $smarty->assign('urank_n',$db -> getOne("select rank_name from ".$ecs->table('user_rank')." where rank_id = ".$_SESSION['user_rank']));
 
其次,处理报价单会员等级价格。
   foreach ($goods_list as $k => $v){
     $goods_list[$k]['rank'] = get_user_rank_prices($v['goods_id'], $v['shop_price']);
    }
修改data/quotation_print.html目录下,打印模板。
增加头部.
    <tr>
        <th width="35%">{$lang.goods_name}</th>
  <th width="10%"> 产品编号</th>
  <th>图片</th>
        <th>{$lang.goods_category}</th>
        <!--{if $cfg.use_storage and $cfg.show_goodsnumber}-->
        <th>{$lang.goods_inventory}</th>
        <!-- {/if} -->
        <th>本店价格</th>
        <!--{foreach from=$extend_price key=key name = n item=ext_price}-->
  {if $ext_price == $urank_n}
        <th>{$ext_price}</th>
  {/if}
        <!--{/foreach}-->
    </tr>
    <!--{foreach from=$goods_list item=goods}-->
    <tr>
        <td><a href="goods.php?id={$goods.goods_id}">{$goods.goods_name}</a></td>
  <td>{$goods.goods_sn}</td>
  <td><img src="{$goods.goods_thumb}" width="40" height="40"></td>
        <td>{$goods.goods_category}</td>
        <!--{if $cfg.use_storage and $cfg.show_goodsnumber}-->
        <td>{$goods.goods_number}</td>
        <!-- {/if} -->
        <td>{$goods.shop_price}</td>
        <!--{foreach from=$goods.rank item=ext_rank}-->
  
  {if $urank_n == $ext_rank.rank_name}
        <td>{$ext_rank.price}</td>
  {/if}
        <!--{/foreach}-->
    </tr>
    <!--{/foreach}-->
通过 {if $urank_n == $ext_rank.rank_name}来判断对应等级的价格.
通过{if $ext_price == $urank_n}来判断头部对应价格的名称.
相关文章:
来源:中国B4C电子商务
最近更新
常用插件
- ecshop购物车功能改进[插件
                                  ecshop购物车功能改进[插件套餐]主要是我们最近开发工作和开发项目中。... 
- ecshop通用红包编码
                                  很多时候,为了结合促销,必须扩展一下ecshop的红包功能。ecshop的红包... 
- ecshop分类树中统计商品数
                                  最近忙于开发其他项目,在不少朋友不断要求和催促的情况下,做出了该小... 
- ecshop降价通知登记插件
                                  ecshop降价通知登记插件,主要是为了方便某些客户,对商品价格要求比... 
- ecshop红包修改成满多少减
                                  我们在长期使用ecshop的时候,我们可以发现。ecshop的红包是一个非常强... 



