天天看點

電商(一) 建立訂單業務流程一、背景二、流程三、其它相關

一、背景

商品需要調用供應商的接口來實作訂單的建立

在項目就存在兩個訂單,一個是供應商的訂單、一個是項目自身的訂單,實際就是一個訂單

二、流程

https://www.processon.com/embed/611ca4261e0853164d2e3d02

 在從使用者點選購買到使用者點選支付 ,最後成功傳回訂單号接着支付流程,失敗則復原操作

電商(一) 建立訂單業務流程一、背景二、流程三、其它相關

1、首先在商品頁的時候點選購買,就需要開始校驗庫存、金額、郵費、收貨位址等資訊。

2、沒有收貨位址的,則要重新選擇,且選擇收貨位址後,還需要調用類似剛才第一個的接口,根據選擇的位址,再次計算郵費、金額。

3、在确定訂單頁面,使用者點選購買則進入到建立訂單接口中

在分布式系統中處理訂單事務,采用Seata-tcc來進行一個事務二段式的送出\復原

建立項目訂單成功,則二段式送出修改訂單狀态,失敗則復原删除訂單

建立供應商訂單成功,則二段式送出修改訂單狀态,失敗則復原删除訂單+取消供應商訂單

建立訂單明細成功,則繼續下一步,失敗則復原删除訂單+取消供應商訂單+復原訂單明細資料

4、訂單建立成功了,則傳回訂單号,且該訂單号放入消息隊列,若幹時間沒支付後,則調用取消訂單的接口

三、其它相關

取消訂單:訂單狀态修改、取消供應商訂單,執行前注意檢查狀态,防止二次取消操作。消息隊列在執行消費時,也是調回取消訂單的接口。

訂單支付:訂單在支付成功後,則需要對庫存、商家餘額、使用者資金等進行扣除。最後成功修改訂單狀态

訂單發貨:發貨的接口通常給到供應商進行調用,接口做好幂等性處理,防止髒資料

訂單收貨:收貨通常分成自動收貨、和使用者手動收貨。像15天自動确認收貨的邏輯,這邊的處理方式是,定時任務1小時,查出一批距離收貨時間少于1小時的訂單,發到消息隊列中,使用延遲消息的方式,在1小時内消費訂單。這樣操作減少了 消息隊列的壓力,1個小時查詢一次對資料的壓力也不會太大的壓力