孫海濱 劉明明
(山東科技大學信息科學與工程學院 山東 青島 266590)
基于微信公眾平臺的銷售訂單管理系統
孫海濱 劉明明
(山東科技大學信息科學與工程學院 山東 青島 266590)
在充分調研和分析企業現狀的基礎上,針對現有的ERP系統欠缺與銷售人員交互的功能,對傳統銷售訂單管理系統模式進行分析,總結了銷售訂單管理系統的主要功能需求和實現方式。同時,綜合考慮用戶的使用場景和現有技術,設計了基于微信公眾平臺的銷售訂單管理系統。在最終的系統實現中,通過使用微信公眾平臺的開放接口和Web開發技術,應用MVC框架和B/S架構,與ERP系統進行對接,良好地擴展了ERP系統的功能,實現了從訂單提交環節到發貨環節的無縫銜接,并為企業銷售人員提供可隨時隨地提交和管理訂單的服務。
微信公眾平臺 銷售訂單管理系統 Web開發 Enterprise Resource Planning(ERP)
傳統銷售訂單的提交和管理是通過銷售人員和銷管人員電話或網絡溝通達成的,這種方式存在很大的誤操作性,從而增加銷售數據不吻合機率,增加了企業供銷過程的難度,而且也難以對銷售人員進行業績評估。因此對于企業的銷售管理體制而言,制定一款適用于其本身的銷售訂單管理軟件是十分必要的。
考慮到銷售人員的工作性質、工作地點,銷售人員所需的功能不適合只在臺式機上使用,因此應考慮將其放置于移動終端。據統計,截至2015年12月,我國網民使用手機上網的比例已經達到了90.1%[2],移動終端已越來越普及,因此,考慮將銷售人員所需的功能開發于移動終端,而管理人員所需的功能開發于PC端。對于企業的銷售管理而言,基于微信公眾平臺的銷售訂單管理系統有著極大的開發價值。
微信公眾平臺為開發者提供了第三方開發接口,基于此平臺,企業和個人均可根據自身功能需求制定適合自身的公眾號,可開發出媒體傳播、電子商務或企業信息化管理等多種類型的第三方應用,進而實現以文字、圖片、語音、視頻、圖文消息[7]對其特定群體的管理,并可與其進行有效的互動與溝通。
基于該平臺開發銷售訂單管理系統的優勢:
(1) 可隨時隨地提供信息和服務。由于手機已成為用戶隨時隨地不可或缺的社交工具,可為銷售人員操作訂單數據帶來極大便利。同時與手機APP相比較,由于不需要下載安裝此軟件系統,即可實現APP的功能,因此用戶的體驗感更好。
(2) 庫存信息可隨時查看,并實時更新。在基于該平臺開發的系統上,用戶可隨時查看所有產品的庫存信息。除此之外,在用戶成功提交訂單之后,庫存信息也隨之更新,確保了庫存信息的時效性。
(3) 避免升級。對于手機APP來說,一旦系統功能需求變動,用戶就不得不將原來安裝的APP卸載,重新安裝升級之后的系統。而基于該平臺開發的系統所有的功能升級都在后臺完成,用戶只有在下一次打開微信公眾賬號之后才會發現功能更新,因此避免了需要用戶手動升級系統的操作。
(4) 跨平臺開發。在手機APP開發中,開發者需要考慮到系統在Android和IOS兩大平臺上的應用,同樣的功能需要在不同的架構之下分別開放。而在該平臺上,開發者應用Web開發技術,可跨平臺實現系統功能,因此無需考慮此類問題。
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.1 下訂單模塊
銷售部門人員登錄微信手機客戶端,系統自動獲取當前用戶的身份信息。用戶可選擇銷售的產品,輸入產品的數量和單價,并編輯其他產品的信息,將所有產品信息編輯完畢后,可查看即時庫存信息。若提交訂單的操作是在企業允許提交的時間范圍內,便可立即生效,否則,暫存訂單,到達允許時間時,系統自動提交該訂單。提交訂單后系統會及時更新庫存信息。同時,系統會根據相應的條件將訂單分為通過和未通過狀態,其中未通過狀態的訂單交由計劃部審批,并將已通過的訂單信息和庫存信息通過中間件更新到K3數據庫中。該模塊時序如圖6所示。

圖6 下訂單模塊時序圖
3.2 管理訂單模塊
銷售部人員點擊“管理訂單”菜單后,系統自動獲取用戶身份信息,將該用戶的歷史訂單以列表形式顯示,并允許用戶根據條件篩選查看指定訂單。系統自動根據訂單的狀態,判斷出允許用戶對該訂單進行的操作。圖7為該模塊的時序圖。

圖7 管理訂單模塊時序圖
不管訂單是在未通過或通過狀態,銷售人員或計劃部可以直接刪除,不能再對訂單進一步修改,但在訂單數據庫中保留該條記錄,以便于日后的管理統計工作;在訂單處于通過狀態下用戶可對訂單進行撤回操作,將訂單系統數據庫中訂單狀態轉換為未通過,銷售部或計劃部可以進一步對該訂單進行管理。進行刪除和撤回操作的訂單數據,均不可保留在K3系統中。用戶可對未通過的訂單進行修改,此時系統將訂單系統數據庫和K3系統數據庫同時更新,因此確保了兩個數據庫中對已通過訂單的數據保持一致。訂單的狀態轉換見圖8所示。

圖8 訂單狀態轉換圖
3.3 審核和分配訂單模塊
計劃部人員通過計算機上安裝的Web瀏覽器登錄訂單審核和分配系統。從系統需求出發,銷售人員在下訂單時,系統自動將不符合直接通過條件的訂單設置為未通過狀態,該類訂單需要計劃部人員對其進行審核。本模塊允許用戶查看即時庫存,并據此決定訂單是否可分配。對于可分配訂單,分配成功后,若訂單滿足直接通過的條件,則將訂單自動轉換為通過狀態,否則為未通過狀態。對于不可分配訂單,用戶可對其執行撤回操作,訂單轉換為已作廢狀態。與微信端模塊操作相同,在本模塊操作執行過程中,實時更新庫存信息,并同時更新訂單系統數據庫和K3系統數據庫。本模塊的設計開發可以實現計劃部人員查看即時庫存以及按篩選條件查看待分配的訂單,并對訂單進行分配,從而完成對訂單的審核操作。
對于審核通過的訂單,微信端用戶仍可以執行“撤回”操作,此時該訂單轉換為“未通過”狀態,以便于微信端用戶可進一步修改此訂單。
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 {


}
}
}
執行查詢操作時,返回多條結果:

}
本系統是在微信公眾平臺與第三方平臺基礎上,實現了遠程手機客戶端和后臺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