Java生鮮電商平臺-訂單中心服務架構與異常訂單邏輯

Java生鮮電商平臺-訂單中心服務架構與異常訂單邏輯

?

訂單架構實戰中闡述了訂單系統的重要性,并從訂單系統的信息架構和流程上對訂單系統有了總體認知,同時還穿插著一些常見的訂單業務規則和邏輯。上文寫到訂單的拆單部分時擱置了,現在接上文繼續剖析訂單中心的后臺核心業務模塊。

?

上文講完了訂單正向流程,本文從訂單逆向流程繼續一窺訂單中心全貌。

訂單正向流程相對常規,業務雖然從商品中心,物流,會員,倉庫,內容等各大模塊進行數據交互,但涉及的業務邏輯易于理解,所以難度并不大。

但在訂單逆向流程中,業務流程和邏輯則相對復雜。因為在訂單正向流程中,每一個環節都有可能觸發逆向訂單任務流;而在訂單正向任務流中,每一個子環節上的商品在后臺出庫發貨流程中所處的具體節點不一致,所以不同節點觸發的訂單逆向流程的處理規則則有差異。

訂單逆向流程

定義:訂單逆向流程是為了解決在訂單流程中出現的退貨退款的業務流程。在前端訂單狀態下,各個環節都有觸發的可能,而訂單的不同節點觸發訂單逆向流程的處理方式不同。訂單觸發訂單逆向流程,可以按照主體與客體劃分,可分為用戶端觸發和商家端觸發兩種。

用戶主動發起

1. 待付款取消訂單

說明:待付款訂單取消訂單分為兩種情況:

用戶主動取消;

超時系統自動取消,此時訂單狀態變更為已取消。

在待付款訂單狀態下,取消訂單無需客服審核。流程圖如下:

2. 待發貨取消訂單

說明:在待發貨訂單狀態下取消訂單時,此時應根據訂單此時所在的節點作出處理。

由于訂單在支付完成后,發貨單可能已經推送至WMS,甚至已經交接發貨,狀態未及時回傳更新。為避免貨款兩失,要先暫停訂單出庫,在調度中心查詢訂單是否推送至倉庫。

若尚未推送至倉庫,則停止推送至倉庫;若已經推送至倉庫,則去wms中心去攔截,攔截成功則暫停出庫。

若暫停失敗,則拒絕取消訂單申請,回復“訂單已經出庫”;

若暫停成功,取消訂單申請通過,則進入退款流程,同時通知調度中心該訂單取消。WMS訂單進入返庫流程。

3. 待收貨/交易成功退貨

說明:在用戶提交退貨申請后,需經過客服審核。審核通過則回到原有狀態,審核通過后則進入退貨流程并告知用戶退回地址及收件信息,此時進入退貨流程。系統生成退貨入庫單,當倉庫收貨后,進行退款。

在待收貨狀態下平臺設計者仍需考慮退貨是否全退的問題。當SKU全退時,原訂單則中止進入交易關閉狀態。當訂單中發生部分退貨時,原訂單的狀態不變,維持待收貨或交易成功狀態,同時退貨的部分生成交易售后訂單。剩余未退貨部分仍然允許申請售后。

注意:在訂單流程逆向流程中,涉及到財務數據的處理時 ,為了保證財務數據的真實性及可追溯性(這與會計數據的處理原則有關,具體問下會計或者財務同學),都不能直接在原訂單狀態下修改,因此在設計訂單逆向流程時應注意這一點。

轉載于:https://www.cnblogs.com/jurendage/p/11211743.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/247430.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/247430.shtml
英文地址,請注明出處:http://en.pswp.cn/news/247430.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Vuex的全面用法總結

1. vuex簡介 vuex是專門用來管理vue.js應用程序中狀態的一個插件。他的作用是將應用中的所有狀態都放在一起,集中式來管理。需要聲明的是,這里所說的狀態指的是vue組件中data里面的屬性。了解vue的同學應該是明白data是怎么回事的吧,如果不懂…

vue中通過第三方代理解決跨域問題

最近在學node,遇到了跨域的問題,來記錄下方法 首頁服務端的框架是通過express-generator 搭建起來的 npm install -g express-generator 具體接下來的細節不多說,今天主要說跨域 的問題 左側為服務端項目結構,www為可執行文件&am…

使用V-chart時配置踩過的一些坑

如何配置圖表信息 echart的配置項可謂是相當的海量,能不看就不看。而v-chart對其進行了不少的簡化,所以我們想要自定義一個圖表時,最好按照以下步驟來檢查: 圖表私有屬性 v-chart每一個圖表都有自己獨有的設置項,想…

ZDOzMRVAOq

11 轉載于:https://www.cnblogs.com/wc529065/p/11212226.html

vue 出現Elements in iteration expect to have 'v-bind:key' directives

是由于eslint檢測出現bug 解決方法有兩種 v-for 后添加 :keyitem <li v-for"item in list" :key"item"> 在build處關閉eslint檢測 ...(config.dev.useEslint ? [createLintingRule()] : []),

requestAnimationFram

window.requestAnimationFrame() 告訴瀏覽器——你希望執行一個動畫&#xff0c;并且要求瀏覽器在下次重繪之前調用指定的回調函數更新動畫。該方法需要傳入一個回調函數作為參數&#xff0c;該回調函數會在瀏覽器下一次重繪之前執行 注意&#xff1a;若你想在瀏覽器下次重繪之…

vue/return-in-computed-property Enforce that a return statement is present in computed property

此規則強制return語句在computed屬性中得完整存在。 <script> export default {computed: {/* ? GOOD */foo () {if (this.bar) {return this.baz} else {return this.baf}},bar: function () {return false},/* ? BAD */baz () {if (this.baf) {return this.baf}},ba…

vue-cli3 一直運行 /sockjs-node/info?t= 解決方案

首先 sockjs-node 是一個JavaScript庫&#xff0c;提供跨瀏覽器JavaScript的API&#xff0c;創建了一個低延遲、全雙工的瀏覽器和web服務器之間通信通道。 服務端&#xff1a;sockjs-node&#xff08;https://github.com/sockjs/sockjs-node&#xff09; 客戶端&#xff1a;so…

Java生鮮電商平臺-生鮮供應鏈(采購管理)

Java生鮮電商平臺-生鮮供應鏈(采購管理) 在生鮮供應鏈系統中采購中心這一模塊&#xff0c;它是電商公司管理采購的模塊&#xff0c;包含供應商管理&#xff0c;采購訂單管理&#xff0c;采購商品管理&#xff0c;在該模塊中采購訂單是采購中心的核心模塊。在其他的比如供應商的…

鏈式調用setTimeout()與setInterval()的區別

使用 setTimeout()和 setInterval()創建的定時器可以用于實現有趣且有用的功能。執行時機是不能保證的&#xff0c;因為在頁面的生命周期中&#xff0c;不同時間可能有其他代碼在控制 JavaScript 進程。在頁面下載完后的代碼運行、事件處理程序、Ajax 回調函數都必須使用同樣的…

Multiple Dispatch

今天在看文章的時候遇到了multiple dispatch這個術語。看看了wiki&#xff0c;寫得云里霧里。最后搜了搜資料&#xff0c;基本上搞清楚了。 multiple dispatch的混淆之處在于其和object system結合在一起。當然wiki上寫得很清楚&#xff1a;“a function or method can be dyna…

如何讓Element UI的Message消息提示每次只彈出一個

Element UI的Message消息提示是點擊一次觸發一次的。在開發的時候經常會作為一些校驗提示&#xff0c;但是公司的測試人員在進行測試時會一直點&#xff0c;然后就會出現如下圖的情況。雖然客戶使用的時候一般來說不會出現這種情況&#xff08;畢竟客戶不會閑著沒事一直點點點&…

jsp頭文件的內容/response.setHeader

轉載的&#xff01;&#xff01;&#xff01;做一個記錄!!!! response.setHeader 是用來設置返回頁面的頭 meta 信息, 使用時 response.setHeader( name, contect ); meta是用來在HTML文檔中模擬HTTP協議的響應頭報文。meta 標簽用于網頁的<head>與</head>中 1、&l…

css3實現科技感的呼吸燈效果

呼吸燈效果是一種常見的燈光效果&#xff0c;比如網頁的按鈕&#xff0c;現實生活中比如電腦的開機按鈕。 使用CSS3的animation方法可以實現很多迷人的網頁動畫特效。 使用CSS3 配合box-shadow即可實現類似的效果 樣式代碼如下 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18…

WIX(20121031) 應用設置默認變量

花了了好長時間找到的 這樣可以將變量信息定義到wxs中&#xff0c;方便應用 <?xml version"1.0" encoding"UTF-8"?> <?define ProductName"Wix CY"?> <Wix xmlns"http://schemas.microsoft.com/wix/2006/wi">&l…

百度Echarts折線圖tooltip里數據添加單位

option {title: {text: 折線圖堆疊},tooltip: {trigger: axis,//在這里設置formatter: {a0}:{c0}萬},legend: {data:[郵件營銷,聯盟廣告,視頻廣告,直接訪問,搜索引擎]},grid: {left: 3%,right: 4%,bottom: 3%,containLabel: true},toolbox: {feature: {saveAsImage: {}}},xAxi…

VUE組件 之 Drawer 抽屜

一、源碼地址 https://github.com/imxiaoer/DrawerForVue 二、效果圖 三、具體代碼 drawer.vue <template><div class"drawer"><div :class"maskClass" click"closeByMask"></div><div :class"mainClass"…

什么是基金凈值、單位凈值、累計凈值

基金知識-單位凈值和累計凈值 一投資者問&#xff1a;單位凈值和累計凈值分別指什么&#xff1f;如何通過這兩個值來評定一個基金&#xff1f; 景順長城基金管理有限公司答&#xff1a;基金資產凈值是在某一時點上&#xff0c;基金資產的總市值扣除負債后的余額&#xff0c;代表…

Java生鮮電商平臺-用戶管理的架構與實戰

Java生鮮電商平臺-用戶管理的架構與實戰 在電商后臺中&#xff0c;用戶管理是運營人員管理用戶的模塊。這里的用戶區別于運營人員&#xff0c;會在權限的角色管理中分別闡述。這里的用戶包含平臺的一般用戶&#xff0c;會員用戶等。本文將分享一下用戶管理模塊的設計心得。在設…