訂單合併付款之後,是否需要拆分支付流水?

2022-01-19 19:12:55 字數 1706 閱讀 2137

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...