1、在拆單操作之後,是否需要拆分支付流水?
不需要,而且一般都是用第三方支付,支付流水你也沒得拆。
2、無論是否拆分支付流水,都會涉及到子訂單間的退款,優惠金額調整等問題,那麼此時支付流水和退款流水如何設計會比較好?
退款按退款訂單處理,那麼會產生獨立的退款流水,退款與原單只做基礎的單號關連。
———————————————————華麗的分割線—————————————————
正題:1、先說說訂單基本的設計。
訂單設計最少也會包括兩個內容,訂單資訊和商品資訊。訂單時主表,商品時從表。訂單資訊會包括訂單號、金額、購買人等等,商品會記錄訂單號、商品資訊、商品數量、商品金額等。這個是最基本的情況,具體我就不細說了。
2、再說說拆單。
所謂拆單,我們一般是指拆訂單,不是拆支付流水。乙個訂單對應多個商品,需要把其中某個商品或者某幾個商品進行分組,形成子訂單。也就是一次付款對應多個訂單的情況
什麼時候才會有拆單的需求呢?
所有的合併和拆分都是基於訂單,那麼這時候的訂單結構應該需要變成:主訂單、子訂單、商品三個表。
3、關於支付流水
現在的電商系統,支付基本都是用第三方支付,即使會用自家的支付體系(自主研發支付、積分等),也會將訂單和支付分開,收銀員只管收錢,不需要管你買的什麼東西,是在哪個櫃檯購買的,訂單和支付實際本來就是兩個業務,支付唯一影響的是訂單的付款狀態,我們應該將訂單和支付抽象,不要混在一起,所以支付不需要管具體的拆單,要拆單只需要拆訂單,而不需要拆支付流水。這就回答了第乙個問題。
好吧,現在應該都知道了,訂單流水和主訂單關聯即可。乙個支付流水對應乙個主訂單,其他和支付流水沒有必須的關係。
4、關於退款
關於退款,建議最好的方式是,生成「負」訂單。這裡的負訂單,不一定強制要求資料是「負」的,只是要求退款按照訂單的思路去處理,這樣的好處太多了。用了才知道爽。
5、最終的業務形態
使用者購買商品,形成訂單。
同乙個商家,形成乙個主訂單和乙個子訂單
n個商家,形成乙個主訂單和n個子訂單
使用者支付
修改主訂單的支付狀態
使用者退款
使用者選擇需要退款的商品,形成負訂單。訂單生成的規則和正常購買訂單的規則一樣,根據商家判斷是否形成多個子訂單。
發貨
同一倉庫同時發貨,則形成乙個發貨單
不同倉庫或者不同時間發貨,則形成多個發貨單。
發貨單需要關聯發貨的商品明細,修改商品的發貨狀態。
結算
根據訂單狀態和商家生成結算資料即可,因為你的銷售和退款都是在同乙個訂單表,那麼直接計就好了,清爽無比。
當然,以上模擬的其實是比較簡單的業務情況,實際的業務情況會更加複雜,但是整體流程都不會出現很大變化,
有時也會有遇到一些奇葩的產品經理的想法,比如:
1、根據商品拆訂單
2、強烈要求把退款獨立新的資料表存放
太多的人總是去模仿看到的系統的外表,卻沒有深入去了解別人如此設計的具體原因,看到的系統表現形式和實際的核心功能點未必就是一樣的。
sap crm 銷售訂單建立之後顯示文件正在分發
create report crm check distribution status in package crm dataexchange.title check and correct distribution status type 1 executable program status p...
聖誕之後是狂歡
聖誕節的時候接到乙個 乙個十分重要的客戶使用產品中出現了一些問題,主要是管理員在轉移sqlserver資料庫的時候造成了資料庫被覆蓋,資料全部丟失,天呀,這個聖誕節。打了乙個多小時的 嘗試了很多的辦法,終究還是失敗,原因就是客戶總是想把責任推給我們,而我當時想的是先別追究責任盡力避免損失才是更重要的...
合併兩個有序鍊錶,合併之後仍有序
合併兩個有序鍊錶,合併之後仍有序。標頭檔案引用鍊錶的一些基本操作listnode mergeorderedlist listnode list1,listnode list2 結果鍊錶為空 else 取鍊錶2的結點 else else 乙個鍊錶為空的情況 if cur1 null if cur2 n...