孫海濱 劉明明
(山東科技大學(xué)信息科學(xué)與工程學(xué)院 山東 青島 266590)
基于微信公眾平臺的銷售訂單管理系統(tǒng)
孫海濱 劉明明
(山東科技大學(xué)信息科學(xué)與工程學(xué)院 山東 青島 266590)
在充分調(diào)研和分析企業(yè)現(xiàn)狀的基礎(chǔ)上,針對現(xiàn)有的ERP系統(tǒng)欠缺與銷售人員交互的功能,對傳統(tǒng)銷售訂單管理系統(tǒng)模式進行分析,總結(jié)了銷售訂單管理系統(tǒng)的主要功能需求和實現(xiàn)方式。同時,綜合考慮用戶的使用場景和現(xiàn)有技術(shù),設(shè)計了基于微信公眾平臺的銷售訂單管理系統(tǒng)。在最終的系統(tǒng)實現(xiàn)中,通過使用微信公眾平臺的開放接口和Web開發(fā)技術(shù),應(yīng)用MVC框架和B/S架構(gòu),與ERP系統(tǒng)進行對接,良好地擴展了ERP系統(tǒng)的功能,實現(xiàn)了從訂單提交環(huán)節(jié)到發(fā)貨環(huán)節(jié)的無縫銜接,并為企業(yè)銷售人員提供可隨時隨地提交和管理訂單的服務(wù)。
微信公眾平臺 銷售訂單管理系統(tǒng) Web開發(fā) Enterprise Resource Planning(ERP)
傳統(tǒng)銷售訂單的提交和管理是通過銷售人員和銷管人員電話或網(wǎng)絡(luò)溝通達成的,這種方式存在很大的誤操作性,從而增加銷售數(shù)據(jù)不吻合機率,增加了企業(yè)供銷過程的難度,而且也難以對銷售人員進行業(yè)績評估。因此對于企業(yè)的銷售管理體制而言,制定一款適用于其本身的銷售訂單管理軟件是十分必要的。
考慮到銷售人員的工作性質(zhì)、工作地點,銷售人員所需的功能不適合只在臺式機上使用,因此應(yīng)考慮將其放置于移動終端。據(jù)統(tǒng)計,截至2015年12月,我國網(wǎng)民使用手機上網(wǎng)的比例已經(jīng)達到了90.1%[2],移動終端已越來越普及,因此,考慮將銷售人員所需的功能開發(fā)于移動終端,而管理人員所需的功能開發(fā)于PC端。對于企業(yè)的銷售管理而言,基于微信公眾平臺的銷售訂單管理系統(tǒng)有著極大的開發(fā)價值。
微信公眾平臺為開發(fā)者提供了第三方開發(fā)接口,基于此平臺,企業(yè)和個人均可根據(jù)自身功能需求制定適合自身的公眾號,可開發(fā)出媒體傳播、電子商務(wù)或企業(yè)信息化管理等多種類型的第三方應(yīng)用,進而實現(xiàn)以文字、圖片、語音、視頻、圖文消息[7]對其特定群體的管理,并可與其進行有效的互動與溝通。
基于該平臺開發(fā)銷售訂單管理系統(tǒng)的優(yōu)勢:
(1) 可隨時隨地提供信息和服務(wù)。由于手機已成為用戶隨時隨地不可或缺的社交工具,可為銷售人員操作訂單數(shù)據(jù)帶來極大便利。同時與手機APP相比較,由于不需要下載安裝此軟件系統(tǒng),即可實現(xiàn)APP的功能,因此用戶的體驗感更好。
(2) 庫存信息可隨時查看,并實時更新。在基于該平臺開發(fā)的系統(tǒng)上,用戶可隨時查看所有產(chǎn)品的庫存信息。除此之外,在用戶成功提交訂單之后,庫存信息也隨之更新,確保了庫存信息的時效性。
(3) 避免升級。對于手機APP來說,一旦系統(tǒng)功能需求變動,用戶就不得不將原來安裝的APP卸載,重新安裝升級之后的系統(tǒng)。而基于該平臺開發(fā)的系統(tǒng)所有的功能升級都在后臺完成,用戶只有在下一次打開微信公眾賬號之后才會發(fā)現(xiàn)功能更新,因此避免了需要用戶手動升級系統(tǒng)的操作。
(4) 跨平臺開發(fā)。在手機APP開發(fā)中,開發(fā)者需要考慮到系統(tǒng)在Android和IOS兩大平臺上的應(yīng)用,同樣的功能需要在不同的架構(gòu)之下分別開放。而在該平臺上,開發(fā)者應(yīng)用Web開發(fā)技術(shù),可跨平臺實現(xiàn)系統(tǒng)功能,因此無需考慮此類問題。
2.1 系統(tǒng)整體框架
如圖1所示,本系統(tǒng)由微信客戶端、PC客戶端、微信公眾平臺、Web服務(wù)器和K3(此處是指金蝶K3的ERP軟件,以下簡稱“K3”)系統(tǒng)五部分構(gòu)成。微信客戶端主要功能是將銷售人員的訂單信息提交到服務(wù)器,并對其已提交的訂單信息進行管理;PC客戶端主要功能是計劃部人員對訂單的分配以及審核操作;微信客戶端的展示方式是將Web頁面嵌入到微信中,通過微信公眾平臺的接口完成相應(yīng)的功能;系統(tǒng)從K3系統(tǒng)提取所需數(shù)據(jù)進行展示,并將用戶生成的訂單存入銷售訂單系統(tǒng)數(shù)據(jù)庫,然后再同步到K3數(shù)據(jù)庫。
圖1 系統(tǒng)整體框架圖
2.2 系統(tǒng)體系結(jié)構(gòu)
系統(tǒng)采用B/S三層架構(gòu),特別是JavaScript和Ajax的結(jié)合使用,使得應(yīng)用程序的數(shù)據(jù)交互性增強,從而實現(xiàn)了頁面的局部數(shù)據(jù)刷新。應(yīng)用程序部分邏輯功能和計算功能在客戶端進行處理,大大減輕了后臺服務(wù)器的計算負擔(dān)。此外,系統(tǒng)借助Apache web服務(wù)器平臺以及Microsoft SQL Server 2005數(shù)據(jù)庫平臺進行網(wǎng)站的搭建。銷售訂單管理系統(tǒng)的B/S的三層架構(gòu)如圖2所示。
表示層:為用戶提供交互式操作的界面,包括用戶的身份認證等。
業(yè)務(wù)邏輯層:該層包含事務(wù)的處理邏輯,多數(shù)在服務(wù)器端使用php語言處理,部分在瀏覽器端,使用JavaScript進行處理。其響應(yīng)表示層的業(yè)務(wù)請求,并根據(jù)該請求向數(shù)據(jù)訪問層提交或獲取數(shù)據(jù),將結(jié)果反饋給表示層。業(yè)務(wù)邏輯層在整個架構(gòu)中起到了數(shù)據(jù)交換中承上啟下的作用[9]。
數(shù)據(jù)訪問層:主要負責(zé)存取數(shù)據(jù)。本系統(tǒng)采用SQL SERVER 2005數(shù)據(jù)庫。
圖2 B/S三層架構(gòu)圖
2.3 系統(tǒng)功能
銷售訂單管理系統(tǒng)能夠?qū)崿F(xiàn)銷售部人員提交和管理訂單、計劃部人員處理訂單以及ERP系統(tǒng)的無縫銜接。該系統(tǒng)的功能實現(xiàn)框圖如圖3所示,可以分為三部分:第一部分用于查詢/存儲數(shù)據(jù)模型,包括用戶查看訂單、查看即時庫存和存儲訂單信息;第二部分用于生成訂單模型,主要包括用戶生成及管理訂單以及用來更新即時庫存的數(shù)據(jù)預(yù)處理器;第三部分用于分配訂單模型,主要包括查看待分配訂單的數(shù)據(jù)發(fā)送模塊和訂單分配操作的數(shù)據(jù)接收模塊。
圖3 系統(tǒng)功能框圖
從用戶需求、業(yè)務(wù)邏輯和微信可提供的開發(fā)接口出發(fā),銷售訂單管理系統(tǒng)可分為四大功能模塊,如圖4所示:銷售人員下訂單、查看和管理訂單、計劃部查看和分配訂單以及查看和更新即時庫存。
圖4 系統(tǒng)功能模塊圖
本系統(tǒng)可以從企業(yè)的K3系統(tǒng)提取所需數(shù)據(jù),也可以將用戶生成的訂單存入中間數(shù)據(jù)庫,并借助中間件存入K3數(shù)據(jù)庫。其原理如圖5所示。系統(tǒng)提供查看即時庫存的功能,銷售人員通過手機微信端對訂單進行批量提交,并可對其所下訂單進行管理,還可按條件篩選查看其歷史訂單。此外,為了方便管理,企業(yè)有關(guān)部門限制了訂單提交的時間,因此,系統(tǒng)還為銷售人員提供了提交訂單暫存的功能。企業(yè)的計劃部人員可以登錄電腦網(wǎng)站查看待分配的訂單,對銷售部所提交的訂單進行審批管理,并對待分配訂單進行分配。
圖5 系統(tǒng)消息接口原理圖
本系統(tǒng)數(shù)據(jù)庫中主要包含用戶信息表、訂單信息表、產(chǎn)品庫存表、產(chǎn)品生產(chǎn)廠表以及微信菜單信息表。用戶點擊微信菜單進入功能頁面后,無需登錄即可完成訂單的提交、查看和管理操作,因此在用戶信息表中需要將用戶個人微信號的唯一標(biāo)識openid和該用戶的基本信息進行綁定。此外,訂單信息表用來存放銷售訂單的具體信息,為訂單的查看、管理和分配功能提供數(shù)據(jù)支持;產(chǎn)品庫存表用來記錄每個產(chǎn)品在各個生產(chǎn)廠中的相應(yīng)庫存,便于用戶查看即時庫存;產(chǎn)品生產(chǎn)廠表用來存儲企業(yè)所有生產(chǎn)廠的具體信息,為訂單分配功能提供生產(chǎn)廠信息;而微信菜單表則是用來存儲微信菜單的名稱及功能頁面鏈接等信息,便于實現(xiàn)微信菜單的顯示和管理功能。
3.1 下訂單模塊
銷售部門人員登錄微信手機客戶端,系統(tǒng)自動獲取當(dāng)前用戶的身份信息。用戶可選擇銷售的產(chǎn)品,輸入產(chǎn)品的數(shù)量和單價,并編輯其他產(chǎn)品的信息,將所有產(chǎn)品信息編輯完畢后,可查看即時庫存信息。若提交訂單的操作是在企業(yè)允許提交的時間范圍內(nèi),便可立即生效,否則,暫存訂單,到達允許時間時,系統(tǒng)自動提交該訂單。提交訂單后系統(tǒng)會及時更新庫存信息。同時,系統(tǒng)會根據(jù)相應(yīng)的條件將訂單分為通過和未通過狀態(tài),其中未通過狀態(tài)的訂單交由計劃部審批,并將已通過的訂單信息和庫存信息通過中間件更新到K3數(shù)據(jù)庫中。該模塊時序如圖6所示。
圖6 下訂單模塊時序圖
3.2 管理訂單模塊
銷售部人員點擊“管理訂單”菜單后,系統(tǒng)自動獲取用戶身份信息,將該用戶的歷史訂單以列表形式顯示,并允許用戶根據(jù)條件篩選查看指定訂單。系統(tǒng)自動根據(jù)訂單的狀態(tài),判斷出允許用戶對該訂單進行的操作。圖7為該模塊的時序圖。
圖7 管理訂單模塊時序圖
不管訂單是在未通過或通過狀態(tài),銷售人員或計劃部可以直接刪除,不能再對訂單進一步修改,但在訂單數(shù)據(jù)庫中保留該條記錄,以便于日后的管理統(tǒng)計工作;在訂單處于通過狀態(tài)下用戶可對訂單進行撤回操作,將訂單系統(tǒng)數(shù)據(jù)庫中訂單狀態(tài)轉(zhuǎn)換為未通過,銷售部或計劃部可以進一步對該訂單進行管理。進行刪除和撤回操作的訂單數(shù)據(jù),均不可保留在K3系統(tǒng)中。用戶可對未通過的訂單進行修改,此時系統(tǒng)將訂單系統(tǒng)數(shù)據(jù)庫和K3系統(tǒng)數(shù)據(jù)庫同時更新,因此確保了兩個數(shù)據(jù)庫中對已通過訂單的數(shù)據(jù)保持一致。訂單的狀態(tài)轉(zhuǎn)換見圖8所示。
圖8 訂單狀態(tài)轉(zhuǎn)換圖
3.3 審核和分配訂單模塊
計劃部人員通過計算機上安裝的Web瀏覽器登錄訂單審核和分配系統(tǒng)。從系統(tǒng)需求出發(fā),銷售人員在下訂單時,系統(tǒng)自動將不符合直接通過條件的訂單設(shè)置為未通過狀態(tài),該類訂單需要計劃部人員對其進行審核。本模塊允許用戶查看即時庫存,并據(jù)此決定訂單是否可分配。對于可分配訂單,分配成功后,若訂單滿足直接通過的條件,則將訂單自動轉(zhuǎn)換為通過狀態(tài),否則為未通過狀態(tài)。對于不可分配訂單,用戶可對其執(zhí)行撤回操作,訂單轉(zhuǎn)換為已作廢狀態(tài)。與微信端模塊操作相同,在本模塊操作執(zhí)行過程中,實時更新庫存信息,并同時更新訂單系統(tǒng)數(shù)據(jù)庫和K3系統(tǒng)數(shù)據(jù)庫。本模塊的設(shè)計開發(fā)可以實現(xiàn)計劃部人員查看即時庫存以及按篩選條件查看待分配的訂單,并對訂單進行分配,從而完成對訂單的審核操作。
對于審核通過的訂單,微信端用戶仍可以執(zhí)行“撤回”操作,此時該訂單轉(zhuǎn)換為“未通過”狀態(tài),以便于微信端用戶可進一步修改此訂單。
4.1 微信第三方服務(wù)平臺驗證
由于本系統(tǒng)主要是基于微信平臺并接入第三方服務(wù)平臺的設(shè)計開發(fā),因此需要開發(fā)者對微信平臺進行配置。在提交配置信息時,微信服務(wù)器向填寫的第三方服務(wù)器的URL上發(fā)送帶參數(shù)的GET請求,其參數(shù)[1]如表1所示。該過程用于微信平臺對待接入的服務(wù)器的驗證,以確保該服務(wù)器地址的有效性。
表1 驗證操作GET請求參數(shù)表
在服務(wù)器的token驗證過程中,首先,將開發(fā)者自定義的token與請求參數(shù)timestamp、nonce按字典序進行排序[1];然后,將以上三個字符串拼接成一個字符串并對其進行sha1加密;最后,將加密后得到的字符串與signature參數(shù)比較,若成功,標(biāo)識請求來源于微信,服務(wù)器token驗證通過。
關(guān)鍵代碼如下所示:
//字典排序
//拼接成一個字符串
//進行sha1加密
//對比
return true;
} else {
return false;
}
4.2 基于微信的用戶身份獲取
用戶在微信客戶端訪問本系統(tǒng)中的網(wǎng)頁,系統(tǒng)可以通過網(wǎng)頁授權(quán)機制,獲取用戶的微信openid,并將其與用戶的編號等個人信息綁定,實現(xiàn)用戶進入系統(tǒng)時,自動識別身份信息功能。
本系統(tǒng)采用靜態(tài)網(wǎng)頁授權(quán)機制,該機制是以snsapi_base為scope發(fā)起網(wǎng)頁授權(quán),授權(quán)成功后自動跳轉(zhuǎn)到業(yè)務(wù)頁面。
靜態(tài)網(wǎng)頁授權(quán)的過程[1]分為兩步:
一個完善的制度體系可以給管理者們起到良好的輔助作用,更可以讓員工約束其自身,促進工程進度,打消員工消極怠工的狀態(tài),增強團隊的管理體系,完善制度從以下幾方面入手:
第一步:用戶進入授權(quán)頁面同意授權(quán),獲取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為系統(tǒng)的業(yè)務(wù)頁面。
第二步:通過code獲取用戶的openid。
獲取code后,將code值代替以下鏈接中的authorization_code;并通過curl技術(shù)抓取網(wǎng)頁返回的openid數(shù)據(jù)。
https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
4.3 微信自定義菜單創(chuàng)建
微信公眾平臺規(guī)定,自定義菜單接口[1]可實現(xiàn)click、view等多種類型的功能按鈕。其中click類型的按鈕主要用于自動回復(fù)功能,view類型的按鈕主要用于接入第三方平臺的功能頁面,并可調(diào)用微信的網(wǎng)頁授權(quán)接口,以自動獲取當(dāng)前用戶身份信息。在銷售訂單管理系統(tǒng)中,微信端有三大功能:下訂單、管理訂單和查看即時庫存,其中查看即時庫存功能需要嵌入到另兩個模塊中,且用戶在進入功能頁面時,系統(tǒng)需自動識別用戶信息。因此,可創(chuàng)建兩個view類型的一級菜單。
自定義菜單接口:
https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN
接口請求方式:POST
在銷售訂單管理系統(tǒng)中,該接口所需的請求參數(shù)說明如表2所示。
表2 系統(tǒng)所需的自定義菜單接口請求參數(shù)說明
4.4 頁面異步加載
在開發(fā)中使用Ajax技術(shù)進行瀏覽器和服務(wù)器間數(shù)據(jù)的異步傳輸,實現(xiàn)頁面的刷新效果,增強頁面的交互性。以用戶刪除訂單的操作為例,操作成功后,數(shù)據(jù)庫中該條記錄刪除的同時,HTML頁面部分移除一條記錄的顯示部分,而無需重載整個頁面,關(guān)鍵代碼示例如下:
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 數(shù)據(jù)庫接口類
本系統(tǒng)在開發(fā)過程中會多次進行數(shù)據(jù)庫的連接、數(shù)據(jù)庫表格的增刪改查等多種操作,因此在系統(tǒng)中創(chuàng)建一個數(shù)據(jù)庫操作類庫,提高代碼的重用性。
編寫數(shù)據(jù)庫構(gòu)造函數(shù),在以后的使用過程中,每實例化一次對象都會自動調(diào)用該函數(shù):
array(″Database″=>″pro″,″CharacterSet″=>″UTF-8″)) {
//實例化時即連接數(shù)據(jù)庫
}
連接數(shù)據(jù)庫并獲取連接對象:
private function connect() {
(print_r( sqlsrv_errors(), true) );
//統(tǒng)一utf8編碼格式
}
執(zhí)行SQL語句:
}
}
返回所需數(shù)據(jù)或狀態(tài):
//抓取sql語句類型
//執(zhí)行sql語句
} else {
}
}
}
執(zhí)行查詢操作時,返回多條結(jié)果:
}
本系統(tǒng)是在微信公眾平臺與第三方平臺基礎(chǔ)上,實現(xiàn)了遠程手機客戶端和后臺Web系統(tǒng)功能的結(jié)合,為銷售人員下單和計劃部人員分配訂單提供便利,并允許銷售人員對其訂單實時跟蹤,使得企業(yè)的銷售人員下訂單的效率更高,也有利于企業(yè)對銷售人員的業(yè)務(wù)評估。系統(tǒng)通過中間件與企業(yè)現(xiàn)有的ERP系統(tǒng)相關(guān)聯(lián),將業(yè)務(wù)員下訂單、計劃部分配訂單以及銷管人員通過K3系統(tǒng)查看訂單、根據(jù)訂單發(fā)貨等工作流程無縫銜接,良好地擴展了K3系統(tǒng)的功能,極大地提升了企業(yè)運轉(zhuǎn)效率。該系統(tǒng)在某公司實施后,運行良好,完成了項目初期的需求。在以后的開發(fā)中,還可加入對銷售訂單數(shù)據(jù)的統(tǒng)計預(yù)測功能,以及對訂單的自動分配功能,進一步挖掘訂單數(shù)據(jù)的價值。
[1] 騰訊. 微信公眾平臺開發(fā)者文檔[EB/OL]. http://mp.weixin.qq.com/wiki/home/index.html.
[2] 中國互聯(lián)網(wǎng)絡(luò)信息中心. 第37次中國互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計報告[J]. 互聯(lián)網(wǎng)天地, 2016(1): 37-49.
[3] 王華琦. K3系統(tǒng)在企業(yè)管理領(lǐng)域的實施及功能分析[J].現(xiàn)代經(jīng)濟信息, 2010(20): 49-50.
[4] 曹美玉. 訂單管理系統(tǒng)的設(shè)計與實現(xiàn)外貿(mào)[D].山東大學(xué)軟件學(xué)院, 2013.
[5] 馬會玲. 訂單管理系統(tǒng)的設(shè)計與實現(xiàn)基于有限狀態(tài)機的印刷[D].北京印刷學(xué)院, 2014.
[6] 劉哲, 姜玲杰. 基于ERP的汽車生產(chǎn)企業(yè)訂單管理系統(tǒng)的設(shè)計與實現(xiàn)[J]. 物流技術(shù), 2015(9): 259-261.
[7] Wikipedia. WeChat[EB/OL].[2014-08-20].https://en.wikipedia.org/wiki/WeChat#cite_note-8.
[8] 王正, 陸余良, 劉金紅. 基于AJAX技術(shù)的Web服務(wù)架構(gòu)及其安全性研究[J]. 計算機應(yīng)用與軟件, 2011, 28(3): 296-299.
[9] 任廣震, 侯進, 王獻. MVC模式在B/S結(jié)構(gòu)政務(wù)系統(tǒng)的應(yīng)用研究[J].計算機應(yīng)用與軟件, 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。孫海濱,副教授,主研領(lǐng)域:嵌入式系統(tǒng),流媒體技術(shù),物聯(lián)網(wǎng)技術(shù),智能家居等。劉明明,碩士。
TP31
A
10.3969/j.issn.1000-386x.2017.05.019