Java生鮮電商平台-訂單配送模塊的架構與設計


Java生鮮電商平台-訂單配送模塊的架構與設計

 

生鮮電商系統最終的目的還是用戶下單支付購買,

所以訂單管理系統是電商系統中最為復雜的系統,其作為中樞決定着整個商城的運轉,

本文將對於生鮮類電商平台的訂單設計做一個完整的分析,也對前階段工作做一個復盤總結

 
 

訂單系統設計的好壞,決定了平台的可用性、后期的功能拓展和商城價值;訂單系統貫穿於整個商城系統,其他各個系統的設計也是為訂單系統提供數據支撐。從用戶提交訂單的那一刻到訂單完成,到售后,都需要訂單管理系統來管理。

訂單管理系統從流程生成過程,大致分為三部分:

1.階段一、訂單生成過程:用戶通過平台選擇商品,選擇添加至購物車(某些平台下單過程無加入購物車流程),生成訂單價格,提交訂單,后台根據優惠信息、活動信息、會員價等生成訂單金額,一般具體到每個商品訂單實付金額。

2.階段二、訂單配送過程:用戶支付完成,從倉儲發貨、配送、用戶收貨后訂單完成,如無提起售后流程,一般訂單到此就算完成,正常的訂單到階段二流程即結束了。

3.階段三、訂單異常、售后流程:用戶在前兩個階段過程中發起支付取消、提起商品售后流程,一般在訂單商品配送過程中是不允許用戶發起退款,等用戶收到貨物后才可發起售后,對於生鮮類平台,可能不會做退貨的功能。

一、訂單生成過程

首先,是用戶在商城內選購商品,這個階段可以叫做用戶購物行為。

然后,是系統調取各個系統的數據,計算訂單的最終價格,這個階段可以叫做數據處理過程。

最后,是將訂單價格在用戶端顯示,這個階段叫做表現層顯示。

 
訂單數據流程

1、訂單提交生成過程

用戶下單后系統需要生成訂單,生成訂單過程需獲取商品信息,商品是否涉及相關優惠活動;獲取用戶會員信息(由於小程序做了付費會員,付費會員與普通會員購物部分商品有不同優惠力度和商品價格差異)。

用戶提交商品訂單時需要考慮商品庫存問題:1.用戶提交訂單時鎖定商品庫存,即下單減庫存。2.用戶付款后鎖定商品庫存。何時鎖定商品庫存得看具體情況,個人感覺下單鎖庫存在商品庫存不多,商品暢銷情況下用戶體驗更好,避免在用戶支付完成后商家無庫存發貨。由於社區生鮮類商品,貨損較嚴重,所以設計為用戶付款后鎖定庫存。

2、支付訂單后是否需要拆單/合單

訂單拆單:客戶同時在多家店鋪下單,不同的店鋪的商品在正常情況下是要拆開的;自營平台商品的訂單是否需要拆單根據發貨倉是否相同,發貨倉不同,也是需要根據商品發貨單進行拆單。總之同一個訂單,會有多個包裹多個運單發貨,就需要將訂單查看。

訂單合單:同一個用戶不同訂單需要考慮是否合單發貨,需根據實際情況而定,訂單合單后,多個訂單生成一個發貨單發貨。

3、訂單商品優惠分攤

1. 為什么要對訂單金額進行分攤?

首要因素是退款,在訂單付款成功之后,如果不針對單個商品進行金額分攤,那么如果用戶需要退訂單中的部分商品,沒法計算需要退的金額。同樣如果只是單一商品品類券,則根據符合優惠券使用條件的商品進行分攤,其他商品按照商品售賣價格。

財務對賬:將優惠金額分攤到每個商品上,能核算統一訂單下的每個商品分別分攤的優惠金額,比如:平台券,一個使用平台券的訂單最終需要計算每個商品分攤的優惠金額,以確定每個商品的實際付款金額和享受平台優惠的金額。

核算成本:通過把優惠金額分攤到每個商品上去,運營,財務或采購人員可以評估營銷活動的成本。

2. 優惠金額分攤邏輯

按照最小維度進行分攤:即優惠金額需要分攤到每個商品,且同一個商品采購數量大於1時,該商品最終只能有一個分攤后的價格

優惠分攤比例:按照商品金額分攤對應比例的優惠,保證不同商品享受優惠的公平性,否則會出現商品應分攤的優惠大於商品的銷售價或影響用戶體驗。

誤差處理:減小誤差主要途徑是在算法層面上進行優化,同時也無法避免誤差,多余的誤差需要按照不同的優惠活動分別存儲起來,在財務對賬和退款的時候需要用到。

這里必須提一下,這里訂單商品優惠分攤的前提是訂單中商品符合優惠條件,訂單中不符合優惠條件的商品不參與優惠分攤。

二、訂單配送過程

用戶在下單完成后,限制了用戶退款訂單狀態,只允許用戶在訂單狀態為:待發貨和配送完成狀態下才可以申請退款。支付完成后訂單發貨狀態共分為:待發貨、分揀中、配送中、商品到達代收點、配送完成、用戶已取貨這幾個狀態。

 
訂單生成配送過程

1、針對有缺貨/無貨情況

避免生鮮水果類商品的貨損過大問題,倉儲一般備貨較少,有時需及時從生產商拿貨,就可能會出現商品不足、無貨的情況,如發生缺貨、無貨的情況,是否補單發貨,還是直接退款給用戶

生成補貨單發貨或者退款:在倉儲發貨分揀發現缺貨、無貨情況時可發起異常配送流程,針對缺貨、無貨的商品按照訂單生成時間判斷影響了具體哪些用戶訂單,在缺貨、無貨商品訂單中操作想應的補貨或者退款操作

這里需要說明一點,我們強調的是客服主動跟受影響的用戶進行溝通,而非系統自動發起補貨或退款。

2、用戶同一天下單多次的訂單是否需要合單發貨

針對同一用戶同一天內的訂單是否需要合成一個發貨單發貨,需要根據具體場景具體考慮,如果做了合成一個發貨單,幾單包裹在一起是否一個包裹能裝下,如果是需要兩三個包裹裝的話,只有一個發貨單如何處理,都是需要考慮解決方案。

三、訂單異常、售后流程

訂單售后一般包括未支付訂單取消、下單完成后未配送前發起退款申請,配送完成后的訂單申請售后過程,未支付訂單的取消和下單完成后未配送前發起的退款申請,系統在接收到退款申請時會自動給用戶訂單退款;配送完成后的訂單由於商品性質的原因,限定了不支持無理由退貨退款,並且沒有做退貨流程的處理,主要考慮到商品退回至倉庫已無價值。

訂單系統逆流程的分支很多,需要兼顧業務場景,一般在從0到1的過程中,售后流程會先通過線下的方式解決,以便能把資源集中在更核心的部分。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM