您的位置:首页 > 其它

限定为每个商品的最小订购数

2014-08-11 11:02 134 查看
(1)首先需要修改ECSHOP 中ecs_goods表,为此表增加一个字段

ALTER TABLE `ecs_goods` ADD `min_buynum` INT( 10 ) NOT NULL DEFAULT '0';

(2)进入 /admin/templates/goods_info.htm进行修改

找到{if $suppliers_exists eq 1},然后在上边增加代码

<td class="label">最小起订数:</<td>
<td><input type="text" name="min_buynum" value="{$goods.min_buynum}"/></td>
</tr>


(3)进入 /admin/goods.php进行修改(注意:一共能找到两处,都要修改才行)

$sql = "INSERT INTO " . $ecs->table('goods') . " (goods_name, goods_name_style, goods_sn,  " .

将之修改为$sql = "INSERT INTO " . $ecs->table('goods') . " (goods_name, goods_name_style, goods_sn, min_buynum, " .

继续,找到(注意:一共能找到两处,都要修改才行)

"VALUES ('$_POST[goods_name]', '$goods_name_style', '$goods_sn', '$catgory_id', " .

将之修改为"VALUES ('$_POST[goods_name]', '$goods_name_style', '$goods_sn', '$_POST[min_buynum]', '$catgory_id', " .

继续向下,找到"goods_sn = '$goods_sn', " .

在它下面增加一行代码"min_buynum = '$_POST[min_buynum]', " .

至此,后台部分修改完毕,下面开始修改前台部分


(4)打开文件 /themes/jd2013/goods.dwt

将<input name="number" type="text" id="number" value="1" size="4" style="border:1px solid #ccc; "/>

修改为<input name="number" type="text" id="number" value="{$goods.min_buynum|default:"1"}" size="4" style="border:1px solid #ccc; "/>

继续向下,找到var qty = document.forms['ECS_FORMBUY'].elements['number'].value;

在它下边增加一段代码
<!--{if $goods.min_buynum}-->
if(qty<{$goods.min_buynum}){
alert('对不起,本商品最小起订数为:{$goods.min_buynum}');
qty={$goods.min_buynum};
}
<!--{/if}-->


(5)进入打开文件 /flow.php

找到$sql = "SELECT g.goods_name, g.goods_number ".

修改为$sql = "SELECT g.goods_name, g.goods_number, g.min_buynum ".

找到//查询:系统启用了库存,检查输入的商品数量是否有效

在它上边增加

/**
*
* @var 比较最小起订数
*
*/
if($row['min_buynum']>$val){
show_message(sprintf('对不起,您选择的商品 %s,最小起订数为 %d 件。',$row['goods_name'],$row['min_buynum']),'返回购物车','?step=cart');
exit;
}


最后后台的运行效果如下图:



前台下订单的时候有如下效果:后台添加默认是十件,前台购买商品的时候默认也是



如果把值修改为小于十的数值的时候会跳转到另一个页面提示:



当我填写大于十件的时候才能进入下一步:



至此完成功能
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐