訂單系統設計 總體設計 1.每次下單時間少於3秒 2.庫存驗證不存在多買的情況 3.訂單能夠按照不同供應商進程拆分 4. 物流信息能夠回傳 訂單狀態機設計 1.待系統審核 2.待支付 3.待發貨 4.待簽收 5.已完成 6.訂單關閉 訂單狀態流轉如下圖示: 1)審核失敗 2)未支付(待支付24小時) ...
訂單系統設計
總體設計
1.每次下單時間少於3秒 2.庫存驗證不存在多買的情況 3.訂單能夠按照不同供應商進程拆分 4. 物流信息能夠回傳
訂單狀態機設計
1.待系統審核 2.待支付 3.待發貨 4.待簽收 5.已完成 6.訂單關閉
訂單狀態流轉如下圖示:
1)審核失敗 2)未支付(待支付24小時) 3)支付失敗 4)配送失敗 以上4種狀態為訂單關閉原因
- 在審核時有以下情況 審核失敗
1) 同一用戶在過去一個月有3次退單
2) 用戶使用貨到貨付款拒付
3) 用戶配送地址3次以上無法送達, 電話無法聯繫
4) 與配送人員衝突
5) 其他渠道黑名單
- 庫存設計
1.針對促銷商品: 這裡採用的是在付款時鎖定庫存,在支付成功時候扣減庫存,支付失敗釋放庫存。當然沒有庫存時在商品詳情頁面不能加入購物車 既能確定購買意向,又不影響其他用戶,買賣手慢無,技術也好處理功能邏輯
2.針對普通商品: 單占用庫存(O)當生成訂單時,可用庫存數量減少,訂單占用庫存(Order Occupied Inventory)數量增多,變化的數量即訂單中的產品數量,這個很容易理解:訂單的生成和庫房的發貨在時間上是非同步的。這樣做的優點在於:保證已經生成訂單的庫存,這部分客戶可以順利收貨;而且客戶在下訂單時,能夠保證有產品發貨。若不設立訂單占用庫存,則會產生客戶下訂單後,庫存發現無貨可發的尷尬情況。而處理訂單時,針對的只是已經被訂單所占用的庫存,與前臺的銷售無關。訂單出庫後,系統中扣減的也只是訂單所占用庫存
- 訂單拆分
由於在電商網站中存在多個的供應商,一張訂單時能夠包括多個供應商,因此需要按照不同的供應商進行拆單,形成子父訂單概念