微商城真實案例分享

微商城真實案例分享

來自專欄 一隻追求全棧的貓

寫在前面

從來沒有寫博客的習慣,但猶豫再三最終還是開了這個專欄。一來是想鍛煉下自己的表達,畢竟每天都跟代碼和程序打交道,有時候在房間里找個鑰匙也想Ctrl+F來查找下,時間再長點,估計話都不會說了;二來也是想找個地方能把我的項(zai)目(guo)經(de)驗(keng)記錄下來,避免以後重蹈覆轍。這是我在這個專欄寫的第一篇文章,以後還會持續更新。話不多說,直接入正題吧。

最近剛忙完一個B2C的微商城項目,趁熱打鐵趕緊記錄下,不然再過段時間可能又忘了一些細節了。項目周期一個月,測試加修改將近一個半月的時間,完全從0到1。

前後端分離

項目採用前後端分離的架構方式,前後端完全通過介面通信。

項目的後端語言是Java,技術棧是:SSM(Spring+SpringMVC+MyBatis),使用Shiro做系統鑒權,採用Spring Task實現任務調度,Alibaba Druid做資料庫連接池,SLF4J和Log4J做日誌管理,並集成了一些常用的工具類,如Apache Commons、Jackson、FastJSON、XStream、Dozer、HttpClient等。

客戶端的技術棧是:React+React-Router+Bootstrap+Webpack,React實現組件化設計,React-Router完成前端路由管理,Bootstrap應用通用樣式,Webpack集成Babel實現項目構建。

核心模塊設計

  • 商品模型設計 - 商品設計主要是要弄清楚SPU和SKU的關係,除此之外,我還建議拆分前端顯示的產品分類和後端的庫存分類
  • 運費模型設計 - 運費模板是主子表的設計:主表的信息有發貨區域和計費方式(不同的計費方式對應有不同的屬性,需要的屬需要在商品模型中補充);子表的信息就是不同區域對應的配送方式、首件/重/體積、首費、續件/重/體積、續費等信息,具體細節可參考物流價格表來設計,這裡的難點是需要結合客戶選擇的收貨區域計算最終的運費
  • 訂單模型設計 - 訂單也是主子表設計,主表是總價、總數、客戶、收貨地址等信息,子表是商品明細,如果有優惠券的話,可以單獨建立一個子表和訂單關聯,表示當前訂單使用的優惠券信息。訂單設計需要注意的是,所有數據儘可能保存完整的靜態信息,訂單的信息不應該隨著商品信息或顧客信息改變而改變,它有自己的狀態和生命周期
  • 會員模型設計 - 建議採用「主體信息+擴展信息」的方式來做,主體信息只保留最基礎的信息,比如姓名、生日、身高、體重等,擴展信息可以是任何和用戶相關的數據,比如微信的授權登錄信息、支付寶授權信息、已領取的優惠券、積分歷史、收貨地址等

遇到的問題

  • 微信公眾平台配置
    • 微信管理員 - 建議一開始就讓微信管理員將自己添加為運維人員,這對於後面的開發調試都很有幫助
    • 支付授權目錄 - 微信規定只有授權目錄下的文件發起的支付請求才算合法,所以在應用部署到線上以後,需要在微信後台設置應用對應的目錄地址
    • 測試授權目錄 - 作用與支付授權目錄相同,區別只是方便在測試階段調試微信支付,在測試授權目錄下的支付請求,支付成功後會馬上到賬(可登錄商戶平台查詢)
    • 測試白名單 - 對於測試授權目錄下的訪問,只有測試白名單上的微信號才能發起微信支付
  • 微信商戶平台配置
    • 證書下載 - 只有涉及到微信商戶的金額支出時,才需要用到證書(例如退款),微信支付時並不需要證書的,因為付款總是很容易的
    • 正式環境結算周期 - 這個需要登錄商戶平台的後台查詢,支付授權目錄下發生的支付,雖然支付成功了,但要在微信規定的結算周期後才會到達商家賬戶
  • 微信授權登錄 - 建議統一處理微信的授權登錄:即在微信菜單中配置一個後端路由,不同的業務場景可以設置不同的state參數,在後端路由處理完授權登錄後,再根據不同的state跳轉到不同的頁面
  • SKU價格計算 - 這是個麻煩的地方,困擾了我幾天,也改了幾次數據表的設計,這裡的難點不是定位價格,而是根據用戶選擇的不同的參數值去定位SKU,最簡單做法其實就是每一個SKU在保存時就建立好它自己關聯的參數值,然後前端在用戶選擇完參數值後,組合成一個參數值列表,再傳遞到後端,後端通過對比的方式就可以定位到具體的SKU了
  • SKU庫存判斷 - 這也是另一個困擾點,這裡其實是在上一個步驟完成之後去做的,需要注意的地方就是,如果是用戶下單了,但是未付款,但這一部分庫存是需要保留一段時間的,我建議的做法是:下單即扣庫存,然後再寫一個後台任務,如果用戶超過一段時間(假如15分鐘)仍未付款的話,則自動取消該訂單,並重新恢復對應SKU的庫存
  • 訂單費用計算 - 這裡是個難點,需要考慮到好幾種費用:優惠金額、運費金額、折扣金額,不同等級或積分的用戶使用不同優惠券在不同時間疊加,又會產生不同的會員價、折扣價等,需要開發者自己結合業務去實現
  • 微信支付對接 - 按照文檔來對接就行,流程簡化後就是:調用統一下單的介面在微信伺服器生成預付單 -> 前端通過預付單發起支付 -> 支付成功後自動通知微信伺服器 -> 微信伺服器通過回調地址通過你的伺服器(回調地址在公眾號後台配置)
  • 微信退款對接 - 這個也是按照文檔來對接就行(如果對接不成功肯定是沒完全按照文檔來,記住和微信對接不要忽略任何一個細節,包括大小寫),提一點,這裡需要用到證書

項目體驗

  • 線上體驗:掃描以下二維碼關注公眾號後,點擊微商城即可體驗

weixin.qq.com/r/BDqrs3X (二維碼自動識別)

  • 項目截圖

寫在後面

抱歉這麼久才更新完這篇文章,看到有童鞋評論要商城源碼,這個由於合同原因,而且商城已正常上線,真的沒辦法提供,不過在開發或者設計過程中有任何問題的話,都可以隨時與我溝通,我看到的話就會回復,感謝理解。


推薦閱讀:

2018微商怎麼做
唯寶匯是個怎樣的機構?
你跟著「喜歡下雨」做微商,賺錢了么?
有贊和大眾幫手的區別?
我想知道微商後面的炒作團隊是什麼?是如何運轉經營的?微商這條關係鏈中最終獲利最大的是誰?

TAG:微商城 | 微商城系統 | 項目經驗 |