ecshop后台默认没有给商品设置最小起订量或者最少购买量的功能。保哥在使用ecshop做一个商城时,要给商品设置包邮来吸引买家,但又不想买家购买一件产品也给包邮,这样很容易亏本。对于价值较高的商品有一定的利润空间设置包邮是合情合理的,但是有的商品价格都低于运费了,就不能再包邮了。有的朋友可能会说,可以发布商品属性价格,不同数量装的价格或者发布商品时,设置十个装的价格,但是这样的话,买家一眼看到商品上显示的价位太高,可能心理上就不愿意再看了。我们设置一件商品的价格,这样在心理上感觉便宜。具体的解决思路是可以给ecshop在下订单设置一个强制提示最小购买数量。具体的解决步骤如下:

编辑/themes/goods.dwt文件,找到以下代码:

替换为以下代码:

但是这种方法会使得全站所有的商品购买数量都设置为不低于十个,不太人性化。那么下面这种修改数据库的方法,可以在后台产品编辑时,设置每个商品的最小购买数量。具体方法如下:

第一步,给商品表创建一个新字段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给商品设置最少购买数量的方法相关推荐

  1. php商品在最少购买,ecshop每个商品添加最少购买量最小订购量

    第一步,商品表必须有个字段  代表某个商品 最小订购数量->min_number 打开goods表   在最后字段添加一个min_number  tinyint类型 默认值为0  代表没有最小起 ...

  2. ECSHOP 如何删除商品列表页 购买弹出 商品属性框后面的价格

    场景如图: 商品列表页 购买弹出 商品属性框是由js文件控制的. 打开JS文件js/common.js 问题一.弹出后属性多时,看不到[购买][取消]按钮 搜索代码: newDiv.style.hei ...

  3. php商城多属性选择,ecshop后台商品属性详解之复选属性

    ecshop商品属性一直是困扰ecshop初学者的一个难题,因此我们ecshop模板堂(www.ecmoban.com)将重点讲解一下商品属性的构成,其中的一个是"复选属性" 第一 ...

  4. Ecshop显示商品销售数量

    2019独角兽企业重金招聘Python工程师标准>>> 现在很多网站都显示了商品数量,这里分享一个ECSHOP显示商品数量的方法,累计销售量这一块,其实时刻都是在变化的,所以需要用 ...

  5. java购买同一件商品时加锁_java中CAS的ABA问题思考和整理(不看后悔系列)

    前言 听说经常面试被问到~今天同事说了这个问题,就查了一下这问题,觉得挺有意思的,就整理出来跟大家分享下.主要思考下面几个问题: 1.什么是CAS? 2.什么是CAS的ABA问题? 3.怎么解决这个问 ...

  6. 淘宝API接口系列,获取购买到的商品订单列表,订单详情,订单物流,收货地址列表,买家信息,买家token,卖出的商品订单列表

    custom自定义API操作 buyer_order_list获取购买到的商品订单列表 buyer_order_detail获取购买到的商品订单详情 buyer_order_express获取购买到的 ...

  7. 解答私信@weixin_63670635 //2021-10-30 C语言 某商场节假日商品打折,优惠政策如下:(1)购买商品价格低于100元的,不享受优惠。。。

    某商场节假日商品打折,优惠政策如下: (1)购买商品价格低于100元的,不享受优惠: (2)购买商品价格高于100元但低于300元的,享受九五折优惠. (3)购买商品价格高于300元但低于500元的, ...

  8. 淘宝API接口系列,获取购买到的商品订单列表,卖出的商品订单列表,订单详情,订单物流,买家信息,收货地址列表,买家token

    custom自定义API操作 buyer_order_list获取购买到的商品订单列表 buyer_order_detail获取购买到的商品订单详情 buyer_order_express获取购买到的 ...

  9. 淘宝官方订单 API 接口,获取购买到的商品订单列表

    淘宝/天猫获取购买到的商品订单列表 API 返回值说明 buyer_order_list-获取购买到的商品订单列表 测试接口 公共参数 名称 类型 必须 描述 key String 是 调用key(必 ...

最新文章

  1. SpringMVC——通俗易懂讲讲Ajax~
  2. Java内存模型与线程
  3. The bag-of-words model
  4. 兄弟割席:HTML5标准制定组织分裂
  5. 基于python语言下的UI自动化测试框架搭建(四)
  6. 手机百度输入法的用户体验
  7. 如何阻止button默认的刷新页面操作
  8. Teradata在中国银行业的应用简介
  9. Scrapy:学习笔记(2)——Scrapy项目
  10. 软件工程师的衰落与程序技术员的兴起
  11. Error:java: Compilation failed: internal java compiler error 解决办法
  12. c++ idea 插件_推荐 33 个 IDEA 最牛配置,写代码太爽了
  13. 人工智能:一种现代的方法|课后习题解答
  14. android脚本精灵miui,脚本精灵安卓apk下载
  15. 简单谈谈自己对前端的感想
  16. android 音乐平板,酷狗音乐安卓Pad版
  17. openWRT的DTS文件配置--MT7620A
  18. python二级题库 第四套 附刷题软件
  19. Codeforces Round #829C CF1753C Wish I Knew How to Sort
  20. 新概念英语学习的方法

热门文章

  1. 深入java核心_Java核心(五)深入理解BIO、NIO、AIO
  2. 可调整大小的div_气液增压缸运行速度的调整以及压力的调节方式
  3. git和gitlab安装
  4. Redis(零):背景
  5. Nginx(四):负载均衡Load balancing
  6. linux命令之-管理文件和目录的命令
  7. 利用lamda函数 的函数式编程 实现scrapy审计外网安全问题
  8. 字符与编码(编码转换)
  9. a20隐藏底部按钮及隐藏状态栏和虚拟按键栏
  10. System.Drawing.Color转System.Windows.Media.Color