Java生鲜电商平台-订单配送模块的架构与设计
Java生鮮電商平臺(tái)-訂單配送模塊的架構(gòu)與設(shè)計(jì)
?
生鮮電商系統(tǒng)最終的目的還是用戶下單支付購買,
所以訂單管理系統(tǒng)是電商系統(tǒng)中最為復(fù)雜的系統(tǒng),其作為中樞決定著整個(gè)商城的運(yùn)轉(zhuǎn),
本文將對(duì)于生鮮類電商平臺(tái)的訂單設(shè)計(jì)做一個(gè)完整的分析,也對(duì)前階段工作做一個(gè)復(fù)盤總結(jié)
訂單系統(tǒng)設(shè)計(jì)的好壞,決定了平臺(tái)的可用性、后期的功能拓展和商城價(jià)值;訂單系統(tǒng)貫穿于整個(gè)商城系統(tǒng),其他各個(gè)系統(tǒng)的設(shè)計(jì)也是為訂單系統(tǒng)提供數(shù)據(jù)支撐。從用戶提交訂單的那一刻到訂單完成,到售后,都需要訂單管理系統(tǒng)來管理。
訂單管理系統(tǒng)從流程生成過程,大致分為三部分:
1.階段一、訂單生成過程:用戶通過平臺(tái)選擇商品,選擇添加至購物車(某些平臺(tái)下單過程無加入購物車流程),生成訂單價(jià)格,提交訂單,后臺(tái)根據(jù)優(yōu)惠信息、活動(dòng)信息、會(huì)員價(jià)等生成訂單金額,一般具體到每個(gè)商品訂單實(shí)付金額。
2.階段二、訂單配送過程:用戶支付完成,從倉儲(chǔ)發(fā)貨、配送、用戶收貨后訂單完成,如無提起售后流程,一般訂單到此就算完成,正常的訂單到階段二流程即結(jié)束了。
3.階段三、訂單異常、售后流程:用戶在前兩個(gè)階段過程中發(fā)起支付取消、提起商品售后流程,一般在訂單商品配送過程中是不允許用戶發(fā)起退款,等用戶收到貨物后才可發(fā)起售后,對(duì)于生鮮類平臺(tái),可能不會(huì)做退貨的功能。
一、訂單生成過程
首先,是用戶在商城內(nèi)選購商品,這個(gè)階段可以叫做用戶購物行為。
然后,是系統(tǒng)調(diào)取各個(gè)系統(tǒng)的數(shù)據(jù),計(jì)算訂單的最終價(jià)格,這個(gè)階段可以叫做數(shù)據(jù)處理過程。
最后,是將訂單價(jià)格在用戶端顯示,這個(gè)階段叫做表現(xiàn)層顯示。
訂單數(shù)據(jù)流程1、訂單提交生成過程
用戶下單后系統(tǒng)需要生成訂單,生成訂單過程需獲取商品信息,商品是否涉及相關(guān)優(yōu)惠活動(dòng);獲取用戶會(huì)員信息(由于小程序做了付費(fèi)會(huì)員,付費(fèi)會(huì)員與普通會(huì)員購物部分商品有不同優(yōu)惠力度和商品價(jià)格差異)。
用戶提交商品訂單時(shí)需要考慮商品庫存問題:1.用戶提交訂單時(shí)鎖定商品庫存,即下單減庫存。2.用戶付款后鎖定商品庫存。何時(shí)鎖定商品庫存得看具體情況,個(gè)人感覺下單鎖庫存在商品庫存不多,商品暢銷情況下用戶體驗(yàn)更好,避免在用戶支付完成后商家無庫存發(fā)貨。由于社區(qū)生鮮類商品,貨損較嚴(yán)重,所以設(shè)計(jì)為用戶付款后鎖定庫存。
2、支付訂單后是否需要拆單/合單
訂單拆單:客戶同時(shí)在多家店鋪下單,不同的店鋪的商品在正常情況下是要拆開的;自營平臺(tái)商品的訂單是否需要拆單根據(jù)發(fā)貨倉是否相同,發(fā)貨倉不同,也是需要根據(jù)商品發(fā)貨單進(jìn)行拆單。總之同一個(gè)訂單,會(huì)有多個(gè)包裹多個(gè)運(yùn)單發(fā)貨,就需要將訂單查看。
訂單合單:同一個(gè)用戶不同訂單需要考慮是否合單發(fā)貨,需根據(jù)實(shí)際情況而定,訂單合單后,多個(gè)訂單生成一個(gè)發(fā)貨單發(fā)貨。
3、訂單商品優(yōu)惠分?jǐn)?/h4>
1. 為什么要對(duì)訂單金額進(jìn)行分?jǐn)?#xff1f;
首要因素是退款,在訂單付款成功之后,如果不針對(duì)單個(gè)商品進(jìn)行金額分?jǐn)?#xff0c;那么如果用戶需要退訂單中的部分商品,沒法計(jì)算需要退的金額。同樣如果只是單一商品品類券,則根據(jù)符合優(yōu)惠券使用條件的商品進(jìn)行分?jǐn)?#xff0c;其他商品按照商品售賣價(jià)格。
財(cái)務(wù)對(duì)賬:將優(yōu)惠金額分?jǐn)偟矫總€(gè)商品上,能核算統(tǒng)一訂單下的每個(gè)商品分別分?jǐn)偟膬?yōu)惠金額,比如:平臺(tái)券,一個(gè)使用平臺(tái)券的訂單最終需要計(jì)算每個(gè)商品分?jǐn)偟膬?yōu)惠金額,以確定每個(gè)商品的實(shí)際付款金額和享受平臺(tái)優(yōu)惠的金額。
核算成本:通過把優(yōu)惠金額分?jǐn)偟矫總€(gè)商品上去,運(yùn)營,財(cái)務(wù)或采購人員可以評(píng)估營銷活動(dòng)的成本。
2. 優(yōu)惠金額分?jǐn)傔壿?/strong>
按照最小維度進(jìn)行分?jǐn)?#xff1a;即優(yōu)惠金額需要分?jǐn)偟矫總€(gè)商品,且同一個(gè)商品采購數(shù)量大于1時(shí),該商品最終只能有一個(gè)分?jǐn)偤蟮膬r(jià)格
優(yōu)惠分?jǐn)偙壤?#xff1a;按照商品金額分?jǐn)倢?duì)應(yīng)比例的優(yōu)惠,保證不同商品享受優(yōu)惠的公平性,否則會(huì)出現(xiàn)商品應(yīng)分?jǐn)偟膬?yōu)惠大于商品的銷售價(jià)或影響用戶體驗(yàn)。
誤差處理:減小誤差主要途徑是在算法層面上進(jìn)行優(yōu)化,同時(shí)也無法避免誤差,多余的誤差需要按照不同的優(yōu)惠活動(dòng)分別存儲(chǔ)起來,在財(cái)務(wù)對(duì)賬和退款的時(shí)候需要用到。
這里必須提一下,這里訂單商品優(yōu)惠分?jǐn)偟那疤崾怯唵沃猩唐贩蟽?yōu)惠條件,訂單中不符合優(yōu)惠條件的商品不參與優(yōu)惠分?jǐn)偂?/strong>
二、訂單配送過程
用戶在下單完成后,限制了用戶退款訂單狀態(tài),只允許用戶在訂單狀態(tài)為:待發(fā)貨和配送完成狀態(tài)下才可以申請(qǐng)退款。支付完成后訂單發(fā)貨狀態(tài)共分為:待發(fā)貨、分揀中、配送中、商品到達(dá)代收點(diǎn)、配送完成、用戶已取貨這幾個(gè)狀態(tài)。
訂單生成配送過程1、針對(duì)有缺貨/無貨情況
避免生鮮水果類商品的貨損過大問題,倉儲(chǔ)一般備貨較少,有時(shí)需及時(shí)從生產(chǎn)商拿貨,就可能會(huì)出現(xiàn)商品不足、無貨的情況,如發(fā)生缺貨、無貨的情況,是否補(bǔ)單發(fā)貨,還是直接退款給用戶
生成補(bǔ)貨單發(fā)貨或者退款:在倉儲(chǔ)發(fā)貨分揀發(fā)現(xiàn)缺貨、無貨情況時(shí)可發(fā)起異常配送流程,針對(duì)缺貨、無貨的商品按照訂單生成時(shí)間判斷影響了具體哪些用戶訂單,在缺貨、無貨商品訂單中操作想應(yīng)的補(bǔ)貨或者退款操作
這里需要說明一點(diǎn),我們強(qiáng)調(diào)的是客服主動(dòng)跟受影響的用戶進(jìn)行溝通,而非系統(tǒng)自動(dòng)發(fā)起補(bǔ)貨或退款。
2、用戶同一天下單多次的訂單是否需要合單發(fā)貨
針對(duì)同一用戶同一天內(nèi)的訂單是否需要合成一個(gè)發(fā)貨單發(fā)貨,需要根據(jù)具體場景具體考慮,如果做了合成一個(gè)發(fā)貨單,幾單包裹在一起是否一個(gè)包裹能裝下,如果是需要兩三個(gè)包裹裝的話,只有一個(gè)發(fā)貨單如何處理,都是需要考慮解決方案。
三、訂單異常、售后流程
訂單售后一般包括未支付訂單取消、下單完成后未配送前發(fā)起退款申請(qǐng),配送完成后的訂單申請(qǐng)售后過程,未支付訂單的取消和下單完成后未配送前發(fā)起的退款申請(qǐng),系統(tǒng)在接收到退款申請(qǐng)時(shí)會(huì)自動(dòng)給用戶訂單退款;配送完成后的訂單由于商品性質(zhì)的原因,限定了不支持無理由退貨退款,并且沒有做退貨流程的處理,主要考慮到商品退回至倉庫已無價(jià)值。
訂單系統(tǒng)逆流程的分支很多,需要兼顧業(yè)務(wù)場景,一般在從0到1的過程中,售后流程會(huì)先通過線下的方式解決,以便能把資源集中在更核心的部分。
轉(zhuǎn)載于:https://www.cnblogs.com/jurendage/p/11227425.html
總結(jié)
以上是生活随笔為你收集整理的Java生鲜电商平台-订单配送模块的架构与设计的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信亲属卡暂不可用?主要原因有这几点!
- 下一篇: Java生鲜电商平台-深入订单拆单架构与