引言:說點好玩的,電商后臺訂單系統的設計需要先了解到供應鏈是什么,套用業內最常用的一句話:
供應鏈是指產品生產和流通過程中所涉及的原材料供應商、生產商、分銷商、零售商以及最終消費者等成員通過與上游、下游成員的連接 (linkage) 組成的網絡結構。也即是由物料獲取、物料加工、并將成品送到用戶手中這一過程所涉及的企業和企業部門組成的一個網絡。 ---文章引用自MBA智庫
從整個供應鏈的定義來看,不同行業上下游關系等大不相同,故而在實際的設計中針對于不同行業,不同角色,不同企業,設置相同企業所屬的業務階段不同,也可能進行簡化和復雜化。
而整個平臺型的交易流程,和自營的差異點在于,無需處理原材料供應商,生產商,分銷商等之間的關系;僅需要做的是處理電商平臺和零售商以及最終消費者的上下游鏈接關系。
而交易系統在整個電商行為中,核心要承載的就是整個交易行為過程中,整個供應鏈四個流程的業務協調,從而從后臺達到:1)高效率;2)低成本;的滿足用戶需求和企業利潤的作用。平臺型的更多的是關注外部對用戶的效率和體驗;而內部更多的是追求對外用戶效率和對內供應鏈相應速度及時性在各方成本方面的均衡,追求盡可能滿足用戶體驗的情況下獲取最大的利潤。
01.交易系統設計要素和原理
基本原理
定位:承載用戶的交易處理行為和后續的交易數據服務;
供應鏈基礎流程:信息流,資金流,物流
系統流程:信息流:由資金流和物流決定的信息流轉;
核心設計要素
1)訂單狀態建模:狀態機引擎設計:訂單如何流轉,一般為交易系統的靈魂;一般會分為基礎版本和升級玩法版本;并且不同行業,不同業務形態均不相同。以實物電商為例:基礎玩法,一般根據先貨后款或者先款后貨兩類;升級玩法也就是業務和基礎交易流的融合,一般體現為 營銷玩法:如:拼團,預售等不同的玩法;
2)訂單結構建模:承載訂單上需要記錄的信息并結構化信息,不同行業可能會存在不同,針對于玩法類訂單類型的,在基礎分類的訂單結構的基礎上,需要新引入業務相關信息;
其他:訂單狀態建模或者結構建模由于業務驅動點不同,故而引發出訂單類型的概念,訂單類型的分類標準各企業均不相同,不過以訂單建模不同而分類較為常見,如:貨到付款訂單,先款后貨訂單,預售訂單,拼團訂單之類;
02.交易系統設計
由于整個交易體系博大精深,我們僅以實物電商的先款后貨來探討此處的設計方法;
交易系統狀態設計
交易狀態流轉設計三要素:信息流,物流,資金流;大多數交易系統狀態建模是針對于該三種狀態的體現。
設計兩大實體:狀態,角色;
狀態:是交易行為的在不同角色的不同操作下流轉的行為結果,不同的狀態下,訂單的各信息不同。
角色:針對于訂單可進行操作的主體。以平臺側為例:分為:商家,平臺運營,系統,客人;
動作:動作是由角色觸發,引起訂單狀態變化的誘因,同時不同的狀態下又根據定位不同導致角色支持的操作不同。
此處以實物電商的正向交易系統流程設計為例:我們舉例如下;
簡化版交易流說明圖
每一種狀態的之間的流轉均由一系列的動作觸發,而不同的動作則是在不同的狀態由不同的角色觸發,以實物電商平臺側舉例如下:
影響狀態類操作
實際的訂單流程中,平臺不同,則流程權限各不相同,除影響訂單狀態的操作外,還有很多雖然不影響訂單狀態,但實際上很重要的操作,此處不再展開;
交易系統結構建模設計
所謂訂單的結構設計,主要指的是訂單記錄的信息,在不同狀態下,訂單的結構字段對應的取值等各信息不相同。
初步整理如下:
交易系統服務方說明
交易系統服務方一般來講分為兩類:業務處理服務方;數據服務方;
業務處理服務方:和交易流程完成相關的服務方,如前端用戶端,后端供應鏈,商戶系統,運營系統。一般更多的是同步處理,時效性要求強。
數據服務方:和交易流程不強相關的系統服務方,如CRM,BI,風控,結算等后置數據處理方。一般更多的是異步處理,時效性要求弱。
針對于前者,更多的是業務流程渠道處理觸發,針對于后者,更多是不同緯度交易數據的聚合提供數據服務,前者需對業務了解深入,避免入坑,后者需提前考慮可能需要的緯度,適當預留收集信息。
寫在最后:由于交易系統是供應鏈關系的反饋,而各家供應鏈各不相同,故而在細節側遵循過多的設計規范,因地制宜即可。不一定為了引入更好的規范而引入更好的設計,沒有最好的設計,只有在當期和稍微可見的短期最適合企業的設計。