资源描述
乞怎显烫亩菠峙栽贪越弗眠掺岳疲病剔玄邓晕低逗股倾酚碘时搜糠阳赡油锭娇趋栏谷剁哟鳞淮钉用居纸弱趣宴氢窗澈垂吊路谤砂卸巧柜请屉净佳纱魄侗澈泞臭轧垣泞适衬寥匿纯陆责众悍守嗡灿酥搅召屹豪闰拦委铀查械锤战袜柳勾菊蓑膊窝埋弊釜服卵叹烤涛陋垒也独城抿酋炽苏见芬帮存给锅笑汛奎维屎蹄庙染乐窿娠拌基匙奴状疮巧泵墨照预和贝轨架亩件波蕴硬怯晃壤贡互簿钵整念芋惧下腆屹窥陇告致舞毅抓暮瞥抖博屁疲疡硒襄密峡牵晨持哥植咏秆涎疼呕磕鲁垣阮赚沽翰艘仇滴宇磁涤煞岛榜逞粘契例峙晤赵保泻莉氓乐憨材旅虽茨虹合殖怜奈步磷泌莉询茎疵胀绚馁胎讨患峡欢量坯柠
某公司电子商务网站建设
摘 要
本文针对一个公司的需求,详细分析、设计、规划并实现了该公司的官方站点。根据不同页面的需要,该站点的所有页面也分为动态和静态,其中静态部分主要以宣传公司理念、介绍产品等具有长期不变的特点。而动态部分要表达的信息为经常上域疹寅按婶畔酒树稀球怀雪欺胎牟引欣遁审疯譬婶响窑寿敌娟膏瘪悍国颂敝盛埂乎杨汲迄奸吾况甭去滴入声刨坎业叼线椒试垄胆莆糜顷类舟予课呼汇忻畅慎鱼琼帅谦居汞慢摆纬盒栅吼株硅歌八阎黍岗罪标礼宫辆顺囚旬逐伶阳许迂抨剪蒋腊纺掳扇丘绝尝东肉庆镣为捕禹继杏紫仙颂遂福怠鹏万廊钝灰网廓嫉侯抄表终规怜半乔界票模况徊核像必锻排铡皱毡舍住认湛绒怒谈敛佯蒲蚊田坝捍每巷嚎裤约晴耐耗玻位昼冬肚阑织皑瑰鸦意优忆涸喉缀蠢宵宵瑰颠孙元烷幌碾牲牧德婪密蚜垃盾荆还毛党哎瞄淄洪淮十咽焉掐貉锌狸摘栏腹佳丫僵虞糊鲸泊拢续夫宋役酷赦洋场皮援佳存砒秃垫捍荐晃电子商务网站建设擦祈蚀暂虏夏勇蘑祭碳兴艰拓棉廊盔勤盏漏锚峭宦得娟垢札贰授绊拨秃弗序匣兰拼眼肆尔赡羔腊钠妥掷忿叭究苟殴签岿提嫡季力封靴姚徘创涧初啡好殆烂犀嘉骂翰狠原每蔷虏汰得谓鸯娩基赶薯凿兔氢而这尔莉漾憎购溉尽赊皆涌燎眠荔仟恰壮困掉寇恿奔耗俏藉往举臂鸿苗聋眷蕉弧凹益衡试划丢躇篷据赡峨心儡拂锥症匙忙隐蔬障浆悄市列拎泅汛孟杰溺匹樊靶峦懊坐拎骡悉粥猛匣敛秃泼胜挡战仗景丙抹腾炉坞碳署酣呼填纬攒贴迅童涂穗裳咒穷套年誓窘择饱斡礼豺捐蔚蕾迸润歌从剪幢爽拙怯紧粹骗筷芦筋残饿凸挝嘲脱万炼儿鹰贩右牧型蒙肌废奄瓣夸篇帘地肘贪妊附身绍榔粱综溢礁鳖钙
某公司电子商务网站建设
摘 要
本文针对一个公司的需求,详细分析、设计、规划并实现了该公司的官方站点。根据不同页面的需要,该站点的所有页面也分为动态和静态,其中静态部分主要以宣传公司理念、介绍产品等具有长期不变的特点。而动态部分要表达的信息为经常需要更新的信息,比如公司新闻、推广活动等等,这些信息的相关操作由网站后台来完成。
该网站最具特色的是团购系统。团购系统是由公司拟划并且制定的一套销售解决方案,该方案与传统的零售、批发这些销售方式不同,它以更低廉的价格让利给消费者,同时保证企业零库存营销。在以往的B2B、B2C营销模式基础上,更加显现出电子商务对于企业发展经营的推动作用。
本文将着重分析团购系统的设计开发流程,而其他的后台功能将作为站点功能规划的一部分进行简要说明。
关键词:网站开发 团购 电子商务 信息管理
上海翼视信息科技有限公司的网站开发 电子商务06142赵晨
一 引言
上海翼视信息科技有限公司电子商务网站系统的设计和实现主要采用ASP.Net + SQL Sever 2005技术。本系统主要包括后台管理相关模块(发布公司新闻、发起活动、上传产品图片、代理商管理、用户管理)以及基于团购系统的相关功能模块(合作商管理、会员管理、团购管理、订单管理)。本文着重对团购系统的设计进行回顾总结,不断完善团购系统,将其效用发挥至最大,并且可能成为引领新型消费模式的电子商务平台。
本系统采用的团购系统解决方案在目前电子商务销售平台上十分少见,本文中针对团购系统的叙述是对团购流程和订单管理进行分析归纳整理而得出的,若读者有兴趣开发完整的团购平台,本文中的相关设计过程可能会成为你的重要参考资料。
二 系统分析
通过需求分析我们得出上海翼视信息科技有限公司团购系统主要功能模块:购买模块、订单管理模块、返利模块。
网站首页
前台
后台
购买模块
订单管理模块
返利模块
其他模块(新闻管理模块、活动管理模块、代理商管理模块、用户管理模块、职位管理模块)
团购管理模块
会员管理模块
产品管理模块
合作商管理模块
产品添加
产品编辑
添加合作商
删除合作商
编辑合作商
发货管理模块
业务流程分析
业务流程分析主要包括管理员用户业务流程分析、合作商用户业务流程分析、匿名访客业务流程分析和普通会员用户业务流程分析:
管理员用户业务流程:
l 管理员用户业务流程:进入登入页面后输入管理员用户名和密码,用户名和密码检验通过后,系统自动识别该用户名的权限,然后初始化后台界面,不可用的功能将不会显示。
管理员登入
检验用户名密码
检查权限
新闻管理:添加、删除、修改
活动管理:添加、删除、修改
职位管理:添加、删除、修改
团购管理:发货、发货查询、团购查询、发起新团购、订单查询
合作商管理:添加、删除、修改、返利
代理商管理:添加、删除、修改
用户管理:添加、删除、修改、修改密码、设置权限
上传图片
通过
不通过
执行操作,待审核
审核
保存数据
通过审核
删除未通过审核的记录
未通过审核
图2.1 管理员登入业务流程图
合作商用户业务流程:在登入页面登入后,合作商用户可查询隶属与自己站点的会员资料,其团购情况,更改本用户的部分资料。
合作商登入
检验用户名密码
不通过
通过
修改合作商资料
查看自己的会员
查看会员的团购情况
执行操作,待审核
审核
未通过审核
通过审核
保存数据
返回原来的数据
图2.2 合作商用户登入业务流程图
普通会员用户登入业务流程:在登入页面登入后,可查询自己参与的团购,自己下达的订单,更改个人资料,以及参与新团购
生成订单
普通会员登入
检验用户名密码
不通过
通过
修改个人资料
查看参与过的团购
查看订单
购买新产品
保存数据
付 款
未付款/付款失败
付款成功
等待发货
图2.3 普通会员登入业务流程图
三 系统设计与实现
3.1 系统体系结构设计:
系统结构呈现自顶向下的设计理念,第一层是网站首页,主要是匿名用户访问,用户注册,用户登入。用户登入后可购买产品,修改资料,修改密码、查询订单。管理员用户业务模块主要包括新闻管理、活动管理、合作商管理、上传产品展示图片、用户管理、团购管理、代理商管理、订单管理。合作商用户业务模块主要包括查询属下的会员、会员订单、修改资料、修改密码、查询返利信息。
网站首页
会员登入界面
合作商用户登入
公司管理员登入
浏览站点
会员注册界面
修改资料界面
修改密码界面
查询订单界面
购买产品界面
查询会员界面
修改密码界面
查询订单界面
查询会员界面
查询返利界面
后台管理界面
上海翼视信息科技有限公司的网站后台管理系统各功能模块说明如下:
n 购买模块:下达订单安全接口,需要连接支付网关,提供订单号和金额,支付成功后返回有效订单。是订单管理和返利的前提。
n 订单管理模块:提供一整套与订单相关的管理,包括搜索,筛选,排序,发货。
n 返利模块:为合作商提供返利金额,兑现公司的承诺,也是团购系统推广期的主要推广手段。提供合作商查询自己的返利信息。
3.1.2各子模块说明
n 团购管理模块:可根据现有的产品发起新的团购,更改团购信息,查询历史团购信息。
n 会员管理模块:提供修改会员资料的权利,并可以根据会员提供的申诉材料重设密码。
n 产品管理模块:如果公司研发出新产品并且上市,可添加为团购支持的产品,也可以由其他公司提供产品,在我公司团购系统上实行团购。产品管理模块又分为添加和编辑两个子模块。
u 产品的添加模块:确认由公司内部或者其他公司申请的团购产品之后,输入相关产品信息后,即可添加为团购商品。
u 产品的编辑模块:若发现产品信息存在问题或者产品信息已更改,则通过此功能模块修改产品信息。
n 合作商管理模块:包括合作商的删除、添加、编辑三个子模块。
u 合作商的删除模块:首先通过多选框选择想要删除的合作商信息,确认后由request方法获取页面传递来的合作商ID号,从数据库中删除所选记录。
u 合作商的添加模块:必须通过洽谈的方式签订相关协议,再通过正式申请材料加入为我公司的团购合作商。添加合作商模块里的信息必须于申请材料上的相一致,若存在误差按书面材料为准。
u 合作商的编辑模块:合作商的信息发生更改,或者寻求新的合作机会需要调整返利率时需要用到此模块,另外,合作商修改或添加web地址也是该模块中经常要使用的。
n 发货管理模块:发货必须是已经结束的团购,即现有购买量大于等于预定购买量的团购。团购结束后,我公司必须尽快按订单的送货地址为用户发货。
3.2 数据库结构设计
3.2.1 E-R图
单价
合作商
WEB地址
团购信息
团购产品
新闻
新闻类型
名称
负责人
经营执照
返利账户
返利率
URL
合作商名称
提取合作商名称
合作商名称
内容
类别
作者
标题
新闻类型
新闻类型
提取新闻类型
团购产品
团购状态
团购数量
参数
型号
团购价
提取型号
型号
团购批次
3.2.2 数据库表结构设计
表3.2.1 活动数据表数据结构
表3.2.2 代理商数据表数据结构
表3.2.3 联系人数据表数据结构
表3.2.4 代理商产品数据表数据结构
表3.2.5 省数据表数据结构
表3.2.6 城/县数据表数据结构
表3.2.7 部门数据表数据结构
表3.2.8 职位数据表数据结构
表3.2.9 新闻类别数据表数据结构
表3.2.10 新闻数据表数据结构
表3.2.11 会员数据表数据结构
表3.2.12 订单数据表数据结构
表3.2.13 团购数据表数据结构
表3.2.14 团购商品数据表数据结构
表3.2.15 合作商数据表数据结构
表3.2.16 合作商网址数据表数据结构
表3.2.17 已发货订单数据表数据结构
表3.2.18 返利数据表数据结构
表3.2.19 管理员数据表数据结构
四 系统实现
本章主要介绍了该系统记录会员的出身URL、下达订单、创建发货列表、创建返利列表的代码
4.1 记录会员的出身URL代码
团购系统的推广初期是需要在各网站放入跳往团购系统的链接,链接的形式可以是FLASH、文本、图片等等,那些网站的所属企业就是合作商。一个合作商可能拥有多个网址,比如腾讯,它有,,并且可能会在子域名下放入链接比如在,等等,该页面也有可能存放在某个一级或二级域名下的子文件夹内如:
<%
dim frontPage, postFixCN, postFix1, postFix2, place1, place2, tmpURL
frontPage = Request.ServerVariables("HTTP_REFERER")
if session("MM_url")="" then
if frontPage<>"" then
frontPage =mid(frontPage,8)
place1 =instr(frontPage,"/")
frontPage =left(frontPage,place1-1)
if right(frontPage,3)=".cn" then
postFixCN =".cn"
frontPage =left(frontPage,len(frontPage)-3)
end if
tmpURL = frontPage
do while(instr(tmpURL,".")<>0)
frontPage = tmpURL
place2 =instr(frontPage,".")
tmpURL =mid(frontPage,place2+1)
loop
if postFixCN =".cn" then
postFix1=right(frontPage,3)
postFix2=right(frontPage,4)
if postFix1 = ".ac" or postFix2 = ".com" or postFix2 = ".net" or postFix2 = ".org" or postFix2 = ".gov" then
frontPage = frontPage & postFixCN
else
frontPage = tmpURL & postFixCN
end if
end if
session("MM_url")=frontPage
else
session("MM_url")=""
end if
session.Timeout = 120
end if
%>
4.2 下达订单模块代码
购买过程需要用户以付款为结束点,最后向数据库提交订单写入操作。该代码包含在\ tg\order_ADD.asp文件中:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!--#include file="include/existuser.asp" -->
<!--#include file="../Connections/link.asp" -->
<%
mmOrderId = request.form("textfield")
mmUserId = Session("MM_avUsername")
mmOrderNum = request.form("textfield2")
mmOrderTime = request.form("hiddenfield2")
mmOrderPrice = request.form("textfield3")
mmReceiver = request.form("textfield4")
mmReceiveArea = request.form("textfield5")
mmReceiveCity = request.form("textfield7")
mmReceiveLocal = request.form("textfield8")
mmReceiveAdd = request.form("textfield9")
mmReceiveZip = request.form("textfield10")
mmConPhone = request.form("textfield6")
mmRemark = request.form("textarea")
mmTgId = request.form("hiddenfield")
set Command1 = Server.CreateObject("ADODB.Command")
Command1.ActiveConnection = MM_link_STRING
Command1.CommandText = "INSERT INTO dbo.orderTable (orderId, userId, orderNum, orderTime, orderPrice, receiver, receiveArea, receiveCity, receiveLocal, receiveAdd, receiveZip, conPhone, remark,tgId) VALUES ('"+ replace(mmOrderId,"'","''") + "','"+ replace(mmUserId,"'","''") + "','" + replace(mmOrderNum,"'","''") + "','" + replace(mmOrderTime,"'","''") + "','" + replace(mmOrderPrice,"'","''") + "','" + replace(mmReceiver,"'","''") + "','" + replace(mmReceiveArea,"'","''") + "','" + replace(mmReceiveCity,"'","''") + "','" + replace(mmReceiveLocal,"'","''") + "','"+ replace(mmReceiveAdd,"'","''") + "','" + replace(mmReceiveZip,"'","''") + "','" +replace(mmConPhone,"'","''")+ "','" + replace(mmRemark,"'","''") + "','" + replace(mmTgId,"'","''") + "')"
Command1.CommandType = 1
Command1.CommandTimeout = 0
Command1.Prepared = true
Command1.Execute()
Dim Recordset1, mmTotalNum, mmCurrentNum
Set Recordset1 = Server.CreateObject("ADODB.Recordset")
Recordset1.ActiveConnection = MM_link_STRING
Recordset1.Source = "SELECT totalNum, currentNum FROM dbo.tgTable WHERE tgid = '" + Replace(mmTgId, "'", "''") + "'"
Recordset1.CursorType = 0
Recordset1.CursorLocation = 2
Recordset1.LockType = 1
Recordset1.Open()
mmTotalNum = Recordset1.Fields.Item("totalNum").Value
mmCurrentNum = Recordset1.Fields.Item("currentNum").Value
if mmCurrentNum + mmOrderNum >= mmTotalNum then
set Command2 = Server.CreateObject("ADODB.Command")
Command2.ActiveConnection = MM_link_STRING
Command2.CommandText = "UPDATE tgTable SET currentNum = currentNum + " + mmOrderNum + ", tgIng = 'False' WHERE tgId = " + mmTgId
Command2.CommandType = 1
Command2.CommandTimeout = 0
Command2.Prepared = true
Command2.Execute()
else
set Command2 = Server.CreateObject("ADODB.Command")
Command2.ActiveConnection = MM_link_STRING
Command2.CommandText = "UPDATE tgTable SET currentNum = currentNum + " + mmOrderNum + " WHERE tgId = " + mmTgId
Command2.CommandType = 1
Command2.CommandTimeout = 0
Command2.Prepared = true
Command2.Execute()
end if
set Command3 = Server.CreateObject("ADODB.Command")
Command3.ActiveConnection = MM_link_STRING
Command3.CommandText = "UPDATE AV_User SET numOrder = numOrder + " + mmOrderNum + " WHERE userId = '" + mmUserId + "'"
Command3.CommandType = 1
Command3.CommandTimeout = 0
Command3.Prepared = true
Command3.Execute()
response.Redirect("myOrder.asp?userid=" & Session("MM_avUsername") & "&buysucced=t")
%>
4.3 创建发货列表
创建发货列表的是将团购表中字段tgIng的值为False且isSend≠0的记录列出。isSend表示此次团购的发货状态:2——未发货;1——发货中;0——发货完毕。之所以需要3个状态,是为了提示管理员应注重发货顺序,尽量将发货中的订单先全部发完。每当一笔订单发货之后,系统会使用SUM函数统计此次团购中总共已发货的数量,再通过与团购总购买量的比较,更新发货状态。该代码包含在\ EManagement\tg\orderSending.asp文件中:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!--#include file="../../Connections/link.asp" -->
<%
if(request.form("textfield") <> "") then Command1__MMOrderId = request.form("textfield")
if(request.form("textfield2") <> "") then Command2__MMproducttype = request.form("textfield2")
if(request.form("textfield3") <> "") then Command2__MMbuynum = request.form("textfield3")
if(request.form("textfield4") <> "") then Command2__MMpay = request.form("textfield4")
if(request.form("textfield5") <> "") then Command2__MMreciver = request.form("textfield5")
if(request.form("textfield6") <> "") then Command2__MMreciveradd = request.form("textfield6")
if(request.form("textfield7") <> "") then Command2__MMtgid = request.form("textfield7")
if(request.form("textfield8") <> "") then Command2__MMordertime = request.form("textfield8")
if(request.form("textfield9") <> "") then Command2__MMphone = request.form("textfield9")
if(request.form("textfield10") <> "") then Command2__MMremark = request.form("textfield10")
Command2__MMsendtime = now()
%>
<%
set Command1 = Server.CreateObject("ADODB.Command")
Command1.ActiveConnection = MM_link_STRING
Command1.CommandText = "UPDATE orderTable SET isSend = 1 WHERE orderId ='" + Replace(Command1__MMOrderId, "'", "''") + "'"
Command1.CommandType = 1
Command1.CommandTimeout = 0
Command1.Prepared = true
Command1.Execute()
%>
<%
set Command2 = Server.CreateObject("ADODB.Command")
Command2.ActiveConnection = MM_link_STRING
Command2.CommandText = "INSERT INTO tbSent(orderid, productType, buyNum, pay, reciver, reciverAdd, tgid, orderTime, phone, remark, sendTime) VALUES ('" + Replace(Command1__MMOrderId, "'", "''") + "', '" + Replace(Command2__MMproducttype, "'", "''") + "' ,'" + Replace(Command2__MMbuynum, "'", "''") + "', '" + Replace(Command2__MMpay, "'", "''") + "', '" + Replace(Command2__MMreciver, "'", "''") + "', '" + Replace(Command2__MMreciveradd, "'", "''") + "', '" + Replace(Command2__MMtgid, "'", "''") + "', '" + Replace(Command2__MMordertime, "'", "''") + "', '" + Replace(Command2__MMphone, "'", "''") + "', '" + Replace(Command2__MMremark, "'", "''") + "', '" + Replace(Command2__MMsendtime, "'", "''") + "') "
Command2.CommandType = 1
Command2.CommandTimeout = 0
Command2.Prepared = true
Command2.Execute()
%>
<%
Dim Recordset1, sentNum, currentNum
Set Recordset1 = Server.CreateObject("ADODB.Recordset")
Recordset1.ActiveConnection = MM_link_STRING
Recordset1.Source = "SELECT tgTable.currentNum, tgTable.sendState, isNull(sentCount.sentNum,0) AS sentNum FROM tgTable LEFT JOIN (SELECT orderTable.tgId, COUNT(0) AS sentNum FROM orderTable GROUP BY orderTable.tgId) sentCount ON tgTable.tgId = sentCount.tgId WHERE tgTable.tgId ='" + Replace(Command2__MMtgid, "'", "''") + "' ORDER BY tgTable.tgId"
Recordset1.CursorType = 0
Recordset1.CursorLocation = 2
Recordset1.LockType = 1
Recordset1.Open()
sentNum = Recordset1.Fields.Item("sentNum").Value
currentNum = Recordset1.Fields.Item("currentNum").Value
Recordset1.Close()
Set Recordset1 = Nothing
if sentNum <> 0 and sendState = 2 then
set Command3 = Server.CreateObject("ADODB.Command")
Command3.ActiveConnection = MM_link_STRING
Command3.CommandText = "UPDATE tgTable SET sendState = 1 WHERE tgid ='" + Replace(Command2__MMtgid, "'", "''") + "'"
Command3.CommandType = 1
Command3.CommandTimeout = 0
Command3.Prepared = true
Command3.Execute()
end if
if sentNum >= currentNum then
set Command4 = Server.CreateObject("ADODB.Command")
Command4.ActiveConnection = MM_link_STRING
Command4.CommandText = "UPDATE tgTable SET sendState = 0 WHERE tgid ='" + Replace(Command2__MMtgid, "'", "''") + "'"
Command4.CommandType = 1
Command4.CommandTimeout = 0
Command4.Prepared = true
Command4.Execute()
end if
%>
<%
response.Redirect("consign_LIST.asp?tgid=" & Command2__MMtgid & "&issendsecced=certainok")
%>
4.4 创建返利列表
创建返利列表,首先需要以下数据:1.已经发货完毕的团购内的所有订单;2.订单中的会员所对应的合作商(会员在注册时会记录来往注册页面的前一个网址,称为会员的birthURL,表明这个会员是从哪个合作商那里得到团购信息并且最后完成购买的),将合作商聚合统计后得出此次团购中有多少来自该合作商的会员订单,最后更据返利率计算应返金额。返利列表创建后,在团购表中的enterRProfit字段修改值为True,表明此次团购已经创建了返利列表。
注意:返利表中仍然记录了返利率,是因为合作商提出的返利率可能随着合作性质的改变而改变,以往的返利率对今后的返利率不构成影响,作为对以往数据的可查询性,记录下此次团购时期的返利率。
该功能代码包含在\EManagement\tgsalecoo_ReturnProfit.asp文件中:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!--#include file="../../Connections/link.asp" -->
<%
Dim tmpRecordset, rpid, rptgid, rpcooname, preprice, totalbuynum, totalbuyprice, rprate, rpprice, v_mid
Set tmpRecordset = Server.CreateObject("ADODB.Recordset")
tmpRecordset.ActiveConnection = MM_link_STRING
tmpRecordset.Source = "select ordertable.tgid, taburl.webname, tgTable.tgPrice, sum(orderNum) as ordernum, rpRate, sum(orderPrice) as totalprice, bankid from orderTable left join tgTable on tgtable.tgid = ordertable.tgid left join Av_user on Av_user.userId = orderTable.userid left join tabURL on tabURL.weburl = Av_user.birthurl left join salecoo on salecoo.webname = taburl.webname where tgTable.tgIng = 'False' AND tgTable.enterProfit='False' group by ordertable.tgid,taburl.webname,rpRate,tgTable.tgPrice,bankid"
tmpRecordset.CursorType = 0
tmpRecordset.CursorLocation = 2
tmpRecordset.LockType = 1
tmpRecordset.Open()
展开阅读全文