1、指导老师:黄华 毕业学校:清远职业技术学院ECShop简介是Comsenz公司推出的一款B2C独立网店系统,现已出售给ShopEX的开发商上海商派网络科技有限公司。适合企业及个人快速构建个性化网上商店。系统是基于PHP语言及MYSQL数据库构架开发的跨平台开源程序。 ECShop悉心听取每一位商家的需求与建议,不仅设计了人性化的网店管理系统帮助商家快速上手,还根据中国人的购物习惯改进了购物流程,实现更好的用户购物体验。 经过近两年的发展,ECShop网店系统无论在产品功能、稳定性、执行效率、负载能力、安全性和SEO支持(搜索引擎优化)等方面都居国内同类产品领先地位,成为国内最流行的购物系统之一
2、。ECShop功能介绍1. 灵活的模版机制 ECShop开发了独有的高效模板引擎(2.15以前版本使用smarty模板引擎),并结合了Dreamweaver的模板和库功能,使得编辑制作模板变得更简单。 2. 开放的插件机制 支付、配送,会员整合都是以插件形式实现。商家可以随时增加或变更的支付方式和配送体系。ecshop支持大部分php开发的论坛系统,包括discuz,phpwind等,只需在后台做简单参数配置,即可完成会员整合。 3. 功能 AJAX 化 ECSHOP 使用目前流行的 AJAX 技术,批量数据编辑变得更迅速,方便。 4. 促销功能 ECSHOP提供了积分、红包、赠品,夺宝奇兵等
3、多种促销方法。 5. 高效率的代码和执行性能 通过优化代码与数据库结构,配合ecshop独家设计的缓存机制,在不考虑网速的情况下,网店动态页面与纯静态页面访问速度相当。 6. 常规功能的更完善实现 针对常规功能尤其是后台管理和购物流程,ECShop进行了更简洁的设计,实现更好的用户体验。 7. 搜索引擎优化 在 SEO (搜索引擎优化)上,ECShop独家支持两种 URL 重写方式,并且是同类软件中第一家支持 google/ yahoo / microsoft 三家共同发布的 sitemaps 0.9 网站索引规范,能够为站点被搜索引擎收录做到最大限度的支持和帮助。 8. 内置手机短信网关 E
4、CShop内置手机短信网关,支持会员信息群发,订单提醒等功能。 9. 多语言支持 支持简体,繁体,英文。 10. 源代码开放 用户可根据自己的需求对ECSHOP进行定制,扩展。 目录:1、 ECSHPF版权与标志前后台 .8 1.1前台标志的修改.81.2界面友情连接的删除.81.3去掉底部的Powered by ecshop 270标志.82、 ECSHOP后台为订单增加备注功能 .92.1添加表:ecs_order_note. .92.2.添加语言包 -languageszh_cnadminorder.php.92.3修改admin/order.php文件,添加代码.92.4添加所需代码.
5、102.5修改admintemplatesorder_info.htm文件.103、 将订单状态设为等待客服确认.103.1将订单状态修改为等待客服确认.103.2使付款后订单状态为等待客服确认.113.3修改后台订单状态为等待客服确认.113.4修改后台订单表语言包.113.5修改用户订单表语言包.124、 自定义商品扩展名功能 . 124.1执行SQL语句.124.2添加商品扩展名.124.3商品信息页添加商品扩展名.124.4修改语言包.134.5修改商品添加文件.134.6修改商品显示文件.134.7在前台商品页显示商品名称扩展.134.8修改商品栏目页显示文件.134.9在分类列表页
6、显示商品名称扩展.145、 多货币解决方案 .145.1执行SQL语句.145.2修改多货币语言包.14 5.3修改头部模版文件.15 5.4加载页面session值.155.5格式化商品价格.155.6在订单列表中添加货币信息,执行SQL语句.16.5.7添加购物时的货币信息.175.8后台订单显示货币类型和相应额度.175.9输出货币类型和额度.176、 使用Ajax更新商品页商品购买数量.186.1添加js代码.186.2更改以下内容.187、 使用Ajax更新购物车商品购买数量.187.1修改模版文件夹下的flow.dwt文件.187.2代码的修改.197.3改根目录下的flow.ph
7、p文件.208、 商品展示放大镜效果 .218.1载入样式和脚本切换到当前使用的模板目录中.218.2执行SQL语句.218.3添加底部相册切换功能.218.4缩略图的配置.228.5如何获得指定商品的相册缩略图.239、 商品展示放大镜效果 .249.1函数的编写与替换.249.2添加一个js函数,用以颜色的选择.249.3获取表单传过来的颜色代码值.2510、 产品组合功能开发 .2610.1修改根目录.2610.2修改模版目录.27 11、 限时购功能开发 .2811.1修改程序.2811.2代码替换.2812、 秒杀功能开发.2912.1执行sql语句.2912.2代码的添加修改与替换
8、.291、ECSHPF版权与标志前后台一、前台标志的修改因为是借助了dede的模板进行二次开发,当然首先是要对模板进行编辑,模板一开始是没有那么全面的,排版也计较随意大体,内容也没有,显得比较空洞,当然了,这些都是我们去排版和编辑内容的,首先呢,最重要的是dede模板标志和lougou的删除和修改了,标志有很多,前台后台都有,我们要注意,细心观察,把他改成自己要设计的内容和风格,虽然说是拿来主义,但是拿来了就要会利用,所以一下的修改的方法:前台部分:去掉头部TITLE部分的ECSHOP演示站 Powered by ecshop 前者在后台商店设置 - 商店标题修改后者打开includes/li
9、b_main.php$page_title = $GLOBALS_CFGshop_title . - . Powered by ECShop;修改这里的Powered by ECShop二、界面友情连接的删除去掉友情链接部分在后台的友情链接管理里修改三、去掉底部的Powered by ecshop 270 ,和部分标志打开 js/common.js 删除第244行onload = function()var link_arr = document.getElementsByTagName(String.fromCharCode(65);var link_str;var link_text;va
10、r regg, cc;var rmd, rmd_s, rmd_e, link_eorr = 0;var e = new Array(97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122);再打开模板文件夹的 library/page_footer.lbi删除 foreach from=$lang.p_y item=pv$pv/foreach$licensed很多页面源代码的 头部信息中会自动产生一行
11、代码应该也算是ECSHOP预留的版权信息吧,下面讲一下怎么删除这行代码,让系统不再自动产生。打开 includes/cls_template.php 文件,大概在1087行左右,找到$source = preg_replace(/i, rn, $source);将之删除或者注释掉即可。后台部分:1.去除两张图片 admin/images/ecshop_logo.gifadmin/images/login.png删除右上角的“关于ECSHOP” 打开admin/templates/top.htm删除: $lang.about3.中部 ECSHOP 管理中心, 和底部的版权所有 打开languag
12、e/zh_cn/admin/common.php$_LANGcp_home = ECSHOP 管理中心;$_LANGcopyright = 版权所有 © 2005-2009 上海商派网络科技有限公司,并保留所有权利。;2、ECSHOP后台为订单增加备注功能一、添加表:ecs_order_note;CREATE TABLE IF NOT EXISTS ecs_order_note ( note_id mediumint(8) unsigned NOT NULL AUTO_INCREMENT, order_id mediumint(8) unsigned NOT NULL, note_v
13、alue text NOT NULL, PRIMARY KEY (note_id) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;二、添加语言包 -languageszh_cnadminorder.php/* 订单备注*/$_LANGlabel_order_note = 客服人员订单备注:;三、 修改admin/order.php文件第103行,添加代码:/*- */- 保存订单备注/*- */ elseif ($_REQUESTact = save_ordernote) $oid = $_REQUESToid; $oval = $_
14、REQUESTnoteVal; $sql = select count(note_value) from . $ecs-table(order_note) . where order_id = $oid; $note_count = $db-getOne($sql); if ($note_count = 0) $sql = insert into . $ecs-table(order_note) . (order_id,note_value) values( . $oid . , . $oval . ); else $sql = update . $ecs-table(order_note)
15、. set note_value = . $oval . where order_id = . $oid; $db-query($sql); /echo 订单备注已保存!四、添加所需代码在以下代码下加入/* 取得能执行的操作列表 */ $operable_list = operable_list($order); $smarty-assign(operable_list, $operable_list); /* 取得订单备注- */ $sql = SELECT note_value FROM . $ecs-table(order_note) . WHERE order_id = $ordero
16、rder_id; $order_note = $db-getOne($sql); $smarty-assign(order_note, $order_note);五、修改admintemplatesorder_info.htm文件, $lang.label_action_note 在上面代码后面加入以下代码: $lang.label_order_note $order_note 在本文件admintemplatesorder_info.htm的JS代码中加入下面内容/* * 保存订单备注 */ function saveOrderNote(oid,parm) var noteVal = par
17、m.value; Ajax.call(order.php?is_ajax=1&act=save_ordernote&oid=+oid+¬eVal=+noteVal, saveOrderResponse, POST, ); function saveOrderResponse(result) /alert(result);删除订单时删除关联的订单备注admin/order.php3、将订单状态设为等待客服确认一、将订单状态修改为等待客服确认 /includes/lib_payment.php ,以下 /* 修改订单状态为已付款 */ $sql = UPDATE . $GLOBALSecs-
18、table(order_info) . SET order_status = . OS_CONFIRMED . , . confirm_time = . gmtime() . , . pay_status = $pay_status, . pay_time = .gmtime()., . money_paid = order_amount, . order_amount = 0 . WHERE order_id = $order_id; $GLOBALSdb-query($sql); /* 记录订单操作记录 */order_action($order_sn, OS_CONFIRMED, SS_
19、UNSHIPPED, $pay_status, $note, $GLOBALS_LANGbuyer);修改为: /* 修改订单状态为已付款 */ $sql = UPDATE . $GLOBALSecs-table(order_info) . SET order_status = . OS_UNCONFIRMED . , . confirm_time = . gmtime() . , . pay_status = $pay_status, . pay_time = .gmtime()., . money_paid = order_amount, . order_amount = 0 . WHER
20、E order_id = $order_id; $GLOBALSdb-query($sql); /* 记录订单操作记录 */ order_action($order_sn, OS_UNCONFIRMED, SS_UNSHIPPED, $pay_status, $note, $GLOBALS_LANGbuyer);二、使付款后订单状态为等待客服确认 /flow.php ,以下$orderorder_status = OS_CONFIRMED;修改为$orderorder_status = OS_UNCONFIRMED;三、修改后台订单状态为等待客服确认 /Admin/ order.php ,以下
21、代码order_action($orderorder_sn,OS_CONFIRMED,SS_UNSHIPPED,PS_UNPAYED, $action_note);修改为order_action($orderorder_sn,OS_CONFIRMED,SS_UNSHIPPED, $orderpay_status, $action_note);一共有三处,只需修改“批处理订单”和“操作订单状态(处理提交)”,不修改“todo 处理退款”四、修改后台订单表语言包/languages/zh_cn/admin/order.php,以下代码$_LANGosOS_ UNCONFIRMED = 未确认;修改
22、为:$_LANGosOS_UNCONFIRMED = 等待客服确认;五、修改用户订单表语言包 /languages/zh_cn/ user.php$_LANGosOS_ UNCONFIRMED = 未确认;修改为:$_LANGosOS_UNCONFIRMED = 等待客服确认;4、自定义商品扩展名功能一、执行SQL语句。在phpmyadmin下选择ecshop数据库,执行以下语句,在ecs_goods表中增加商品扩展名字ALTER TABLE ecs_goods ADD goods_name_extends VARCHAR( 80 ) NOT NULL AFTER goods_name二、添加
23、商品扩展名 /admin/templates/goods_list.htm ,以下代码$lang.goods_name$sort_goods_name后面添加:$lang.goods_name_extends$sort_goods_name_extends 以下代码$goods.goods_name|escape:html 后面添加$goods.goods_name_extends|escape:html 三、商品信息页添加商品扩展名 /admin/templates/goods_info.htm , 以下代码$lang.lab_goods_name $lang.sele
24、ct_font html_options options=$lang.font_styles selected=$goods_name_style$lang.require_field 后面添加 $lang.lab_goods_name_extends 四、修改语言包 /languages/zh_cn/admin/goods.php ,以下代码$_LANGgoods_name = 商品名称;后面添加$_LANGgoods_name_extends = 商品扩展名称; 以下代码$_LANGlab_goods_name = 商品名称:;后面添加$_LANGlab_goods_name_extend
25、s = 商品扩展名称:;五、修改商品添加文件/admin/goods.php ,以下代码$sql = INSERT INTO . $ecs-table(goods) . (goods_name,修改为(共两处)$sql = INSERT INTO . $ecs-table(goods) . (goods_name, goods_name_extends, 以下代码VALUES ($_POSTgoods_name,修改为(共两处)VALUES ($_POSTgoods_name,$_POSTgoods_name_extends,以下代码$sql = UPDATE . $ecs-table(goo
26、ds) . SET . goods_name = $_POSTgoods_name, .后面添加 goods_name_extends = $_POSTgoods_name_extends, .六、修改商品显示文件/admin/includes/lib_goods.php ,以下代码$sql = SELECT goods_id, goods_name,修改为$sql = SELECT goods_id, goods_name, goods_name_extends ,七、在前台商品页显示商品名称扩展 在当前使用的模版文件夹下的goods.dwt ,以下代码$goods.goods_style_
27、name后面添加$goods.goods_name_extends八、修改商品栏目页显示文件/catagory.php ,以下代码/* 获得商品列表 */$sql = SELECT g.goods_id, g.goods_name, 后面添加g.goods_name_extends,以下代码$arr$rowgoods_idgoods_brief = $rowgoods_brief; 后面添加$arr$rowgoods_idgoods_name_extends = $rowgoods_name_extends;九、在分类列表页显示商品名称扩展 在当前使用的模版文件夹下的library/goods
28、_list.lbi ,以下代码 $goods.watermark_img $goods.goods_name修改为 $goods.watermark_img $goods.goods_style_name$goods.goods_name_extends5、多货币解决方案一、执行SQL语句在phpmyadmin下选择ecshop数据库,执行以下语句,在ecs_shop_config表中插入INSERT INTO ecs_shop_config (id ,parent_id ,code ,type ,store_range ,store_dir ,value ,sort_order ) VALU
29、ES (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 ,添加以下语句$_LANGcfg_namerate = 货币汇率;$_