ECshop 所有系统通用 多货币解决方案
ECShop功能介绍

指导老师:黄华毕业学校:清远职业技术学院ECShop简介是Comsenz公司推出的一款B2C独立网店系统,现已出售给ShopEX的开发商上海商派网络科技有限公司。
适合企业及个人快速构建个性化网上商店。
系统是基于PHP语言及MYSQL数据库构架开发的跨平台开源程序。
ECShop悉心听取每一位商家的需求与建议,不仅设计了人性化的网店管理系统帮助商家快速上手,还根据中国人的购物习惯改进了购物流程,实现更好的用户购物体验。
经过近两年的发展,ECShop网店系统无论在产品功能、稳定性、执行效率、负载能力、安全性和SEO支持(搜索引擎优化)等方面都居国内同类产品领先地位,成为国内最流行的购物系统之一。
ECShop功能介绍1. 灵活的模版机制ECShop开发了独有的高效模板引擎(2.15以前版本使用smarty模板引擎),并结合了Dreamweaver的模板和库功能,使得编辑制作模板变得更简单。
2. 开放的插件机制支付、配送,会员整合都是以插件形式实现。
商家可以随时增加或变更的支付方式和配送体系。
ecshop支持大部分php开发的论坛系统,包括discuz,phpwind 等,只需在后台做简单参数配置,即可完成会员整合。
3. 功能 AJAX 化ECSHOP 使用目前流行的 AJAX 技术,批量数据编辑变得更迅速,方便。
4. 促销功能ECSHOP提供了积分、红包、赠品,夺宝奇兵等多种促销方法。
5. 高效率的代码和执行性能通过优化代码与数据库结构,配合ecshop独家设计的缓存机制,在不考虑网速的情况下,网店动态页面与纯静态页面访问速度相当。
6. 常规功能的更完善实现针对常规功能尤其是后台管理和购物流程,ECShop进行了更简洁的设计,实现更好的用户体验。
7. 搜索引擎优化在 SEO (搜索引擎优化)上,ECShop独家支持两种 URL 重写方式,并且是同类软件中第一家支持 google/ yahoo / microsoft 三家共同发布的 sitemaps 0.9 网站索引规范,能够为站点被搜索引擎收录做到最大限度的支持和帮助。
5_多货币解方案的开发

ecshop多货币解决方案的开发在shop_config表中加入记录INSERT INTO `ecs_shop_config` (`id` ,`parent_id` ,`code` ,`type` ,`store_range` ,`store_dir` ,`value` ,`sort_order`)VALUES (NULL , '1', 'rate', 'text', '', '', '1,0.71,0.69,6.85,1.45', '1'), (NULL , '1', 'ybprice_format', 'text', '', '', '&%s', '1'),(NULL , '1', 'aprice_format', 'text', '', '', 'EUR%s', '1'),(NULL , '1', 'cprice_format', 'text', '', '', '¥%s', '1'),(NULL , '1', 'aoprice_format', 'text', '', '', 'AU%s', '1');修改\languages\zh_cn\admin\shop_config.php文件$_LANG['cfg_name']['rate'] = '货币汇率';$_LANG['cfg_name']['ybprice_format'] = '英镑格式';$_LANG['cfg_name']['aprice_format'] = '欧元格式';$_LANG['cfg_name']['cprice_format'] = '人民币格式';$_LANG['cfg_name']['aoprice_format'] = '澳元格式';$_LANG['cfg_desc']['rate'] = '输入规则按照和美元的汇率进行输入US,EUR,BritishPound,China,Austrilian';$_LANG['cfg_desc']['ybprice_format'] = '显示英镑格式,%s将被替换为相应的价格'; $_LANG['cfg_desc']['aprice_format'] = '显示欧元格式,%s将被替换为相应的价格'; $_LANG['cfg_desc']['cprice_format'] = '显示人民币格式,%s将被替换为相应的价格'; $_LANG['cfg_desc']['aoprice_format'] = '显示澳元格式,%s将被替换为相应的价格';在init.php文件最后插入以下代码$url_this="http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']."?id=".@$_GET['id'];//echo $url_this;$smarty->assign("url_head",$url_this);$currency=@$_GET['currency'];if ($currency!=""){$_SESSION['currency']=$currency;}if ($_SESSION['currency']==''){$_SESSION['currency']='USD';}echo $_SESSION['currency'];修改\inlucdes\lib_common.php里的price_format函数/*** 格式化商品价格** @access public* @param float $price 商品价格* @return string*/function price_format($price, $change_price = true){$currency=$_SESSION['currency'];$rate=explode(',',$GLOBALS['_CFG']['rate']);if($currency=='USD'){$price=$price*$rate[0];}if($currency=='CNY'){$price=$price*$rate[3];}if($currency=='EUR'){$price=$price*$rate[1];}if($currency=='GBP'){$price=$price*$rate[2];}if ($change_price && defined('ECS_ADMIN') === false){switch ($GLOBALS['_CFG']['price_format']){case 0:$price = number_format($price, 2, '.', '');break;case 1: // 保留不为 0 的尾数$price = preg_replace('/(.*)(\\.)([0-9]*?)0+$/', '\1\2\3', number_format($price, 2, '.', ''));if (substr($price, -1) == '.'){$price = substr($price, 0, -1);}break;case 2: // 不四舍五入,保留1位$price = substr(number_format($price, 2, '.', ''), 0, -1); break;case 3: // 直接取整$price = intval($price);break;case 4: // 四舍五入,保留 1 位$price = number_format($price, 1, '.', '');break;case 5: // 先四舍五入,不保留小数$price = round($price);break;}}else{$price = number_format($price, 2, '.', '');}switch($currency){case 'USD':return sprintf($GLOBALS['_CFG']['currency_format'], $price); break;case 'EUR':return sprintf($GLOBALS['_CFG']['aprice_format'], $price); break;case 'GBP':return sprintf($GLOBALS['_CFG']['ybprice_format'], $price); break;case 'AUD':return sprintf($GLOBALS['_CFG']['aoprice_format'], $price); break;case 'CNY':return sprintf($GLOBALS['_CFG']['cprice_format'], $price); break;}//return sprintf($GLOBALS['_CFG']['currency_format'], $price);}修改表order_infoALTER TABLE `ecs_order_info` ADD `currency` VARCHAR( 10 ) NOT NULL , ADD `new_money` DECIMAL( 10, 2 ) NOT NULL修改flow.php文件中{//分成功能关闭$parent_id = 0;}$order['parent_id'] = $parent_id;大约1608行左右插入以下代码$order['currency']=$_SESSION['currency'];$order['new_money']=price_format_hs($order['order_amount']);同时修改\inlucdes\lib_common.php在里面新增加price_format_hs函数/*** 用于支付换算** @access public* @param float $price 商品价格* @return string*/function price_format_hs($price, $change_price = true){$currency=$_SESSION['currency'];$rate=explode(',',$GLOBALS['_CFG']['rate']);if($currency=='USD'){$price=$price*$rate[0];}if($currency=='CNY'){$price=$price*$rate[3];}if($currency=='EUR'){$price=$price*$rate[1];}if($currency=='GBP'){$price=$price*$rate[2];}if($currency=='AUD'){$price=$price*$rate[4];}if ($change_price && defined('ECS_ADMIN') === false){switch ($GLOBALS['_CFG']['price_format']){case 0:$price = number_format($price, 2, '.', '');break;case 1: // 保留不为 0 的尾数$price = preg_replace('/(.*)(\\.)([0-9]*?)0+$/', '\1\2\3', number_format($price, 2, '.', ''));if (substr($price, -1) == '.'){$price = substr($price, 0, -1);}break;case 2: // 不四舍五入,保留1位$price = substr(number_format($price, 2, '.', ''), 0, -1); break;case 3: // 直接取整$price = intval($price);break;case 4: // 四舍五入,保留 1 位$price = number_format($price, 1, '.', '');break;case 5: // 先四舍五入,不保留小数$price = round($price);break;}}else{$price = number_format($price, 2, '.', '');}return $price;}在\includes\modules\payment\paypal.php大约92行一个get_code函数,function get_code($order, $payment){$paypal_currency=$_SESSION["currency"]; //新增加的$data_order_id = $order['log_id'];$data_amount = $order['order_amount'];$data_return_url = return_url(basename(__FILE__, '.php'));$data_pay_account = $payment['paypal_account'];$currency_code = $paypal_currency; //把下一行复制出来,并下行注掉,修改为这一行//$currency_code = $payment['paypal_currency'];在/admin/order.php文件里的select语句中加入o.currency,o.new_money,在/admin/templetes/order_list.htm加入相关的内容。
使用ECSHOP软件总结

使用ECSHOP软件总结第一篇:使用ECSHOP软件总结工作总结通过在这3天的试用期学习中,我逐步了解了对ECShop软件的使用。
这是一款开源免费的网上商店系统。
ECShop网店系统的优点很多,例如可免费下载、免费使用、免费升级,无使用时间与功能限制。
无论在稳定性、代码优化、运行效率、负载能力、安全等级、功能可操控性和权限严密性等方面都居国内外同类产品领先地位。
ECShop网店系统支持多种类型商品销售,实物商品销售及虚拟商品(如电话卡,游戏点卡等)可在同一个网店中进行管理。
ECShop网店系统提供了灵活强大的模板机制,内置多套免费精美模板,同时可在后台任意更换,让您即刻快速建立不同的网店外观。
同时您可以对网店模板自定义设计,建立个性化网店形象。
ECShop网店系统强大的站内商品搜索引擎,结合Ecshop独有的商品属性可搜索功能,买家在您的网店可以轻松找到所需商品。
ECShop 网店系统整合了现今市面上几乎所有主流第三方支付网关。
等等。
软件的功能强大就意味着熟悉他需要更多的时间和精力,以前在学校里面学习过Dreamweaver的网页制作,但是ECSHOP 和D还是有本质的区别,很多功能找不到,从官网下载的模板也不知道怎么用上去,客户订阅的邮件也发不出去,愿意也找不到,这让我非常的心烦意乱,还好可以和同事交流,上网找资料,才能找到问题解决的办法。
3天的试用期很快就过去了,虽然上班的时间很长,但是学到的东西也很多,我最大的收获就是一万个为什么,要不停的问问题,解决问题。
我不会轻易放弃,虚心的向同事学习,积极的做好分配下来的认为,在工作中学习,在学习中工作,做个称职的创富员工。
第二篇:ECSHOP项目总结ECSHOP项目总结(面试技巧部分)NO1:ECSHOP是一个什么样的系统?(该系统是做什么的,系统架构是怎么样的)ECSHOP是一个基于B/S架构的B2C电子商务系统。
ECSHOP的环境支持Linux和Windows跨平台操作,我们是部署在Windows上的:WindowsServer2003+PHP+Apache+MySQL。
ECSHOP 支付接口

支付方式名称支付方式描述插件版本插件作者费用排序操作快钱人民币网关快钱是国内领先的独立第三方支付企业,旨在为各类企业及个人提供安全、便捷和保密的支付清算与账务服务,其推出的支付产品包括但不限于人民币支付,外卡支付,神州行卡支付,联通充值卡支付,VPOS支付等众多支付产品, 支持互联网、手机、电话和POS等多种终端, 以满足各类企业和个人的不同支付需求。
截至2009年6月30日,快钱已拥有4100万注册用户和逾31万商业合作伙伴,并荣获中国信息安全产品测评认证中心颁发的“支付清算系统安全技术保障级一级”认证证书和国际PCI安全认证。
点此链接在线签约快钱1.2 ECSHOPTEAM0 安装深发银行-快钱通过快钱帐户,用户可以直接用深发网银支付。
1.0.0 ECSHOPTEAM0 安装工商银行-快钱通过快钱帐户,用户可以直接用工行网银支付。
1.0.0 ECSHOPTEAM0 安装民生银行-快钱通过快钱帐户,用户可以直接用民生网银支付。
1.0.0 ECSHOPTEAM0 安装招商银行-快钱通过快钱帐户,用户可以直接用招商网银支付。
1.0.0 ECSHOPTEAM0 安装建设银行-快钱通过快钱帐户,用户可以直接用建设网银支付。
1.0.0 ECSHOPTEAM0 安装中国银行-快钱通过快钱帐户,用户可以直接用中国网银支付。
1.0.0 ECSHOPTEAM0 安装北京银行-快钱通过快钱帐户,用户可以直接用北京网银支付。
1.0.0 ECSHOPTEAM0 安装交通银行-快钱通过快钱帐户,用户可以直接用交通网银支付。
1.0.0 ECSHOPTEAM0 安装农业银行-快钱通过快钱帐户,用户可以直接用农业网银支付。
1.0.0 ECSHOPTEAM0 安装财付通财付通()- 腾讯旗下在线支付平台,通过国家权威安全认证,支持各大银行网上支付,免支付手续2.0.0 ECSHOPTEAM0 安装即时到账费。
立即免费申请:单笔费率1%立即购买包量套餐:折算后单笔费率0.6-1% 安装中介担保支付宝支付宝网站() 是国内先进的网上支付平台。
ecshop商城系统的100个小问题

查看完整版本: [-- ecshop商城系统的100个小问题--]慈溪论坛-> 『凡人牧场』-> ecshop商城系统的100个小问题[打印本页]登录-> 注册-> 回复主题-> 发表主题hzbjp2009-07-09 20:20 ecshop商城系统的100个小问题自己从事B4C电子商务开发一段时间了,特别对ecshop深有体会,刚接触的时候不容易理解,下面将根据自己的经验,来总结100条关于操作ecshop电子商务系统的小问题。
1:如何修改网站"欢迎光临本店"回答:languages\zh_cn\common.php文件中,$_LANG['welcome'] = '欢迎光临本店';将他修改成你需要的字样。
2:如何修改首页"热门搜索关键字"回答:后台->系统设置->网店设置->显示设置->首页搜索关键字,修改他的内容,然后保存3:如何修改首页标题"Powered by ECShop"回答:includes/lib_main.php,找到$page_title =$GLOBALS['_CFG']['shop_title'] . ' - ' . 'Powered by ECShop';修改成$page_title = $GLOBALS['_CFG']['shop_title']就可以了。
4:如何去除cshop底部查询信息的显示回答:library/page_footer.lbi中,删除 {insert name='query_info'}5:如何发布首页公告回答:后台->系统设置->商店设置->网店信息->商店公告.填写你需要的公告就可以了.6:如何发布站内新闻7:如何修改网站logo回答:用你的logo图片替换/themes/default/images/logo.gif中图片就可以了8:如何修改产品图片的大小回答:在ecshop/themes/default/style.css中,找到.goodsItem .goodsimg{width:100px; height:100px; border:4px solid #eef8ff; margin-bottom:4px;}就可以控制产品图片的大小.9:如何管理首页flash播放器回答:后台-> flash播放器管理-> 增加自定义,你就可以上传和控制图片的位置10:如何修改首页"精品推荐"栏目的more小图片回答:模板文件中library/recommend_best.lbi中,<div class="more"><ahref="../search.php?intro=best"><img src="images/more.gif" /></a></div> 中more.gif图片换成你要的图片,或者将图片换成你需要的文字.hzbjp2009-07-09 20:21 11:如何修改首页"新品上市"栏目的more小图片回答:模板文件library/recommend_new.lbi中,<div class="more"><ahref="../search.php?intro=new"><img src="images/more.gif" /></a></div> more.gif修改成你需要的图片或者是换成你需要的文字.12:如何手动修改支付方式排列顺序回答:数据库表中,找到payment表,pay_order字段就是用来控制顺序的,你如果想让A支付方式排在第一,那么你需要修改该字段的值稍微大一些。
ECSHOP 3.0 系统功能列表

管理员可以看到会员在前台进行的一些充值提现操作。可以对用户的申请进行操作,也可以在后 台添加申请。 管理员可以查看会员的信息,可根据日期查看所有用户的总的资金体现。 管理员可以编辑网店的管理员,并可对这些管理员的管理权限进行设置。 该模块记录了管理员在后台的操作记录。可以在这里查看及清楚管理员日志,也可以勾选需要清 除的管理员日志。 角色管理方便了后台管理员权限的设置,如设置一个角色为供货商,分配权限给查看发货单和查 看退货单。 实际生活中开店都需要有办事处,系统可以在后台为自己的网店添加一个个的办事处,并可设置 负责该办事处的管理员。 管理员可以添加供货商,供货商的具体体现在添加新商品的时候会有选择供货商。 管理员在这里可以完成商店的几乎所有的设置,包括的设置有网店信息基本设置、显示设置、购 物流程、商品显示设置、短信设置、WAP 设置等,这个部分可以说是网店系统的核心配置。 管理员可以在后台设置会员注册项的显示隐藏,也可以增加会员注册项。 用户在前台购物过程中点击结算中心后,会进入购物流程中,购物流程中会有支付方式,比如支 付宝,银行转账汇款等。 管理员可以设置配送方式,后台内置申通快递、顺丰速运、中通快递等多种配送方式。 支持二种邮件发送方式:1、采用服务器内置的 Mail 服务(推荐此方式),2、采用其他的 SMTP 服务(支持 SMTP 验证)。 管理员可以自定义地区列表,根据网店的性质自定义区域名称等。 计划任务,就是在适当的时候,让计算机执行适当地程序,以满足用户的需求。计划任务分系统 计划任务和网站计划任务。系统计划任务包括 Windows 操作系统计划任务和 Linux 操作系统计 划任务。 友情链接是在网站首页帮助中心的下面显示,增加友情链接有助于提高网站的外链,对网店的优 化起到了辅助作用。 管理员可以设置在某个模块对用户行为进行需要输入验证码,验证码可以有效防止批量注册、灌 水等恶意行为。 目录文件权限检测。 文件校验是针对官方发布的文件为基础对您现在的文件进行核对,以便发现有没有文件被做过修 改,用来恢复误修改的文件。 管理员可以采用后台系统默认设置,也可使用自定义,方法和广告的的方法一样,里面可以设置 图片、flash、代码、文字类型的广告。 管理员可以自定义导航栏并可以对其设置显示、隐藏、是否新窗口打开、显示位置等,维护方 便,操作简单。 证书是您享受软件服务的唯一标识,它记录了您的网店的授权信息、购买官方服务记录、短信帐 户等重要信息。 网站地图可以帮助搜索引擎建立索引范围和索引的行为习惯,有利于网店优化。Google SiteMap Protocol是Google自己推出的一种站点地图协议,此协议文件基于早期的robots.txt文件协 议,并有所升级。在Google官方指南中指出加入了Google SiteMap文件的网站将更有利于Google 网页爬行机器人的爬行索引,这样将提高索引网站内容的效率和准确度。 第三方登录插件管理 后台支持多套模板存放,管理员可任意切换网店模板,一键轻松改变网店风格。 管理员可以设置页面各个模块的显示位置,可以在后台根据自己的要求调整模板模块的显示位置 。 管理员可以编辑每一个模块的样式,通过下拉菜单轻松的选择您需要修改的模块,修改完后确定 提交即可生效。 修改系统中的某些碎片文件,如欢迎语、提示信息等。 在这里管理员可以看到备份模版设置的选项,此功能主要用来备份和还原自定义模板
Ecshop使用说明流程图

Ecshop 使用说明流程图及分析一、功能模块概述电子商务商品管理订单管理会员管理管理员管理文章管理系统设置商品列表添加商品商品分类商品品牌商品回收站订单列表订单查询订单状态变更删除订单会员列表添加新会员会员等级会员评论资金管理管理员列表管理员权限文章分类文章列表商店设置配送方式地区列表友情链接验证码管理自定义导航栏商品类型二、商品管理2.1商品列表通过查询数据库中的商品信息,将相关信息显示在页面上,并提供相应操作连接。
添加编辑复制 放入回收站搜索查看2.1.1商品列表所含功能说明商品列表商品列表添加商品商品编辑商品复制商品回收站商品查询2.1.2商品列表流程商品列表查询未放入回收站的商品信息输出数组至页面根据页面布局输出商品列表组合SQL语句,查询未放入回收站的商品获取返回的数组,传递到模版按规则显示数据简述:本功能主要实现显示出商品信息的功能,通过点击商品列表的链接,使用PHP查询没有放入回收站的商品信息,将返回值存储到数组中,通过模版引擎将数组传送到视图,利用模版引擎的格式输出查询到的数据。
2.1.3添加商品流程添加商品填写商品信息提交至处理页面保存到数据库并跳转至列表页添加商品填写表单信息提交到处理页面接收数据并存储到数组中组合插入数据的SQL语句将数据存储到相应的数据表中跳转到商品列表页面简述:本功能主要描述添加一件商品的过程。
点击添加商品按钮,调出需要填写的表单,表单填写完成后,通过提交,将数据提交到处理页面,由处理页面负责设置数组接收提交的数据,组合成插入的SQL语句,将数据写入到数据库表中,确认添加完成后跳转到商品列表页面,完成数据插入。
2.1.4商品编辑编辑商品修改商品信息提交至处理页面保存到数据库并跳转至列表页编辑商品修改表单信息提交到处理页面接收数据并存储到数组中组合更新数据的SQL语句将数据存储到相应的数据表中跳转到商品列表页面获取指定的商品信息获取商品ID根据商品ID查询出需要修改的商品信息按照规定的表单位置显示商品信息简述:本功能主要描述修改一件商品信息的过程。
ECSHOP数据库结构详细说明

ECSHOP数据库结构详细说明ECSHOP数据库结构详细说明(1)表的结构`ecs_account_log`==用户账目日志表CREATE TABLE IF NOT EXISTS `ecs_account_log` (`log_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增ID号',`user_id` mediumint(8) unsigned NOT NULL COMMENT '用户登录后保存在session中的id号,跟users表中的user_id对应', `user_money` decimal(10,2) NOT NULL COMMENT '用户该笔记录的余额',`frozen_money` decimal(10,2) NOT NULL COMMENT '被冻结的资金',`rank_points` mediumint(9) NOT NULL COMMENT '等级积分,跟消费积分是分开的',`pay_points` mediumint(9) NOT NULL COMMENT '消费积分,跟等级积分是分开的',`change_time` int(10) unsigned NOT NULL COMMENT '该笔操作发生的时间',`change_desc` varchar(255) NOT NULL COMMENT '该笔操作的备注,一般是,充值或者提现。
也可是是管理员后台写的任何在备注',`change_type` tinyint(3) unsigned NOT NULL COMMENT '操作类型,0为充值,1为提现,2为管理员调节,99为其他类型', PRIMARY KEY (`log_id`),KEY `user_id` (`user_id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='用户帐号情况记录表,包括资金和积分等' AUTO_INCREMENT=42 ;-- --------------------------------------------------------------------------------------------------------------------------------------------------------------------表的结构`ecs_ad` 广告表(位置,类型,名称,链接,图片,开始,结束,广告主相关信息,点击,是否显示)CREATE TABLE IF NOT EXISTS `ecs_ad` (`ad_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增ID号',`position_id` smallint(5) unsigned NOT NULL DEFAULT '0' COMMENT '0,站外广告;从1开始代表的是该广告所处的广告位,同表ad_position中的字段position_id的值',`media_type` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '广告类型,0,图片;1,flash;2,代码;3,文字', `ad_name` varchar(60) NOT NULL COMMENT '该条广告记录的广告名称',`ad_link` varchar(255) NOT NULL COMMENT '广告链接地址', `ad_code` text NOT NULL COMMENT '广告链接的表现,文字广告就是文字或图片和flash就是它们的地址,代码广告就是代码内容',`start_time` int(11) NOT NULL DEFAULT '0' COMMENT '广告开始时间',`end_time` int(11) NOT NULL DEFAULT '0' COMMENT '广告结束时间',`link_man` varchar(60) NOT NULL COMMENT '广告联系人',`link_email` varchar(60) NOT NULL COMMENT '广告联系人的邮箱',`link_phone` varchar(60) NOT NULL COMMENT '广告联系人的电话',`click_count` mediumint(8) unsigned NOT NULL DEFAULT '0' COMMENT '该广告点击数',`enabled` tinyint(3) unsigned NOT NULL DEFAULT '1'COMMENT '该广告是否关闭,1,开启;0,关闭;关闭后广告将不再有效,直至重新开启',PRIMARY KEY (`ad_id`),KEY `position_id` (`position_id`),KEY `enabled` (`enabled`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='广告列表配置表,包括站内站外的图片,文字,flash,代码广告' AUTO_INCREMENT=6 ;-- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------表的结构`ecs_admin_action`==管理权限分配(父类ID,权限代码)CREATE TABLE IF NOT EXISTS `ecs_admin_action` (`action_id` tinyint(3) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增ID号',`parent_id` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '该id项的父id,对应本表的action_id字段', `action_code` varchar(20) NOT NULL COMMENT '代表权限的英文字符串,对应汉文在语言文件中,如果该字段有某个字符串,就表示有该权限',PRIMARY KEY (`action_id`),KEY `parent_id` (`parent_id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='管理员权限列表树' AUTO_INCREMENT=104 ;-- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------表的结构`ecs_admin_log`==管理日志(登陆时间,登陆管理员ID,操作描述,IP)CREATE TABLE IF NOT EXISTS `ecs_admin_log` (`log_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增ID号',`log_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '写日志时间',`user_id` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '该日志所记录的操作者id,同ecs_admin_user的user_id',`log_info` varchar(255) NOT NULL COMMENT '管理操作内容', `ip_address` varchar(15) NOT NULL COMMENT '管理者登录ip', PRIMARY KEY (`log_id`),KEY `log_time` (`log_time`),KEY `user_id` (`user_id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='管理员操作日志表' AUTO_INCREMENT=158 ;-- -----------------------------------------------------------------------------------------------------------------------------------------------------------------------表的结构`ecs_admin_message`==管理员留言(发送者ID,接收者ID,发送日期,阅读日期,是否已读,是否删除,标题,内CREATE TABLE IF NOT EXISTS `ecs_admin_message` (`message_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增ID号',`sender_id` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '发送该留言的管理员id,同ecs_admin_user的user_id', `receiver_id` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '接收消息的管理员id,同ecs_admin_user的user_id,如果是给多个管理员发送,则同一个消息给每个管理员id发送一条',`sent_time` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '留言发送时间',`read_time` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '留言阅读时间',`readed` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '留言是否阅读,1,已阅读;0,未阅读',`deleted` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '留言是否已经是否已经被删除,1,已删除;0,未删除', `title` varchar(150) NOT NULL COMMENT '留言的主题',`message` text NOT NULL COMMENT '留言的内容',PRIMARY KEY (`message_id`),KEY `sender_id` (`sender_id`,`receiver_id`),KEY `receiver_id` (`receiver_id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='管理员留言记录表' AUTO_INCREMENT=7 ;-- -------------------------------------------------------- 表的结构`ecs_admin_user`==管理员管理(用户名,email ,密码,加入时间,最后登陆时间,最后登陆IP,权限等)CREATE TABLE IF NOT EXISTS `ecs_admin_user` (`user_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增ID号,管理员代号',`user_name` varchar(60) NOT NULL COMMENT '管理员登录名',`email` varchar(60) NOT NULL COMMENT '管理员邮箱',`password` varchar(32) NOT NULL COMMENT '管理员登录秘密加密串',`add_time` int(11) NOT NULL DEFAULT '0' COMMENT '管理员添加时间',`last_login` int(11) NOT NULL DEFAULT '0' COMMENT '管理员最后一次登录时间',`last_ip` varchar(15) NOT NULL COMMENT '管理员最后一次登录ip',`action_list` text NOT NULL COMMENT '管理员管理权限列表', `nav_list` text NOT NULL COMMENT '管理员导航栏配置项',`lang_type` varchar(50) NOT NULL,`agency_id` smallint(5) unsigned NOT NULL COMMENT '该管理员负责的办事处的id,同ecs_agency的agency_id字段。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ECshop 所有系统通用 多货币解决方案1、首先在我们的后台网店设置里要添加汇率转换的功能,如何添加网店功能自己摸索一下,你要把添加的功能 插入表里。
如图:我们的汇率都是和美元进行转换的。
2、开始前台实现:首先我们在首页加上多语言的链接如图:我们看下他的url?View Code HTML10 11 12 13 14 15 16 <ul><li><a href="{$url_head}¤cy=USD"><imgsrc="images/USD.gif"/> US Dollar</a></li> <li><a href="{$url_head}¤cy=EUR"><img src="images/EUR.gif"/> Euro</a></li> <li><a href="{$url_head}¤cy=GBP"><img src="images/GBP.gif"/> British Pound</a></li> <li><a href="{$url_head}¤cy=CNY"><img src="images/CNY.gif"/> China RMB</a></li> <li><a href="{$url_head}¤cy=AUD"><imgsrc="images/AUD.gif"/> Austrilian Dollar</a></li></ul>这个{$url_head} 我是重新建了一个文件 conn.php 放到首页 每个文件调用 //路径处理$url_this = "[url=http://]http://".$_SERVER[/url]['HTTP_HOST'].$_SERVER['PHP_SELF']."?id=".$_GET['id']; $smarty->assign("url_head",$url_this);3、我们发现都是在每个页面后面传了一次get 值 那么在那接这些get 值呢 我们肯定要找每个页面的共同文件 不难想到init.php我在init.php 的最后加入?View Code HTML1011121314151617[code]$currency = $_GET['currency']; if($currency!=""){ $_SESSION['currency'] = $currency; } if($_SESSION['currency'] == '') { $_SESSION['currency'] = 'USD'; } 这个代码大家明白吧 我接到get 值后 给了session 如果session 不存在话 我们默认就是usd 这样每个页面都可以获得当前的session 值 .4、我们通过以上操作至少在每个页面可以搞定客户选的货币是什么,下来我们就考虑如何解决显示问题,如果每个页面都修改显示goods 价格那多麻烦 啊,我们熟悉ecshop 的朋友不难想到我们所有显示的价格都是在一个函数里进行里处理 ,这应该感谢官方的技术人员 代码写的好 当然是 lib_common.php 里得price_format ()这个函数 我们想一下 如果在这搞定是不是所有显示都搞定了 我们就从这入手 以下是我修改后的函数?View Code HTML1011121314151617181920212223242526272829303132function price_format($price, $change_price = true) { $currency = $_SESSION['currency']; $rate = explode(',',$GLOBALS['_CFG']['rate']); if($currency == 'USD') { $price = $price*$rate[0]; } if($currency == 'CNY') { $price = $price*$rate[3]; } if($currency == 'EUR') { $price = $price*$rate[1]; } if($currency == 'GBP') { $price = $price*$rate[2]; } if($currency == 'AUD') { $price = $price*$rate[4];333435363738394041 424344454647484950 51525354 55565758 59606162 6364656667686970717273747576} if ($change_price && defined('ECS_ADMIN') === false) { switch ($GLOBALS['_CFG']['price_format']) { case 0: $price = number_format($price, 2, '.', ''); break; case 1: // 保留不为 0 的尾数 $price = preg_replace('/(.*)(.)([0-9]*?)0+$/', '123', number_format($price, 2, '.', '')); if (substr($price, -1) == '.') { $price = substr($price, 0, -1); } break; case 2: // 不四舍五入,保留1位 $price = substr(number_format($price, 2, '.', ''), 0, -1); break; case 3: // 直接取整 $price = intval($price); break; case 4: // 四舍五入,保留 1 位 $price = number_format($price, 1, '.', ''); break; case 5: // 先四舍五入,不保留小数 $price = round($price); break; } } else { $price = number_format($price, 2, '.', ''); } switch ($currency) { case 'USD': return sprintf($GLOBALS['_CFG']['currency_format'], $price);7778798081828384break; case 'CNY': return sprintf($GLOBALS['_CFG']['cprice_format'], $price); break; case 'EUR': return sprintf($GLOBALS['_CFG']['aprice_format'], $price); break;case 'GBP':return sprintf($GLOBALS['_CFG']['ybprice_format'],$price);break;case 'AUD':return sprintf($GLOBALS['_CFG']['aoprice_format'],$price);break;}}$rate = explode(‘,’,$GLOBALS['_CFG']['rate']); 这句是从数据库获得我们当时的参数 然后我们计算 同时返回值的时候我们用了系统设置的符号 解决问题 前台就这样搞定。
5、有关交易 后台的操作我做简单的介绍 我们只是解决了显示问题 其实我们实质的数据还是美元 在我们提交订单的时候 我们在order_goods 表加俩个字段一个是客户选的货币方式 这样生成订单后 当我进入我的会员中心我依然可以看到我购买人民币是多少钱 我们读取数据库的方式进行换算,另外一个字段是我们换算后的金额。
当然我们之前美元的总金额都是在的 。
在支付的时候 我们给贝宝付参数 就是货币类型 。