基于微信公众平台的销售订单管理系统

2017-06-29 12:00:35孙海滨刘明明
计算机应用与软件 2017年5期
关键词:订单销售数据库

孙海滨 刘明明

(山东科技大学信息科学与工程学院 山东 青岛 266590)

基于微信公众平台的销售订单管理系统

孙海滨 刘明明

(山东科技大学信息科学与工程学院 山东 青岛 266590)

在充分调研和分析企业现状的基础上,针对现有的ERP系统欠缺与销售人员交互的功能,对传统销售订单管理系统模式进行分析,总结了销售订单管理系统的主要功能需求和实现方式。同时,综合考虑用户的使用场景和现有技术,设计了基于微信公众平台的销售订单管理系统。在最终的系统实现中,通过使用微信公众平台的开放接口和Web开发技术,应用MVC框架和B/S架构,与ERP系统进行对接,良好地扩展了ERP系统的功能,实现了从订单提交环节到发货环节的无缝衔接,并为企业销售人员提供可随时随地提交和管理订单的服务。

微信公众平台 销售订单管理系统 Web开发 Enterprise Resource Planning(ERP)

0 引 言

传统销售订单的提交和管理是通过销售人员和销管人员电话或网络沟通达成的,这种方式存在很大的误操作性,从而增加销售数据不吻合机率,增加了企业供销过程的难度,而且也难以对销售人员进行业绩评估。因此对于企业的销售管理体制而言,制定一款适用于其本身的销售订单管理软件是十分必要的。

考虑到销售人员的工作性质、工作地点,销售人员所需的功能不适合只在台式机上使用,因此应考虑将其放置于移动终端。据统计,截至2015年12月,我国网民使用手机上网的比例已经达到了90.1%[2],移动终端已越来越普及,因此,考虑将销售人员所需的功能开发于移动终端,而管理人员所需的功能开发于PC端。对于企业的销售管理而言,基于微信公众平台的销售订单管理系统有着极大的开发价值。

1 系统支撑平台

微信公众平台为开发者提供了第三方开发接口,基于此平台,企业和个人均可根据自身功能需求制定适合自身的公众号,可开发出媒体传播、电子商务或企业信息化管理等多种类型的第三方应用,进而实现以文字、图片、语音、视频、图文消息[7]对其特定群体的管理,并可与其进行有效的互动与沟通。

基于该平台开发销售订单管理系统的优势:

(1) 可随时随地提供信息和服务。由于手机已成为用户随时随地不可或缺的社交工具,可为销售人员操作订单数据带来极大便利。同时与手机APP相比较,由于不需要下载安装此软件系统,即可实现APP的功能,因此用户的体验感更好。

(2) 库存信息可随时查看,并实时更新。在基于该平台开发的系统上,用户可随时查看所有产品的库存信息。除此之外,在用户成功提交订单之后,库存信息也随之更新,确保了库存信息的时效性。

(3) 避免升级。对于手机APP来说,一旦系统功能需求变动,用户就不得不将原来安装的APP卸载,重新安装升级之后的系统。而基于该平台开发的系统所有的功能升级都在后台完成,用户只有在下一次打开微信公众账号之后才会发现功能更新,因此避免了需要用户手动升级系统的操作。

(4) 跨平台开发。在手机APP开发中,开发者需要考虑到系统在Android和IOS两大平台上的应用,同样的功能需要在不同的架构之下分别开放。而在该平台上,开发者应用Web开发技术,可跨平台实现系统功能,因此无需考虑此类问题。

2 系统总体设计

2.1 系统整体框架

如图1所示,本系统由微信客户端、PC客户端、微信公众平台、Web服务器和K3(此处是指金蝶K3的ERP软件,以下简称“K3”)系统五部分构成。微信客户端主要功能是将销售人员的订单信息提交到服务器,并对其已提交的订单信息进行管理;PC客户端主要功能是计划部人员对订单的分配以及审核操作;微信客户端的展示方式是将Web页面嵌入到微信中,通过微信公众平台的接口完成相应的功能;系统从K3系统提取所需数据进行展示,并将用户生成的订单存入销售订单系统数据库,然后再同步到K3数据库。

图1 系统整体框架图

2.2 系统体系结构

系统采用B/S三层架构,特别是JavaScript和Ajax的结合使用,使得应用程序的数据交互性增强,从而实现了页面的局部数据刷新。应用程序部分逻辑功能和计算功能在客户端进行处理,大大减轻了后台服务器的计算负担。此外,系统借助Apache web服务器平台以及Microsoft SQL Server 2005数据库平台进行网站的搭建。销售订单管理系统的B/S的三层架构如图2所示。

表示层:为用户提供交互式操作的界面,包括用户的身份认证等。

业务逻辑层:该层包含事务的处理逻辑,多数在服务器端使用php语言处理,部分在浏览器端,使用JavaScript进行处理。其响应表示层的业务请求,并根据该请求向数据访问层提交或获取数据,将结果反馈给表示层。业务逻辑层在整个架构中起到了数据交换中承上启下的作用[9]。

数据访问层:主要负责存取数据。本系统采用SQL SERVER 2005数据库。

图2 B/S三层架构图

2.3 系统功能

销售订单管理系统能够实现销售部人员提交和管理订单、计划部人员处理订单以及ERP系统的无缝衔接。该系统的功能实现框图如图3所示,可以分为三部分:第一部分用于查询/存储数据模型,包括用户查看订单、查看即时库存和存储订单信息;第二部分用于生成订单模型,主要包括用户生成及管理订单以及用来更新即时库存的数据预处理器;第三部分用于分配订单模型,主要包括查看待分配订单的数据发送模块和订单分配操作的数据接收模块。

图3 系统功能框图

从用户需求、业务逻辑和微信可提供的开发接口出发,销售订单管理系统可分为四大功能模块,如图4所示:销售人员下订单、查看和管理订单、计划部查看和分配订单以及查看和更新即时库存。

图4 系统功能模块图

本系统可以从企业的K3系统提取所需数据,也可以将用户生成的订单存入中间数据库,并借助中间件存入K3数据库。其原理如图5所示。系统提供查看即时库存的功能,销售人员通过手机微信端对订单进行批量提交,并可对其所下订单进行管理,还可按条件筛选查看其历史订单。此外,为了方便管理,企业有关部门限制了订单提交的时间,因此,系统还为销售人员提供了提交订单暂存的功能。企业的计划部人员可以登录电脑网站查看待分配的订单,对销售部所提交的订单进行审批管理,并对待分配订单进行分配。

图5 系统消息接口原理图

本系统数据库中主要包含用户信息表、订单信息表、产品库存表、产品生产厂表以及微信菜单信息表。用户点击微信菜单进入功能页面后,无需登录即可完成订单的提交、查看和管理操作,因此在用户信息表中需要将用户个人微信号的唯一标识openid和该用户的基本信息进行绑定。此外,订单信息表用来存放销售订单的具体信息,为订单的查看、管理和分配功能提供数据支持;产品库存表用来记录每个产品在各个生产厂中的相应库存,便于用户查看即时库存;产品生产厂表用来存储企业所有生产厂的具体信息,为订单分配功能提供生产厂信息;而微信菜单表则是用来存储微信菜单的名称及功能页面链接等信息,便于实现微信菜单的显示和管理功能。

3 关键模块设计

3.1 下订单模块

销售部门人员登录微信手机客户端,系统自动获取当前用户的身份信息。用户可选择销售的产品,输入产品的数量和单价,并编辑其他产品的信息,将所有产品信息编辑完毕后,可查看即时库存信息。若提交订单的操作是在企业允许提交的时间范围内,便可立即生效,否则,暂存订单,到达允许时间时,系统自动提交该订单。提交订单后系统会及时更新库存信息。同时,系统会根据相应的条件将订单分为通过和未通过状态,其中未通过状态的订单交由计划部审批,并将已通过的订单信息和库存信息通过中间件更新到K3数据库中。该模块时序如图6所示。

图6 下订单模块时序图

3.2 管理订单模块

销售部人员点击“管理订单”菜单后,系统自动获取用户身份信息,将该用户的历史订单以列表形式显示,并允许用户根据条件筛选查看指定订单。系统自动根据订单的状态,判断出允许用户对该订单进行的操作。图7为该模块的时序图。

图7 管理订单模块时序图

不管订单是在未通过或通过状态,销售人员或计划部可以直接删除,不能再对订单进一步修改,但在订单数据库中保留该条记录,以便于日后的管理统计工作;在订单处于通过状态下用户可对订单进行撤回操作,将订单系统数据库中订单状态转换为未通过,销售部或计划部可以进一步对该订单进行管理。进行删除和撤回操作的订单数据,均不可保留在K3系统中。用户可对未通过的订单进行修改,此时系统将订单系统数据库和K3系统数据库同时更新,因此确保了两个数据库中对已通过订单的数据保持一致。订单的状态转换见图8所示。

图8 订单状态转换图

3.3 审核和分配订单模块

计划部人员通过计算机上安装的Web浏览器登录订单审核和分配系统。从系统需求出发,销售人员在下订单时,系统自动将不符合直接通过条件的订单设置为未通过状态,该类订单需要计划部人员对其进行审核。本模块允许用户查看即时库存,并据此决定订单是否可分配。对于可分配订单,分配成功后,若订单满足直接通过的条件,则将订单自动转换为通过状态,否则为未通过状态。对于不可分配订单,用户可对其执行撤回操作,订单转换为已作废状态。与微信端模块操作相同,在本模块操作执行过程中,实时更新库存信息,并同时更新订单系统数据库和K3系统数据库。本模块的设计开发可以实现计划部人员查看即时库存以及按筛选条件查看待分配的订单,并对订单进行分配,从而完成对订单的审核操作。

对于审核通过的订单,微信端用户仍可以执行“撤回”操作,此时该订单转换为“未通过”状态,以便于微信端用户可进一步修改此订单。

4 关键技术应用

4.1 微信第三方服务平台验证

由于本系统主要是基于微信平台并接入第三方服务平台的设计开发,因此需要开发者对微信平台进行配置。在提交配置信息时,微信服务器向填写的第三方服务器的URL上发送带参数的GET请求,其参数[1]如表1所示。该过程用于微信平台对待接入的服务器的验证,以确保该服务器地址的有效性。

表1 验证操作GET请求参数表

在服务器的token验证过程中,首先,将开发者自定义的token与请求参数timestamp、nonce按字典序进行排序[1];然后,将以上三个字符串拼接成一个字符串并对其进行sha1加密;最后,将加密后得到的字符串与signature参数比较,若成功,标识请求来源于微信,服务器token验证通过。

关键代码如下所示:

//字典排序

//拼接成一个字符串

//进行sha1加密

//对比

return true;

} else {

return false;

}

4.2 基于微信的用户身份获取

用户在微信客户端访问本系统中的网页,系统可以通过网页授权机制,获取用户的微信openid,并将其与用户的编号等个人信息绑定,实现用户进入系统时,自动识别身份信息功能。

本系统采用静态网页授权机制,该机制是以snsapi_base为scope发起网页授权,授权成功后自动跳转到业务页面。

静态网页授权的过程[1]分为两步:

一个完善的制度体系可以给管理者们起到良好的辅助作用,更可以让员工约束其自身,促进工程进度,打消员工消极怠工的状态,增强团队的管理体系,完善制度从以下几方面入手:

第一步:用户进入授权页面同意授权,获取code。

页面的链接如下所示:

https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE&connect_redirect=1#wechat_redirect

其中:redirect_uri为系统的业务页面。

第二步:通过code获取用户的openid。

获取code后,将code值代替以下链接中的authorization_code;并通过curl技术抓取网页返回的openid数据。

https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

4.3 微信自定义菜单创建

微信公众平台规定,自定义菜单接口[1]可实现click、view等多种类型的功能按钮。其中click类型的按钮主要用于自动回复功能,view类型的按钮主要用于接入第三方平台的功能页面,并可调用微信的网页授权接口,以自动获取当前用户身份信息。在销售订单管理系统中,微信端有三大功能:下订单、管理订单和查看即时库存,其中查看即时库存功能需要嵌入到另两个模块中,且用户在进入功能页面时,系统需自动识别用户信息。因此,可创建两个view类型的一级菜单。

自定义菜单接口:

https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN

接口请求方式:POST

在销售订单管理系统中,该接口所需的请求参数说明如表2所示。

表2 系统所需的自定义菜单接口请求参数说明

4.4 页面异步加载

在开发中使用Ajax技术进行浏览器和服务器间数据的异步传输,实现页面的刷新效果,增强页面的交互性。以用户删除订单的操作为例,操作成功后,数据库中该条记录删除的同时,HTML页面部分移除一条记录的显示部分,而无需重载整个页面,关键代码示例如下:

url:″modorder.php″,

Type:′POST′,

dataType:′text′,

data:{″FOrderNumber″:FOrderNumber,″type″:1},

success:function(data){

type.val(″已作废″);

alert(data);

if(type.val()==″已作废″){

type.parent().next().next().find(″span″).css(′display′,′none′);

btn1.parent().find(″button″).attr(′disabled′,′disabled′);

}

}

})

4.5 数据库接口类

本系统在开发过程中会多次进行数据库的连接、数据库表格的增删改查等多种操作,因此在系统中创建一个数据库操作类库,提高代码的重用性。

编写数据库构造函数,在以后的使用过程中,每实例化一次对象都会自动调用该函数:

array(″Database″=>″pro″,″CharacterSet″=>″UTF-8″)) {

//实例化时即连接数据库

}

连接数据库并获取连接对象:

private function connect() {

(print_r( sqlsrv_errors(), true) );

//统一utf8编码格式

}

执行SQL语句:

}

}

返回所需数据或状态:

//抓取sql语句类型

//执行sql语句

} else {

}

}

}

执行查询操作时,返回多条结果:

}

5 结 语

本系统是在微信公众平台与第三方平台基础上,实现了远程手机客户端和后台Web系统功能的结合,为销售人员下单和计划部人员分配订单提供便利,并允许销售人员对其订单实时跟踪,使得企业的销售人员下订单的效率更高,也有利于企业对销售人员的业务评估。系统通过中间件与企业现有的ERP系统相关联,将业务员下订单、计划部分配订单以及销管人员通过K3系统查看订单、根据订单发货等工作流程无缝衔接,良好地扩展了K3系统的功能,极大地提升了企业运转效率。该系统在某公司实施后,运行良好,完成了项目初期的需求。在以后的开发中,还可加入对销售订单数据的统计预测功能,以及对订单的自动分配功能,进一步挖掘订单数据的价值。

[1] 腾讯. 微信公众平台开发者文档[EB/OL]. http://mp.weixin.qq.com/wiki/home/index.html.

[2] 中国互联网络信息中心. 第37次中国互联网络发展状况统计报告[J]. 互联网天地, 2016(1): 37-49.

[3] 王华琦. K3系统在企业管理领域的实施及功能分析[J].现代经济信息, 2010(20): 49-50.

[4] 曹美玉. 订单管理系统的设计与实现外贸[D].山东大学软件学院, 2013.

[5] 马会玲. 订单管理系统的设计与实现基于有限状态机的印刷[D].北京印刷学院, 2014.

[6] 刘哲, 姜玲杰. 基于ERP的汽车生产企业订单管理系统的设计与实现[J]. 物流技术, 2015(9): 259-261.

[7] Wikipedia. WeChat[EB/OL].[2014-08-20].https://en.wikipedia.org/wiki/WeChat#cite_note-8.

[8] 王正, 陆余良, 刘金红. 基于AJAX技术的Web服务架构及其安全性研究[J]. 计算机应用与软件, 2011, 28(3): 296-299.

[9] 任广震, 侯进, 王献. MVC模式在B/S结构政务系统的应用研究[J].计算机应用与软件, 2014, 31(8): 54-58.

SALES ORDER MANAGEMENT SYSTEM BASED ON WECHAT PUBLIC PLATFORM

Sun Haibin Liu Mingming

(SchoolofInformationScienceandEngineering,ShandongUniversityofScienceandTechnology,Qingdao266590,Shandong,China)

Based on the investigation and analysis of the current situation of the enterprise, this paper analyzes the traditional sales order management system model and summarizes the main function requirements and realization methods of the sales order management system, aiming at the lack of the existing ERP system interaction with the salesperson. At the same time, the sales order management system based on WeChat public platform is designed considering the user’s usage scene and the existing technology synthetically. In the final system implementation, by using the open interface and web development technology of WeChat public platform and applying the MVC framework and the B / S framework, the ERP system is docked and the function of the ERP system is expanded. The system to achieve the link from the order to delivery links seamlessly, and for business sales staff can provide anytime, anywhere to submit and manage orders for services.

WeChat public platform Sales order management system Web development Enterprise resource planning(ERP)

2016-04-20。孙海滨,副教授,主研领域:嵌入式系统,流媒体技术,物联网技术,智能家居等。刘明明,硕士。

TP31

A

10.3969/j.issn.1000-386x.2017.05.019

猜你喜欢
订单销售数据库
春节期间“订单蔬菜”走俏
今日农业(2022年4期)2022-11-16 19:42:02
新产品订单纷至沓来
“最确切”的幸福观感——我们的致富订单
当代陕西(2018年9期)2018-08-29 01:20:56
这四个字决定销售成败
给人带来快乐的袜子,一年销售1亿美金
流行色(2017年2期)2017-05-31 01:43:44
数据库
财经(2017年2期)2017-03-10 14:35:35
数据库
财经(2016年15期)2016-06-03 07:38:02
数据库
财经(2016年3期)2016-03-07 07:44:46
数据库
财经(2016年6期)2016-02-24 07:41:51
怎样做到日订单10万?
创业家(2015年6期)2015-02-27 07:53:35