一、 最主要的業務流程
1‑1購物流程
1‑2購物流程時序圖
時序圖詳解:
1、用戶開始瀏覽商品,需要有一個商品模塊來支撐,給用戶展示商品的介紹、價格等等這些信息。
2、用戶把選好的商品加入購物車,這個步驟,也需要一個購物車模塊來維護用戶購物車中的商品。
3、 用戶下單肯定需要一個訂單模塊來創建這個新訂單。訂單創建好了之后,需要把訂單中的商品從購物車中刪除掉。
4、訂單創建完成后,需要引導用戶付款,也就是發起支付流程,這里需要有一個支付模塊來實現支付功能,用戶成功完成支付之后,需要把訂單的狀態變更為“已支付”。
5、之后運營人員就可以發貨了,在系統中,發貨這個步驟,需要扣減對應商品的庫存數量,這個功能需要庫存模塊來實現,發貨完成后,還需要把訂單狀態變更為“已發貨”。
6、最后,用戶收貨之后,在系統中確認收貨,系統把訂單狀態變更為“已收貨”,流程結束。
二、 電商系統的功能模塊
2‑1電商系統功能模塊圖
1、 商品:維護和展示商品信息和價格。
2、 訂單:維護訂單信息和訂單狀態,計算訂單金額
3、 購物車:維護用戶購物車中的商品
4、 支付:負責與系統內外部的支付渠道對接,實現支付功能。
5、 庫存:維護商品的庫存數量和庫存信息。
6、 促銷:制定促銷規則,計算促銷優惠。
7、 用戶:維護系統的用戶信息,注意用戶模塊它是一個業務模塊,一般不負責用戶登錄和認證,這是兩個完全不同的功能。(這里的用戶模塊主要是維護和管理C端用戶信息的模塊,用戶數據也是業務數據,是電商的重要業務資產,所以最好不要和登錄認證的安全)
8、 賬戶:負責維護用戶的賬戶余額。
9、 搜索推薦:負責商城中,搜索商品和各種列表頁和促銷頁的組織和展示,簡單的說就是決定讓用戶優先看到哪些商品。
10、 報表:實現統計和分析功能,生成報表,給老板來做經營分析和決策使用。
三、 促銷需要提供幾個服務:
一是哪些促銷可用:輸入是一堆商品和用戶ID,促銷服務返回可用的促銷:比如滿減、優惠券之類的。
一個“算價”服務,輸入是:一堆商品和使用的一堆促銷,促銷服務需要驗證這些促銷是否都可以使用,有沒有沖突之類的,如果可用,返回的是計算完成的促銷價。
這個促銷價不僅包括使用促銷之后的總價,還要包含每個商品的“實際優惠價(不顯示給用戶)”,保證:促銷后的總價=Σ所有商品的實際優惠價。這個價格就是用完促銷之后,每個商品的實際價格,后續退貨、計算成本收益,都以這個價格為准。
這樣對於購物車和訂單來說,處理就比較簡單了,不管你促銷怎么玩兒,反正最終你告訴我用完促銷之后每個商品什么價格就可以了。促銷規則變來變去也不用去改訂單服務。
四、 超賣問題解決思路
- 用戶下單后鎖定庫存
- 每筆訂單設置有效時間,防止用戶下單但是一直不付款,導致庫存一直處於鎖定狀態。
- 發貨后減少庫存
以上三點聯合起來再出現超賣的可能性就很小了。