Ecshop 最小起订量如何设置
第一步,商品表必须有个字段 代表某个商品 最小订购数量->min_number
打开goods表 在最后字段添加一个min_number tinyint类型 默认值为0 代表没有最小起订量
sql: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
在 <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}
Ecshop 最小起订量如何设置的更多相关文章
- 【Spark】SparkStreaming-Tasks-数量如何设置?
SparkStreaming-Tasks-数量如何设置? sparkstreaming task 数量设置_百度搜索 spark内核揭秘-14-Spark性能优化的10大问题及其解决方案 - star ...
- Centos7最小化安装之工作站设置
Centos7最小化安装之工作站设置 实测在Vultr的VPS上正常可用 在Vultr上怎么看桌面 两种解决方法: 使用VNC远程连接 直接使用Vultr的view console功能 我使用的是第二 ...
- ecshop前台英文后台中文的设置方法
ecshop前台英文后台中文的设置方法 这里有两种方法: 第一种方法: 打开 admin/includes/init.php 文件 找到$_CFG = load_config(); 在它下面增加一行代 ...
- Ecshop导航栏标题栏的伪静态设置
当Ecshop的伪静设置成功之后,左侧的分类标签,包括具体的产品页面都可以顺利的打开伪静态页面,但是点击导航栏,或者标题栏的时候,却还是之前的数据库标签页的方式,这是怎么一回事呢? 这是由于,Ecsh ...
- ECSHOP商城全站自定义TITLE标题设置
对于SEO来说,能让标题自定义的将会大大增加SEO效果,提高独立商城的流量,今天小编就收集从网上弄来ecshop全站自定义代码,很全哦! 1.Ecshop商品分类页如何实现自定义Title 最近发现很 ...
- ECSHOP模板 蘑菇街2018广告楼层设置说明
楼层广告以及说明 图1 ------------------ 设置,通过,后台,模板设置,分类下的商品,选用需要显示的商品分类 图2------------------ 后台,编辑商品分类的广告链接. ...
- CSS 基础 例子 最小高度和最大高度设置
最小高度,无论什么时候,高度不会小于该值,即使内容很少,不限制高度最大值,超出时候,按照实际内容来决定高度 最大高度,无论什么时候,高度不会大于该值,即使内容很多,不限制最小高度,超出时候,多出部分会 ...
- ecshop,大商创后台设置增加字段方法
使用场景:在开发过程中有时是需要在后台增加一个参数 例如: 必须要改数据库和源码的 1,在数据库中增加一条数据 数据库名称:shop_config 2:后台语言包
- zend studio 提升开发效率的快捷键及可视化订制相关设置
Zend studio快捷键使用 F3 快速跳转到当前所指的函数,常量,方法,类的定义处,相当常用.当然还可以用Ctrl+鼠标左键 shift+end 此行第一个到最后一个 shift+home 此行 ...
随机推荐
- java内部类和匿名内部类
内部类即是包含在类里面的又一个类. java内部类分为: 成员内部类.静态嵌套类.方法内部类.匿名内部类 . 内部类的共性 (1).内部类仍然是一个独立的类,在编译之后内部类会被编译成独立的.clas ...
- 马踏飞燕——奔跑在Docker上的Spark
目录 为什么要在Docker上搭建Spark集群 网络拓扑 Docker安装及配置 ssh安装及配置 基础环境安装 Zookeeper安装及配置 Hadoop安装及配置 Spark安装及配置 集群部署 ...
- CLR内存管理
CLR管理内存的区域,主要有三块,分别为: 1.线程的堆栈:(在程序应该编译过程为值类型实例分配好内存) 用于分配值类型实例.堆栈主要由操作系统管理,而不受垃圾收集器的控制,当值类型实例所在方法结束时 ...
- 【基础知识】.Net基础加强06天
一. 垃圾回收 1. 垃圾回收的目的:提高内存的利用效率. 2. 垃圾回收器: 只回收托管堆中的内存资源,不回收其他资源(数据库连接.文件句柄.网络端口等): 3. 什么时候垃圾回收? a) 当对象没 ...
- Memcached使用小记
该文章简单记录一下在Windows平台下安装与配置Memcached的方法,Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载. 1.下载Memcached ...
- Kali Linux Web 渗透测试视频教程—第十四课-arp欺骗、嗅探、dns欺骗、session劫持
Kali Linux Web 渗透测试视频教程—第十四课-arp欺骗.嗅探.dns欺骗.session劫持 文/玄魂 目录 Kali Linux Web 渗透测试—第十四课-arp欺骗.嗅探.dns欺 ...
- 分享我用Qt开发的应用程序【二】在Qt应用程序中使用字体图标fontawesome
为了使用简单,需要先写一个单件类,头文件的代码如下: 其中静态方法Instance保证IconHelper的实例全局唯一 (注意构造函数已经私有化了) #ifndefICONHELPER_H #def ...
- [异常] MyEclipse Deploy点不开 An internal error occurred during: "Launching MVC on Tomcat 6.x". java.lang.NullPointerException
>_<" 今天做struts时,工程写好了,可是点击MyEclipse上面的Delopy不会跳出常规的窗口,导致各种坑~ >_<" 如果直接运行还出现下面的 ...
- [ACM_搜索] POJ 1096 Space Station Shielding (搜索 + 洪泛算法Flood_Fill)
Description Roger Wilco is in charge of the design of a low orbiting space station for the planet Ma ...
- Linux:文件类型和权限
一个目录要同时具有读权限和执行权限才可以打开,而一个目录要有写权限才允许在其中创建其它文件.