ECSHOP商品价格区间原理分析
2011-05-10 21:15 来源:www.chinab4c.com 作者:admin
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促销功能的一大原理。
最近更新
常用插件
- ecshop降价通知登记插件
ecshop降价通知登记插件,主要是为了方便某些客户,对商品价格要求比...
- ecshop分类树中统计商品数
最近忙于开发其他项目,在不少朋友不断要求和催促的情况下,做出了该小...
- ecshop红包修改成满多少减
我们在长期使用ecshop的时候,我们可以发现。ecshop的红包是一个非常强...
- ecshop通用红包编码
很多时候,为了结合促销,必须扩展一下ecshop的红包功能。ecshop的红包...
- ecshop购物车功能改进[插件
ecshop购物车功能改进[插件套餐]主要是我们最近开发工作和开发项目中。...