| 
   
    ecshop在商品录入的时候,我们可以录入不同的购买数量。享受不同的购买价格的功能。也就是我们讲述的ECSHOP商品价格区间原理分析。在ecshop录入商品的时候,我们可以选择性的录入一些区间价格。 
   首先我们看ecshop数据库商品区间价格表ecs_volume_price。里面有商品的ID。volume_number这个表示购买的数量,volume_price表示商品区间所在的价格。在录入或者是编辑ecshop商品的时候。我们可以看到ecshop模板中存在以下代码。 
   <tr>             <td class="label"><a href="javascript:showNotice('volumePrice');" title="{$lang.form_notice}"><img src="images/notice.gif" width="16" height="16" border="0" alt="{$lang.form_notice}"></a>{$lang.lab_volume_price}</td>             <td>               <table width="100%" id="tbody-volume" align="center">                 {foreach from=$volume_price_list item=volume_price name="volume_price_tab"}                 <tr>                   <td>                      {if $smarty.foreach.volume_price_tab.iteration eq 1}                        <a href="javascript:;" onclick="addVolumePrice(this)">[+]</a>                      {else}                        <a href="javascript:;" onclick="removeVolumePrice(this)">[-]</a>                      {/if}                      {$lang.volume_number} <input type="text" name="volume_number[]" size="8" value="{$volume_price.number}"/>                      {$lang.volume_price} <input type="text" name="volume_price[]" size="8" value="{$volume_price.price}"/>                   </td>                 </tr>                 {/foreach}               </table>               <span class="notice-span" {if $help_open}style="display:block" {else} style="display:none" {/if} id="volumePrice">{$lang.notice_volume_price}</span>             </td>           </tr> 
       我们分析ecshop商品录入和编辑程序。在程序里面,如果存在商品的价格区间,那么将从ecshop数据库中将该区间价格读出来。 
      $volume_price_list = '';     if(isset($_REQUEST['goods_id']))     {     $volume_price_list = get_volume_price_list($_REQUEST['goods_id']);     }     if (empty($volume_price_list))     {         $volume_price_list = array('0'=>array('number'=>'','price'=>''));     }     $smarty->assign('volume_price_list', $volume_price_list); 
    当我们录入区间价格的时候,获取购买数量和对应优惠价格的数组。 
     if (isset($_POST['volume_number']) && isset($_POST['volume_price']))     {         $temp_num = array_count_values($_POST['volume_number']);         foreach($temp_num as $v)         {             if ($v > 1)             {                 sys_msg($_LANG['volume_number_continuous'], 1, array(), false);                 break;             }         }         handle_volume_price($goods_id, $_POST['volume_number'], $_POST['volume_price']);     } 
       将他提交到数据库中去。 
      当我们在前台购买的时候,将会在get_final_price($goods_id, $num, true, $spec);有段这个函数,通过购买数量,来统计交易金额。这个函数中的以下代码 
    //取得商品优惠价格列表     $price_list   = get_volume_price_list($goods_id, '1'); 
    if (!empty($price_list))     {         foreach ($price_list as $value)         {             if ($goods_num >= $value['number'])             {                 $volume_price = $value['price'];             }         }     }  
      就是来计算该商品购买多少数量,对应的优惠价格。 
     以上就是ecshop促销功能的一大原理。 
   |