ECshop 所有系统通用 多货币解决方案
- 格式:doc
- 大小:59.00 KB
- 文档页数:4
指导老师:黄华毕业学校:清远职业技术学院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 网站索引规范,能够为站点被搜索引擎收录做到最大限度的支持和帮助。
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软件总结工作总结通过在这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。
支付方式名称支付方式描述插件版本插件作者费用排序操作快钱人民币网关快钱是国内领先的独立第三方支付企业,旨在为各类企业及个人提供安全、便捷和保密的支付清算与账务服务,其推出的支付产品包括但不限于人民币支付,外卡支付,神州行卡支付,联通充值卡支付,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个小问题[打印本页]登录-> 注册-> 回复主题-> 发表主题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 使用说明流程图及分析一、功能模块概述电子商务商品管理订单管理会员管理管理员管理文章管理系统设置商品列表添加商品商品分类商品品牌商品回收站订单列表订单查询订单状态变更删除订单会员列表添加新会员会员等级会员评论资金管理管理员列表管理员权限文章分类文章列表商店设置配送方式地区列表友情链接验证码管理自定义导航栏商品类型二、商品管理2.1商品列表通过查询数据库中的商品信息,将相关信息显示在页面上,并提供相应操作连接。
添加编辑复制 放入回收站搜索查看2.1.1商品列表所含功能说明商品列表商品列表添加商品商品编辑商品复制商品回收站商品查询2.1.2商品列表流程商品列表查询未放入回收站的商品信息输出数组至页面根据页面布局输出商品列表组合SQL语句,查询未放入回收站的商品获取返回的数组,传递到模版按规则显示数据简述:本功能主要实现显示出商品信息的功能,通过点击商品列表的链接,使用PHP查询没有放入回收站的商品信息,将返回值存储到数组中,通过模版引擎将数组传送到视图,利用模版引擎的格式输出查询到的数据。
2.1.3添加商品流程添加商品填写商品信息提交至处理页面保存到数据库并跳转至列表页添加商品填写表单信息提交到处理页面接收数据并存储到数组中组合插入数据的SQL语句将数据存储到相应的数据表中跳转到商品列表页面简述:本功能主要描述添加一件商品的过程。
点击添加商品按钮,调出需要填写的表单,表单填写完成后,通过提交,将数据提交到处理页面,由处理页面负责设置数组接收提交的数据,组合成插入的SQL语句,将数据写入到数据库表中,确认添加完成后跳转到商品列表页面,完成数据插入。
2.1.4商品编辑编辑商品修改商品信息提交至处理页面保存到数据库并跳转至列表页编辑商品修改表单信息提交到处理页面接收数据并存储到数组中组合更新数据的SQL语句将数据存储到相应的数据表中跳转到商品列表页面获取指定的商品信息获取商品ID根据商品ID查询出需要修改的商品信息按照规定的表单位置显示商品信息简述:本功能主要描述修改一件商品信息的过程。
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. 系统特点 (4)1.1. 技术架构 (4)1.2. 开放的插件机制 (4)1.3. 功能Ajax化 (5)1.4. 安全高效 (5)1.5. 搜索引擎友好性 (6)2. 商品展示 (7)2.1. 商品分类与品牌 (7)2.2. 商品类型与属性 (7)2.3. 推荐商品 (9)2.4. 商品详情页 (10)2.4.1. 相关商品 (10)2.4.2. 配件 (11)2.4.3. 关联文章 (11)2.4.4. 购买过该商品的人还买过的商品 (11)2.5. RSS Feeds和T ag (11)3. 购物流程 (12)3.1. 智能化的购物流程 (12)3.2. 聪明的配送方式 (13)4. 推广促销 (13)4.1. 拍卖 (13)4.2. 夺宝奇兵 (14)4.3. 团购 (14)4.4. 灵活多样的优惠活动 (14)4.5. 推荐提成 (15)4.6. 会员信用额度 (15)4.7. 销售专题 (16)5. 会员系统 (16)5.1. 会员数据整合 (16)5.2. 积分兑换 (16)6. 网店管理 (17)6.1. 报表统计 (17)6.2. 办事处 (20)6.3. 短信 (20)6.4. 计划任务 (20)7. 结束语 (21)1.系统特点1.1.技术架构采用PHP、Ajax技术开发,系统可运行于Linux、Windows等多种操作系统平台。
系统采用MVC(Module, View Controller)三层架构设计,从根本上保证了系统的健壮性与可扩展性。
图表11.2.开放的插件机制对于电子商务网站来说支付与配送是业务流程中至关重要的一个环节,也正是网上支付与各物流公司的兴起促使了电子商务快速的发展。
抛弃了传统的固定公式,由用户来设置各种参数的方式,而是采用了一个开放式的插件机制来管理各种支付和配送方式。
对于网上商店网站的站长来说,建立一个社区是一种提高网店的用户黏度的有效手段,这样也就带来了一个问题,如何将社区的用户与网店的用户进行整合。
Ecshop可以使用更多个红包插件ECSHOP开发中心()ecshop 添加可多次使用的红包步骤1) 添加一种新的红包类型4 ,文件 admin/templates/bonus_type_info.htm找到 <input type="radio" name="send_type" value="0" {if $bonus_arr.send_type eq 0} c hecked="true" {/if} onClick="showunit(0)" />{$lang.send_by[0]}<input type="radio" name="send_type" value="1" {if $bonus_arr.send_type eq 1} c hecked="true" {/if} onClick="showunit(1)" />{$lang.send_by[1]}<input type="radio" name="send_type" value="2" {if $bonus_arr.send_type eq 2} c hecked="true" {/if} onClick="showunit(2)" />{$lang.send_by[2]}<input type="radio" name="send_type" value="3" {if $bonus_arr.send_type eq 3} c hecked="true" {/if} onClick="showunit(3)" />{$lang.send_by[3]}再其后面添加<input type="radio" name="send_type" value="4" {if $bonus_arr.send_type eq 4} check ed="true" {/if} onClick="showunit(4)" />通用红包多次使用2) 生成这类红包字符串增加文件 admin/templates/bonus_by_print_phpsir.htm修改文件 admin/bonus.php 找到elseif ($_REQUEST['send_by'] == SEND_BY_PRINT){$smarty->assign('type_list', get_bonus_type());$smarty->display('bonus_by_print.htm');}再其后添加elseif ($_REQUEST['send_by'] == 4){$smarty->assign('type_list', get_bonus_type_phpsir());$smarty->display('bonus_by_print_phpsir.htm');}3) 增加 get_bonus_type_phpsir 函数文件 admin/includes/lib_main.phpfunction get_bonus_type_phpsir(){$bonus = array();$sql = 'SELECT type_id, type_name, type_money FROM ' . $GLOBALS['ecs']->table('b onus_type') .' WHERE send_type = 4';$res = $GLOBALS['db']->query($sql);while ($row = $GLOBALS['db']->fetchRow($res)){$bonus[$row['type_id']] = $row['type_name'].' [' .sprintf($GLOBALS['_CFG']['curren cy_format'], $row['type_money']).']';}return $bonus;}4) 在 bonus.php 里面找到if ($_REQUEST['act'] == 'send_by_print'){...........................}再其后面添加,处理增加这类红包时候生成方法if ($_REQUEST['act'] == 'send_by_print_phpsir'){@set_time_limit(0);/* 红下红包的类型ID和生成的数量的处理 */$bonus_typeid = !empty($_POST['bonus_type_id']) ? $_POST['bonus_type_id'] : 0; $bonus_sum = !empty($_POST['bonus_sum']) ? $_POST['bonus_sum'] : 1; /* 生成红包序列号 */for ($i = 0, $j = 0; $i < $bonus_sum; $i++){$bonus_sn = $_POST['bonus_txt'];$db->query("INSERT INTO ".$ecs->table('user_bonus')." (bonus_type_id, bonus_s n) VALUES('$bonus_typeid', '$bonus_sn')");$j++;}/* 记录管理员操作 */admin_log($bonus_sn, 'add', 'userbonus');/* 清除缓存 */clear_cache_files();/* 提示信息 */$link[0]['text'] = $_LANG['back_bonus_list'];$link[0]['href'] = 'bonus.php?act=bonus_list&bonus_type=' . $bonus_typeid;sys_msg($_LANG['creat_bonus'] . $j . $_LANG['creat_bonus_num'], 0, $link);}5) 修改 bonus.php 让后台显示红包内容if ($_REQUEST['act'] == 'bonus_list'){...........................}和if ($_REQUEST['act'] == 'query_bonus'){...........................}里面增加if ($bonus_type['send_type'] == 4){$smarty->assign('show_bonus_sn', 1);}至此后台部分完成前台部分修改includes/lib_order.phpfunction bonus_info($bonus_id, $bonus_sn = ''){$sql = "SELECT t.*, b.* " ."FROM " . $GLOBALS['ecs']->table('bonus_type') . " AS t," .$GLOBALS['ecs']->table('user_bonus') . " AS b " ."WHERE t.type_id = b.bonus_type_id ";if ($bonus_id > 0){$sql .= " AND b.bonus_id = '$bonus_id'";$row = $GLOBALS['db']->getRow($sql);return $row;}else{$sql .= " AND b.bonus_sn = '$bonus_sn'";$row = $GLOBALS['db']->getRow($sql);}if($row['send_type'] == 4) // phpsir 如果是第4类型红包,那么就找一个未使用的红包,这种红包可被多次使用,不限制每人使用次数{$sess_userid = $_SESSION["user_id"];$sql = "SELECT t.*, b.* " ."FROM " . $GLOBALS['ecs']->table('bonus_type') . " AS t," .$GLOBALS['ecs']->table('user_bonus') . " AS b " ."WHERE t.type_id = b.bonus_type_id and ed_time = 0 ";if ($bonus_id > 0){$sql .= "AND b.bonus_id = '$bonus_id'";}else{$sql .= "AND b.bonus_sn = '$bonus_sn'";}//print $sql;$row = $GLOBALS['db']->getRow($sql);//var_dump($row);return $row;}// 如果想每人只使用N次,请用下面的部分/*if($row['send_type'] == 4) // phpsir 如果是第4类型红包,那么就找一个未使用的红包,这种红包可被多次使用,不限制每人使用次数{$sess_userid = $_SESSION["user_id"];$sql = "SELECT t.*, b.* " ."FROM " . $GLOBALS['ecs']->table('bonus_type') . " AS t," .$GLOBALS['ecs']->table('user_bonus') . " AS b " ."WHERE t.type_id = b.bonus_type_id and er_id = '$sess_userid' and b .bonus_sn = '$bonus_sn' ";$rows = $GLOBALS['db']->getAll($sql);$allow_used_bonus_num = 2; // 最大允许使用次数if(count($rows) >= $allow_used_bonus_num ){return false;}else{$sql = "SELECT t.*, b.* " ."FROM " . $GLOBALS['ecs']->table('bonus_type') . " AS t," .$GLOBALS['ecs']->table('user_bonus') . " AS b " ."WHERE t.type_id = b.bonus_type_id and ed_time = 0 and b.bonus _sn = '$bonus_sn' ";$row = $GLOBALS['db']->getRow($sql);return $row;}}*/return $row;}注意:修改PHP文件时候不要用记事本打开,否则文件编码会出问题导致网站报错,建议用专业的dreamweaver来修改【ECSHOP开发中心】。
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 表加俩个字段一个是客户选的货币方式 这样生成订单后 当我进入我的会员中心我依然可以看到我购买人民币是多少钱 我们读取数据库的方式进行换算,另外一个字段是我们换算后的金额。
当然我们之前美元的总金额都是在的 。
在支付的时候 我们给贝宝付参数 就是货币类型 。