限时抢购,秒杀商品的二次开发

2016-07-07 14:55 来源:www.chinab4c.com 作者:ecshop专家

1,先在后台admin/templates 中找goods_info.htm文件到促销部分,改为一个下拉列表的分别是促销,限时,秒杀,值分别是1,2,3
这样,代码如下:
<!--限时抢购开始 liangfang edit-->
<tr>
<td class="label"><label for="is_promote">
<input type="checkbox" id="is_promote_switch" name="is_promote_switch" value="1" {if $goods.is_promote}checked="checked"{/if} onclick="handlePromote(this.checked);" /> 是否参加促销</label>
<select name="is_promote" id="is_promote">
<option value="1" {if $goods.is_promote eq 1}selected="selected"{/if} >{$lang.lab_promote_price}</option>
<option value="2" {if $goods.is_promote eq 2}selected="selected"{/if} >限时价:</option>
<option value="3" {if $goods.is_promote eq 3}selected="selected"{/if} >秒杀价:</option>
</select></td>
<td id="promote_3"><input type="text" id="promote_1" name="promote_price" value="{$goods.promote_price}" size="20" /></td>
</tr>
<tr id="promote_4">
<td class="label" id="promote_5">{$lang.lab_promote_date}</td>
<td id="promote_6">
<input name="promote_start_date" type="text" id="promote_start_date" size="15" value='{$goods.promote_start_date}' readonly="readonly" /><input name="selbtn1" type="button" id="selbtn1" onclick="return showCalendar('promote_start_date', '%Y-%m-%d %H:%M', '24', false, 'selbtn1');" value="{$lang.btn_select}" class="button"/> - <input name="promote_end_date" type="text" id="promote_end_date" size="15" value='{$goods.promote_end_date}' readonly="readonly" /><input name="selbtn2" type="button" id="selbtn2" onclick="return showCalendar('promote_end_date', '%Y-%m-%d %H:%M', '24', false, 'selbtn2');" value="{$lang.btn_select}" class="button"/>
</td>
</tr>
<!--限时抢购结束-->

其中对时间选择框进行了重新设置为显示小时和分钟。
2,把admin下的goods.php 改一句话,注释部分是原先的代码

$is_promote = empty($promote_price) ? 0 : $_POST['is_promote'];//liangfang edit
// $is_promote = empty($promote_price) ? 0 : 1;

3,编写取出分别是限时和秒杀商品的代码或函数,在此贴出关键是sql
$sql = "SELECT goods_id,goods_thumb,goods_name,shop_price,promote_price,promote_start_date,promote_end_date FROM "
.$GLOBALS['ecs']->table('goods').
" WHERE is_promote = '2' and promote_start_date <= '$now_time' andpromote_end_date >= '$now_time' and is_on_sale = 1 and is_alone_sale = 1 and is_delete = 0 order by promote_start_date asc limit $promote_munber";

4,如果需要只有注册或登录的用户才能进行购买,并只能网上支付,不能余额支付,那需要修改flow.php,sql查出购物车中是不是存在限时,秒杀商品,存在就设置一个session 值,以便区别,加上js函数给用户提示,在购物车有限时,秒杀和普通商品的时候只能网上支付。

有需要这个功能的朋友可以联系我,QQ 9468802