ecshop二次开发增加购物金额上限功能

最近在接触Ecshop,国内最大的php开源电子商城系统,其后台默认管理页面里有一项功能是最小购物金额限制,通俗的讲就是当客户买的东西价格太小,没有利润可赚的时候,不允许用户提交订单。

开发增加购物金额上限功能-ecshop二次开发">

然而在现实的某些方面的交易中,我们可能还需要一个最大购物金额限制,所以此文的由来就是这里。初看,貌似很简单么,一个表单里加个inputtext,前面搞个label或者span写上“最大购物金额”,然后把该增加的inputtext的value存储到数据库里,可是事实上却并不是那么的简单。

先来看后台该选项的配置文件为/admin/shop_config.php,打开后,发现其文件内并没有任何直接可以预读到的东西,也没有呈现出上面所说的表单的基础结构。好吧,先看看文件内有些什么吧。很快找到下面那一行,得出选项存储的数据都存放在名为shop_config的table里。

$sql = "SELECT * FROM " . $ecs->table('shop_config') .
            " WHERE type<>'hidden' $config_groups $excludes_groups ORDER BY parent_id, sort_order, id";
文件末尾有个函数,读取配置到数组里变量存放,看来是用来直接读取数据库里的shop_config表里的各项的值。
/**
 * 获得设置信息
 *
 * @param   array   $groups     需要获得的设置组
 * @param   array   $excludes   不需要获得的设置组
 *
 * @return  array
 */
function get_settings($groups=null, $excludes=null)
那么shop_config里的数值是什么时候生成的呢?这个是安装初始化的时候写入到数据库里的,所以接下来打开shop_config表,很容易找到code为min_goods_amount的value为10。

 

parent_id对应的就是get_settings函数里的group,购物流程是第4个项目,所以这里是4:

然后根据上文提到的sql语句,基本可以判定按id大小顺序读取该表内容,然后呈现在Ecshop后台的配置选项中,尝试在表里最后直接添加一行数据:

另外需要自行调整对应的语言翻译文件/languages/zh_cn/admin/shop_config.php,对应位置添加下面两行。

$_LANG['cfg_name']['max_goods_amount'] = '最大购物金额';  
$_LANG['cfg_desc']['max_goods_amount'] = '低于此购物金额,才能提交订单。';
以及languages/zh_cn/shopping_flow里添加超过限额返回的提示内容。
$_LANG['goods_amount_not_enough'] = '您购买的商品没有达到本店的最低限购金额 %s ,不能提交订单。';
最终,刷新后台配置页面,显示如下:

 

最终,刷新后台配置页面,显示如下:

当用户购买超过1000元的物品时:

前台返回错误页面给用户:

时间: 2024-08-01 17:57:10

ecshop二次开发增加购物金额上限功能的相关文章

discuz!-ecshop二次开发中关于discuz和Ucenter的问题?、、

问题描述 ecshop二次开发中关于discuz和Ucenter的问题?.. ecshop中如何整合Ucenter和Discuz???当登录Ucenter时,ECShop是否也会登录, 当登录到ecshop时,Discuz是否也会登录???求解..... 解决方案 ecshop二次开发ecshop二次开发ecshop 二次开发

ECSHOP二次开发指南

所有函数功能说明: lib_time.php gmtime() P: 获得当前格林威治时间的时间戳 /$0 server_timezone() P: 获得服务器的时区 /$0 local_mktime($hour = NULL , $minute= NULL, $second = NULL, $month = NULL, $day = NULL, $year = NULL) P: 生成一个用户自定义时区日期的GMT时间戳 local_date($format, $time = NULL) P:

Ecshop二次开发之后台添加新栏目

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 最近几天看ecshop的源码,学到不少东西.这篇日记记录下后台添加新栏目(菜单项)的步骤,以备后用. step1 添加菜单项 打开 /admin/includes/inc_menu.php文件(后台框架左边菜单),在最后添加一行如下: 1$modules['17_other_menu']['sns_list'] = 'sns_list.php

ecshop自动分成二次开发实例

大概逻辑:后台操作一个订单发货的时候进行自动分成,后台取消发货,退货,改为未发货的时候去掉自动分成部分.核心代码:lib_common.php //分成积分计算 function fenchenjifen($usertype=3,$point){  $affiliate = unserialize($GLOBALS['_CFG']['affiliate']);           if($usertype==3){   //采购                                  

json-ecshop二次开发,JSON功能的使用

问题描述 ecshop二次开发,JSON功能的使用 想在ecshop二次开发中,想在提交订单页添加一个优惠券功能,输入优惠券编号点击"更新"即可修改所付金额,在此我是用的是JSON无刷新功能,但输入优惠券编号,点击 "更新" 始终没有反应,恳请高手大哥指点小弟一下,谢谢! flow.dwt flow.php

ecshop中给编辑器增加字体样式功能

别安在对ecshop二次开发中发现后台的编辑器没有字体样式,于是找出如下的解决办法: 1,.在fckconfig找到此行增加中文字体样式:  代码如下 复制代码 FCKConfig.FontNames = '宋体;黑体;隶书;楷体_GB2312;Arial;Comic Sans MS;Courier New;Tahoma;Times New Roman;Verdana' ; 2.在fck_editorarea.css中添加字体  代码如下 复制代码 body, td {     font-fam

ERP系统二次开发的原因

ERP实施过程中,由于各企业情况不同,必然会存在一些无法满足企业需求的情况,虽然系统通过参数调整可以满足部分需求,但很多情况下都需要改动原有程序.甚至需要修改原始数据库结构来满足需求. ERP系统二次开发的原因 1.用户不接受新系统的操作习惯 ERP产品为了保持较强的通用性,功能跟流程的设置都是标准与规范的.但在实施时,除了业务流程等方面具有个性化需求外,还存在着一些不涉及业务流程的.由企业的特殊性而产生的操作习惯需求,而提出了大量的二次开发. 2.企业不规范的管理制度造成的特殊流程需求 大部分

ERP软件不成熟 需要过多二次开发

http://www.aliyun.com/zixun/aggregation/29808.html">ERP系统的实施难度广为人知,实施失败的案例也比比皆是.归结起来,不外乎三方面的原因,一是软件功能不足,二是数据不准,三是管理不到位. 就一个软件的使用而言,本人觉得前两者起着决定性作用,也就是说这两大原因决定了ERP项目的死活,至于管理问题,是一个逐步改进的过程,对ERP实施并不构成决定性影响. 软件功能不足是最大的问题,任何一家企业,其管理都或多或少地有些特点,使用的数据也并非是标准

项目二次开发,增加密码找回功能

问题描述 项目二次开发,增加密码找回功能 项目二次开发,增加密码找回功能,具体的现实思路和流程,工作环境是Microsoft Visual Studio 2010,数据库是sql2008.有具体的思路,加代码更好.我是刚出道飞菜鸟,谢谢各位大神!