php商品在最少购买,ECSHOP给商品设置最少购买数量的方法
ecshop后臺默認沒有給商品設置最小起訂量或者最少購買量的功能。保哥在使用ecshop做一個商城時,要給商品設置包郵來吸引買家,但又不想買家購買一件產品也給包郵,這樣很容易虧本。對于價值較高的商品有一定的利潤空間設置包郵是合情合理的,但是有的商品價格都低于運費了,就不能再包郵了。有的朋友可能會說,可以發(fā)布商品屬性價格,不同數量裝的價格或者發(fā)布商品時,設置十個裝的價格,但是這樣的話,買家一眼看到商品上顯示的價位太高,可能心理上就不愿意再看了。我們設置一件商品的價格,這樣在心理上感覺便宜。具體的解決思路是可以給ecshop在下訂單設置一個強制提示最小購買數量。具體的解決步驟如下:
編輯/themes/goods.dwt文件,找到以下代碼:
替換為以下代碼:
但是這種方法會使得全站所有的商品購買數量都設置為不低于十個,不太人性化。那么下面這種修改數據庫的方法,可以在后臺產品編輯時,設置每個商品的最小購買數量。具體方法如下:
第一步,給商品表創(chuàng)建一個新字段min_number用于儲存每個商品的最小訂購數量數據,打開goods表在最后字段添加一個min_number類型為tinyint默認值為0
alter table 'goods' add column 'min_number' tinyint (3) UNSIGNED DEFAULT '0' NOT NULL 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 == ''){
$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
在
{$lang.lab_shop_price}{$lang.require_field}
后添加
{$lang.lab_min_number}{$lang.notice_min_number}
第五步:修改語言languages/zh_cn/admin/goods.php
最后添加
$_LANG['lab_min_number'] = '最小購買數量:';
$_LANG['notice_min_number'] = '該商品最小購買數量,0表示按購買數量無限制.'
到現在位置 后臺設置全部結束了,不知道大家能懂了沒有
前臺實現:
以default模板為例,修改themes/default/goods.dwt
改成
這樣就是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}
總結
以上是生活随笔為你收集整理的php商品在最少购买,ECSHOP给商品设置最少购买数量的方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python multithreadin
- 下一篇: python遍历二维数组_在Python