隨着微信小程序不斷髮展壯大,傳統的 CRM 廠商也在不斷向微信上遷移,畢竟微信的背後是巨大的用戶和流量,還有極其方便的移動支付渠道。用微信小程序來作CRM,和之前的作法存在一些比較明顯的差別,主要包括這幾個方面:用戶的使用習慣不一樣、技術上的實現方式不一樣、運營方面的作法不一樣,因此,業內給這一類的 CRM 應用起了個新名字,叫作 Social CRM,簡稱 SCRM。前端
本期騰訊雲大學大咖分享邀請大漠窮秋 老師,將會爲你們介紹基於微信小程序的SCRM,帶你們深刻理解SCRM的發展和應用場景,並進行社交化客戶管理小程序的實戰教學,上手實際寫一個SCRM小程序,完整覆蓋小程序+雲開發的完整流程。git
本次分享內容:程序員
一、概要介紹小程序雲開發
二、SCRM的商業理解
三、界面設計-定義產品功能
四、雲端-定義數據結構和雲函數
五、開始寫代碼實現界面和功能
小程序雲開發是經典的serverless的實現,小程序端提供了完善的組件庫和開發工具,開發者能夠聚焦本身的業務實現。雲端提供了基於MongoDB的數據庫、對象存儲和雲函數,以及運維工具等功能。這樣一來,整個開發、部署、運維就能夠所有一站式完成,藉助於微信和騰訊雲強大的功能幫咱們節省了大量的時間,節省了大量的錢,這就是它的本質。雲端有運營分析的界面,當一款小程序上線以後就能夠在運營分析界面上看到用戶量和資源使用的狀況,包括監控的圖表均可以看到。github
小程序雲開發能力簡介數據庫
如何使用雲開發json
首先在開發工具中新建項目時選擇後端服務爲小程序雲開發,便可快速生成雲開發的項目模板,在界面的左上角點擊雲開發按鈕,就可直接調轉到環境建立的界面,添加環境名稱,等待部署完成後就能夠在開發工具中調用雲開發。canvas
小程序雲開發的無服務開發模式,助力快速上線小程序。對比傳統開發和雲開發模式,傳統開發模式下須要考慮彈性伸縮、異地容災、網絡防禦等,還需完成本身的業務邏輯,而在雲開發模式下,這些須要考慮的東西統統由騰訊雲基礎服務處理了,開發者只須要考慮本身的業務邏輯,大大下降了工做量。小程序
這款小程序的名字是「客流」,本質上就是SCRM(Social CRM)。後端
先理解一下什麼是SCRM?你們已經比較瞭解CRM系統的概念和背景,截一張Wikipedia上面的完整定義給你們看一下:微信小程序
CRM系統在傳統企業裏面用的很是多,好比:電商、金融、餐飲、教育、電信、醫療……。全部巨頭企業都有本身定製版的CRM系統,由於他們客戶量很是大。好比說典型的電信業,像中國移動、中國聯通他們全國都有幾個億客戶,這些客戶的資料,客戶的關係都須要大型的CRM系統進行維護。
CRM是一個很大的概念,這種系統通常會有不少功能,好比說sales、marketing、customer、employee support等等,下面是大概的結構圖。
有人會問,既然咱們在桌面端已經有了這麼龐大的CRM系統,爲何如今要向微信小程序上作遷移呢?典型的幾個緣由以下:
全部的傳統的巨頭他們都會開發本身專用的CRM系統,他們會投入大量的金錢和人力。好比說電力、電信、金融、交通這些領域,無論是國內仍是國外,都是這樣的。
可是,除了這些巨頭以外,咱們平常生活裏面不少的小生意,作小生意的小老闆、小店也須要維護本身的客戶關係,比方說:
很明顯,這些小生意,小老闆不可能本身開發小程序,也不可能招幾個程序員投十萬二十萬來開發一個CRM系統,這是不可能的。那麼,這些小店、小老闆是怎麼維護本身的客戶關係的呢?看下圖,因此在這種場景之下,SCRM的概念就變得更加劇要,咱們須要更加普惠的SaaS實現,讓海量的作小生意的老闆也能維護、管理本身的客戶關係。同時,咱們還可讓這些小老闆能夠藉助微信龐大的社交關係來進行營銷,從而提高本身的營業額。
可是,SCRM小程序跟傳統的CRM系統仍是有很大區別的:
目前市面上還有一些同類產品,咱們來作一下簡單的對比。好比說微信的企業版、還有釘釘,他們也在推SCRM的功能。可是,咱們在微信上用小程序來實現SCRM會更加輕、更加薄,傳播性更好,跟用戶也更貼近。咱們不須要讓用戶安裝獨立的APP,打開微信就能夠直接使用。
用草圖繪製工具來畫一下小程序須要實現的功能,首頁要放一個名片告訴你們我是誰,我有什麼店,個人聯繫方式是什麼。詳情頁上面放一些圖文介紹,甚至放一些視頻,用來告訴別人我有一些什麼樣的產品和服務,它們是什麼樣子。
還有基本的客戶關係的維護、溝通交流的渠道,好比說能夠跟客戶發消息、打電話等等場景。同時還能夠有一些圖表統計界面,告訴我如今有多少客戶,我和客戶之間的關係是一種什麼樣的結構。下面這些是設計草圖,咱們沒有辦法拿到很詳細地人際關係鏈,人際關係鏈是微信的核心資產,咱們最多拿到一些子圖(Subgraph)。大概一共有30個頁面須要實現,獲得界面以後就能夠來定義雲端的數據結構和雲函數了。
在微信開發者工具裏面點雲開發按鈕就能夠打開雲開發相關的界面,咱們在數據庫頁面上能夠定義數據結構。
小程序的數據庫背後其實是MongoDB,「客流」這個小程序一共定義了7個集合,集合的概念相似於關係性數據庫裏的一張表,咱們全部的數據都放在不一樣的集合裏。
可是,NoSQL裏面的集合跟傳統關係型數據庫有不少不同的地方。除了剛纔有人問的事務問題以外,實際開發過程當中還有一些比較麻煩的地方。好比,多個集合的關聯查詢寫起來比較噁心,沒有傳統的SQL語句那麼方便。
對象存儲這塊能夠創建不一樣的目錄,用來放不一樣的上傳文件,根據不一樣的業務模塊建一些文件夾,把同一個業務模塊相關的文件都放在對應的目錄裏面。
雲函數用來定義雲端調用的方法,提供了定時器之類的工具函數。咱們能夠利用雲函數來實現不少業務功能,好比說定時把數據庫裏面某些用來作統計的集合生成數據。
一共定義了7個集合,分別解釋以下:
首先註冊號雲開發appid,若是註冊好了就跟着我一塊兒嘗試作一個界面出來,若是尚未的話就聽我解釋代碼裏面比較關鍵的點。
開發過程當中有坑的話,我會把一些坑解釋一下,實際上我踩了不少坑。
如下是開發過程當中的一些注意點和小坑,給你們解釋一下:
小程序起名字是有講究的,有自動校驗的,好比說你起一個很奇怪的名字或者上傳很奇怪的logo是確定審覈不經過,因此要預先準備好。
走完註冊過程以後會拿到一個很關鍵的較appid,它是惟一的,有了appid以後就能夠建立小程序了。
建立完以後會自動生成一個默認的界面,還會生成一些代碼,這些都是默認的,你在開發的時候確定是要把它刪掉的,刪掉以後會獲得一個比較乾淨的項目結構。
你不必定要在微信開發者工具裏寫代碼,由於這個開發者工具雖然集成了不少功能,部署、版本管理均可以在這裏面完成,可是寫代碼的能力實在太差了。好比說沒有智能提示,而後也沒有插件。因此,推薦你們仍是用VS Code去寫代碼,在VS Code裏面打開小程序項目的根目錄就能夠了。
minprogram會裏面放三個字目錄,assets裏面放一些靜態資源,pages目錄裏面放頁面,components裏面放組件,這是一個經典的目錄劃分方式。
WeUI提供哪些功能?
你能夠訪問一下他們的官方網站,裏面有一個體驗版的小程序能夠掃描看一下。它把基礎的表單、導航條、基礎的grid都提供給你了,這些代碼能夠直接抄過去使用,不用本身寫這些結構。另外,它還定義了層級規範,告訴你應該怎麼組織界面的層次結構,這些都是很好的功能。
除了WeUI以外,在小程序文檔上面還能夠找到內置的組件。小程序內置了不少內部的組件,好比說圖表、文本,這是已有的組件庫。
咱們在全局的app.wxss裏面引入WeUI相關的樣式。這些樣式文件的後綴都是wxss,其實是CSS的子集,並不能支持全部的CSS規範。你們注意wxml和wxss雖然他們都支持基本的HTML和CSS的語法,但並非全集,因此在寫的時候仍是有一些坑的,要特別翻閱一下官方的文檔。
若是你不想用這個方式,能夠把整個應用指向index,而後在index裏面用其它佈局模式來構建頁面,就像你開發其它WEB應用那樣。
咱們主要功能是首頁、用戶之間的關係還有統計數據的圖表和圖形,最後是用戶本身全局的設置頁。
我在index.wxss裏面就可使用微信所提供的基本的視圖的標籤來寫個人結構,這個是微信裏面小程序所提供的頂級的器類,能夠類比與DIA,它也能夠寫glass,這些語法你們都比較熟悉就很少說了。
這些結構均可以逐層嵌套,咱們再看怎麼定義組件。
組件只能定義在components目錄裏面,我能夠定義一個可複用的card-default組件。請注意,定義組件和定義頁面的方式是不同的,組件裏面聲明的類型是component而不是用page,在微信小程序這裏是嚴格區分開的,跟其它前端框架不同。
page自己是不能互相嵌套和複用,若是某個界面須要複用,必須定義成組件。
得到組件以後能夠用組件名稱做爲標籤使用,同時也能夠給組件傳遞參數。好比說組件裏面能夠定義一些須要接收的參數,這個能夠定義在component,若是你是(reart)的開發者,別人能夠給傳參數給它,參數能夠傳各類各樣的類型,就是傳一個大對象給它也是OK的。date均可以放在wxml文件裏面取值都沒有問題,這是組件的定義方式。有了以後就能夠裝出一大堆適合你的組件,能夠複用的組件。
給你們一個神器叫iconfont,https://www.iconfont.cn ,這裏面全部的平常能想到的圖標都有,好比說交易、朋友圈所有都有。固然也能夠選擇fontawesome,但fontawesome在微信小程序裏面用起來有點麻煩,主要是字體文件的嵌入問題。我嘗試了一下,沒有成功,若是你有興趣,能夠本身嘗試一番。
在WEB開發裏面,咱們有Echarts這個神器,在小程序這塊,有一個ec-canvas,它是基於Echarts封裝的。ec-cavas專門針對微信小程序作了封裝,因此請使用它。
在關係頁面上只要用wx.cloud.database就能夠拿到db對象,整個過程和之前操做關係的數據庫仍是比較相似的。在操做關係數據庫的時候通常會拿一個connection對象,而後就能夠用SQL進行數據庫操做,作完這些操做以後能夠提交事務或者回滾。
在雲開發這裏,你須要拿到一個db對象,而後利用db對象所提供的API進行數據庫操做。你要搜索哪一個集合,你告訴它集合的名稱。下面的語法很好了解,提供一個where條件,限定取多少行,也能夠orderby,提供這些語法以後就能夠get到數據,提交一些函數若是成功怎麼樣,失敗怎麼樣。這是操做數據庫的方式。
操做雲函數的方式也是相似的,它有對應的API,只要調用就好了。
接下來給你們看最終完成的代碼,我提交了兩份,在github和gitee上面都提了一份,我把路徑發給大家,若是有興趣能夠本身下載下來繼續研究。
注意,千萬不要用個人appid。
雲端的數據結構也給大家,這樣大家就能夠在本地把項目建立起來了。
這個小程序的主體框架已經都實現了,總共有31個界面,總共花了4個完整的工做日,後面我找時間把它所有作好而後上線。
源代碼已經提交到GitHub和Gitee上:
爲了給廣大開發者提供最實用、最熱門前沿、最乾貨的視頻教程,請讓咱們聽到你的須要,感謝您的時間!點擊填寫 問卷
rm)
爲了給廣大開發者提供最實用、最熱門前沿、最乾貨的視頻教程,請讓咱們聽到你的須要,感謝您的時間!點擊填寫 問卷
騰訊雲大學是騰訊雲旗下面向雲生態用戶的一站式學習成長平臺。騰訊雲大學大咖分享每週邀請內部技術大咖,爲你提供免費、專業、行業最新技術動態分享。