关于让ecshop网店购物流程限制购买数量
2016-09-11 20:38 来源:www.chinab4c.com 作者:ecshop专家
做过ecshop商城,或者说经营过商城的都会知道,有很多商品利润很小,而且还要包运费什么的,所以根本就是做亏本的生意,如果利润小,数量多的话 这样就不会出现赔本的损失。所以 今天第一个插件也是很实用的插件就是如果在后台设置商品最小起订量
	第一步,商品表必须有个字段  代表某个商品最小订购数量->min_number
    打开goods表 
 在最后字段添加一个min_number  tinyint类型默认值为0  代表没有最小起订量
sql:alter table `ecs_goods` add column `min_number` tinyint (3)
UNSIGNED  DEFAULT '0' NONULLbsp; after `warn_number`;
第二部,在后台添加商品的时候 必须有个text文本框  设置最小起订量
admin/goods.php
在'warn_number'=> 1 , 代码行后插入'min_number'=>
0, 
在$warn_number = isset($_POST['warn_number']) ?
$_POST['warn_number'] : 0;
后添加代码$min_number = isset($_POST['min_number']) ?
$_POST['min_number'] : 0;
第三部修改添加商品sql语句
将
/* 入库 */
if ($is_insert)
{
if ($code == '')
{
....由于发帖篇幅的限制省略原有代码无数
}
else
{
......
}
}
else
{
/* 如果有上传图片,删除原来的商品图 */
.....
	}
修改代码
    if ($is_insert){      
     if ($code == ''){
      $sql = "INSERT INTO " .
$ecs->table('goods') . " (goods_name, goods_name_style, goods_sn,
" .
          "cat_id, brand_id, shop_price,
market_price, is_promote, promote_price, " .
             "promote_start_date,
promote_end_date, goods_img, goods_thumb, original_img,keywords, goods_brief,
" .
             "seller_note,
goods_weight, goods_number, warn_number,min_number, integral,give_integral,
is_best, is_new, is_hot, ".
             "is_on_sale, is_alone_sale,
goods_desc, add_time, last_update, goods_type,rank_integral)" .
            "VALUES
('$_POST[goods_name]', '$goods_name_style', '$goods_sn', '$catgory_id', "
.
             "'$brand_id',
'$shop_price', '$market_price', '$is_promote','$promote_price', ".
            
"'$promote_start_date', '$promote_end_date', '$goods_img', '$goods_thumb',
'$original_img', ".
             "'$_POST[keywords]',
'$_POST[goods_brief]', '$_POST[seller_note]',
'$goods_weight','$goods_number',".
             "'$warn_number','$min_number',
'$_POST[integral]', '$give_integral', '$is_best', '$is_new', '$is_hot',
'$is_on_sale', '$is_alone_sale', ".
            
"'$_POST[goods_desc]', '" . gmtime() . "', '". gmtime()
."', '$goods_type','$rank_integral')";
     }else{
      $sql = "INSERT INTO " .
$ecs->table('goods') . " (goods_name, goods_name_style, goods_sn,
".
         "cat_id, brand_id, shop_price,
market_price, is_promote, promote_price, " .
      "promote_start_date, promote_end_date,
goods_img, goods_thumb, original_img,keywords, goods_brief, " .
      "seller_note, goods_weight, goods_number,
warn_number, min_number,integral,give_integral, is_best, is_new, is_hot,
is_real, " .
      "is_on_sale, is_alone_sale, goods_desc,
add_time, last_update, goods_type,extension_code, rank_integral)" .
      "VALUES ('$_POST[goods_name]',
'$goods_name_style', '$goods_sn', '$catgory_id', " .
      "'$brand_id', '$shop_price', '$market_price',
'$is_promote','$promote_price', ".
      "'$promote_start_date', '$promote_end_date',
'$goods_img', '$goods_thumb','$original_img', ".
      "'$_POST[keywords]', '$_POST[goods_brief]',
'$_POST[seller_note]', '$goods_weight','$goods_number',".
      " '$warn_number','$min_number',
'$_POST[integral]', '$give_integral', '$is_best','$is_new', '$is_hot', 0,
'$is_on_sale', '$is_alone_sale’' ".
      " '$_POST[goods_desc]', '" . gmtime() .
"', '". gmtime() ."', '$goods_type', '$code',
'$rank_integral')";
     }
    }else{
     
      $sql = "SELECT goods_thumb, goods_img,
original_img " .
             " FROM " .
$ecs->table('goods') .
       " WHERE goods_id = '$_REQUEST[goods_id]'";
      $row = $db->getRow($sql);
      if ($proc_thumb && $goods_img &&
$row['goods_img'] &&
      !goods_parse_url($row['goods_img']))
      {
       @unlink(ROOT_PATH . $row['goods_img']);
       @unlink(ROOT_PATH . $row['original_img']);
      }
      if ($proc_thumb && $goods_thumb &&
$row['goods_thumb'] && !goods_parse_url($row['goods_thumb']))
      {
       @unlink(ROOT_PATH . $row['goods_thumb']);
      }
       $sql = "UPDATE " . $ecs->table('goods')
. " SET " .
       "goods_name = '$_POST[goods_name]', " .
       "goods_name_style = '$goods_name_style', "
.
       "goods_sn = '$goods_sn', " .
       "cat_id = '$catgory_id', " .
       "brand_id = '$brand_id', " .
       "shop_price = '$shop_price', " .
       "market_price = '$market_price', " .
       "is_promote = '$is_promote', " .
       "promote_price = '$promote_price', " .
       "promote_start_date = '$promote_start_date',
" .
       "promote_end_date = '$promote_end_date',
";
       
       if ($goods_img)
       {
        $sql .= "goods_img = '$goods_img',
original_img = '$original_img', ";
       }
       if ($goods_thumb)
       {
        $sql .= "goods_thumb =
'$goods_thumb', ";
       }
       if ($code != '')
       {
        $sql .= "is_real=0,
extension_code='$code', ";
       }
       $sql .= "keywords = '$_POST[keywords]', "
.
        "goods_brief =
'$_POST[goods_brief]', " .
        "seller_note =
'$_POST[seller_note]', " .
        "goods_weight = '$goods_weight',"
.
        "goods_number = '$goods_number',
" .
        "warn_number = '$warn_number',
" .
        "min_number = '$min_number', "
.
        "integral = '$_POST[integral]',
" .
        "give_integral = '$give_integral',
" .
        "rank_integral = '$rank_integral',
" .
        "is_best = '$is_best', " .
        "is_new = '$is_new', " .
        "is_hot = '$is_hot', " .
        "is_on_sale = '$is_on_sale', "
.
        "is_alone_sale = '$is_alone_sale',
" .
        "goods_desc = '$_POST[goods_desc]', "
.
        "last_update = '". gmtime()
."', ".
        "goods_type = '$goods_type' " .
        "WHERE goods_id =
'$_REQUEST[goods_id]' LIMIT 1";
     }
第四步修改后台模板文件(在市场价会员价  后边添加设置最小起订量)
admin/templates/goods_info.htm 
在 <tr>
       <td class="label">{$lang.lab_shop_price}</td>
       <td><input type="text"
name="market_price" value="{$goods.shop_price}"
size="20" />
       <input type="button"
value="{$lang.integral_market_price}"
onclick="integral_market_price()"
/>{$lang.require_field}</td>
   </tr>
添加
<!-- 新增 批发数量限制 begin --> 
    <tr> 
        <td
class="label">{$lang.lab_min_number}</td> 
        <td><input type="text"
name="min_number" value="{$goods.min_number}"
size="20" />
           <span
class="notice-span" {if $help_open}style="display:block"
{else} style="display:none" mce_style="display: none;"
{/if} id="minNumber">{$lang.notice_min_number}</span>
        </td>
        </td>
    </tr>
<!-- 批发数量限制 end -->
第五步:修改语言languages/zh_cn/admin/goods.php
最后添加
$_LANG['lab_min_number']       = '最小购买数量:';
$_LANG['notice_min_number']    = '该商品最小购买数量,0表示按购买数量无限制.'
到现在位置 后台设置全部结束了,不知道大家能懂了没有
下面我们说说前台如何来实现
我以default模板为例子给大家讲解
想做起订量限制,这个必然是在商品购买页面  购买数量框来做限制最简单的办法就是用JS当然还有别的办法
首先给那些如果给了起订量的商品  购买页面直接显示默认最少购买数量
如果在后台设置的AA商品最少5个    那么进入AA商品页面购买数量默认值就是5
我这样来实现
修改themes/default/goods.dwt
<input name="number" type="text" id="number"
value="1" size="4" onBlur="changePrice()"
style="border:1px solid #ccc; " mce_style="border: 1px solid
#ccc;"/>
改成
<input name="number" type="text" id="number"
value="{$goods.min_number|default:"1"}" size="4"
onblur="changePrice()" style=”border:1px solid #ccc; "
mce_style="border: 1px solid #ccc;"/><br/> 
这样就是value  也就是默认值了 
最后添加JS判断就好了
themes/default/goods.dwt
在
var qty = document.forms['ECS_FORMBUY'].elements['number'].value;
后添加
{if $goods.min_number}
if(qty < {$goods.min_number})
{
alert('您输入的数字小于此商品最小购买数量:{$goods.min_number}');
qty = {$goods.min_number};
}
{/if}
最近更新
常用插件
- ecshop2.7.2生成虚拟订单2.
                                  以前我们开发过ecshop下的虚拟订单,就是客户在访问的时候,会自动生... 
- ecshop最小购买数量控制插
                                  ecshop最小购买数量控制插件,这个插件主要是为我们提供一个十分方便... 
- ecshop二次开发商品购买增
                                  图片1香... 
- ecshop没登陆情况下订单查
                                  ecshop没登陆情况下订单查询插件,主要是针对ecshop在没有登陆的情况下... 
- ecshop2.7.1邮件发送插件
                                  ecshop2.7.1邮件发送插件:该插件主要的开发思想是源于ecshop短信发送系统... 



