推薦使用:免費(fèi)中小企業(yè)ERP軟件(免費(fèi)下載,像Excel一樣極速上手,可靈活自定義的企業(yè)管理軟件)
本文主要闡述電子商務(wù)平臺(tái)庫存訂單系統(tǒng)的相關(guān)邏輯。讓我們一起來看看
一、庫存的概念
電子商務(wù)業(yè)務(wù)場(chǎng)景中的訂單流程經(jīng)常伴隨著庫存變更;就erp系統(tǒng)而言,庫存可能涉及諸如倉庫入口、倉庫出口和倉庫配送等操作。這里暫時(shí)不討論erp中庫存的處理邏輯,主要是解釋電子商務(wù)平臺(tái)庫存的訂單系統(tǒng)相關(guān)邏輯。
合計(jì)庫存指供應(yīng)商倉庫中貨物的實(shí)際庫存;
凍結(jié)庫存是指庫存暫時(shí)被訂單占用,凍結(jié)庫存可以根據(jù)訂單的取消或交付等情況解除。
可用庫存指總庫存-凍結(jié)庫存,一般指前端顯示的最大數(shù)量,用戶可以下訂單。
庫存使用場(chǎng)景:
常規(guī)訂單流程:需要申請(qǐng)總計(jì)庫存、凍結(jié)庫存和可用庫存;
運(yùn)營(yíng)活動(dòng):特殊商品活動(dòng)需要占用一定數(shù)量的庫存以確保足夠的庫存支持活動(dòng)。
禮品庫存:如果禮品被視為SKU,即與正常訂購路徑相同,當(dāng)禮品分離時(shí),需要設(shè)置禮品庫存(在我們的業(yè)務(wù)系統(tǒng)中,禮品是由商家?guī)齑媸謩?dòng)添加和設(shè)置的),同時(shí)需要建立單獨(dú)的庫存處理系統(tǒng)。
二、常規(guī)訂單處理庫存
總量庫存可以與ERP同步設(shè)置,也可以手動(dòng)設(shè)置。如果是手動(dòng)設(shè)置,供應(yīng)商點(diǎn)擊“確認(rèn)發(fā)貨”,然后減少。如果訂單已在退款期間發(fā)貨,供應(yīng)商單擊“同意退款”/系統(tǒng)自動(dòng)同意退款,并在供應(yīng)商單擊“確認(rèn)收據(jù)”時(shí)增加金額/系統(tǒng)自動(dòng)確認(rèn)收據(jù)。
在同步ERP數(shù)據(jù)的情況下,總計(jì)庫存可以不受訂單狀態(tài)的影響(值得注意的是,如果確認(rèn)裝運(yùn)的節(jié)點(diǎn)和扣除總計(jì)庫存的節(jié)點(diǎn)之間存在時(shí)間差,則該時(shí)間段實(shí)際上將導(dǎo)致系統(tǒng)凍結(jié)庫存,但是企業(yè)資源規(guī)劃總計(jì)庫存將保持不變。因此,可用的庫存在短時(shí)間內(nèi)將會(huì)太大,并且總數(shù)庫存也可以首先被扣除/增加,因?yàn)榭偟膸焱娇隙〞?huì)覆蓋先前修改的數(shù)量。
當(dāng)用戶從app下訂單時(shí)凍結(jié)庫存增加,當(dāng)供應(yīng)商確認(rèn)發(fā)貨/取消訂單時(shí)凍結(jié)減少,當(dāng)“待發(fā)貨”訂單退款成功時(shí)凍結(jié)申請(qǐng)減少。
此外,取消退款和退款失敗將不會(huì)影響庫存。
結(jié)合訂購過程中的每個(gè)節(jié)點(diǎn)給出進(jìn)一步的解釋:
用戶下訂單:下訂單時(shí),由于訂單生成后需要預(yù)留一定的金額庫存,以保證訂單可以發(fā)貨,因此需要增加相應(yīng)商品的凍結(jié)庫存;這里應(yīng)該注意,不同的業(yè)務(wù)場(chǎng)景對(duì)于添加凍結(jié)節(jié)點(diǎn)有不同的定義庫存。
一般來說,在兩個(gè)節(jié)點(diǎn)庫存考慮凍結(jié):一個(gè)是訂單生成時(shí),另一個(gè)是支付成功時(shí)。
對(duì)于庫存有限和有時(shí)間限制的訂單(例如秒殺),在付款成功時(shí)添加凍結(jié)庫存更為合理,因?yàn)槲锤队唵螌⒂绊懫渌速徺I本產(chǎn)品。然而,對(duì)于常規(guī)場(chǎng)景,在生成訂單時(shí)最好占用庫存,否則將影響用戶的訂購體驗(yàn)(但是必須有自動(dòng)取消訂單以解除凍結(jié)的功能庫存)。
確認(rèn)發(fā)貨:確認(rèn)發(fā)貨的動(dòng)作可以是發(fā)出ERP訂單時(shí)自動(dòng)確認(rèn)發(fā)貨,也可以是手工確認(rèn)發(fā)貨。無論是哪種情況,只要觸發(fā)交貨動(dòng)作,就要扣除總金額庫存和凍結(jié)金額庫存。如果ERP系統(tǒng)自動(dòng)同步總計(jì)庫存,則總計(jì)庫存將從ERP系統(tǒng)中扣除,并自動(dòng)同步至系統(tǒng)。
取消訂單:主頁。在我們的系統(tǒng)中,訂單可以在付款成功之前取消。取消訂單時(shí),應(yīng)扣除凍結(jié)庫存(即應(yīng)取消占用庫存)。
申請(qǐng)退款:如果系統(tǒng)定義在貨物支付后可以在裝運(yùn)前進(jìn)行退款申請(qǐng),如果退款成功(商家操作“同意退款”或系統(tǒng)將自動(dòng)檢查超時(shí)),退款將需要被扣除和凍結(jié)庫存。
申請(qǐng)退貨:如果系統(tǒng)定義為申請(qǐng)貨物交付后可以退貨,如果退款成功且供應(yīng)商已收到貨物,則需要增加總額庫存(商戶操作“確認(rèn)收貨”或系統(tǒng)自動(dòng)確認(rèn)收貨)。如果ERP系統(tǒng)自動(dòng)同步庫存,總數(shù)庫存將在企業(yè)資源規(guī)劃系統(tǒng)中增加,并自動(dòng)與系統(tǒng)同步。
附件:訂購流程圖

三、活動(dòng)處理庫存
實(shí)際操作:由于數(shù)據(jù)庫中沒有活動(dòng)的庫存段字,所以原始公式:可用庫存=合計(jì)庫存-凍結(jié)庫存,不能統(tǒng)一修改;在實(shí)際開發(fā)中,凍結(jié)庫存=普通商品凍結(jié)庫存活動(dòng)庫存和其他活動(dòng)庫存的總和將保留在活動(dòng)表中,其中包括字活動(dòng)庫存和已用庫存。
1.活動(dòng)的概念庫存
設(shè)置特價(jià)時(shí),可以設(shè)置活動(dòng)庫存。目的是限制特別優(yōu)惠的數(shù)量(設(shè)定的活動(dòng)庫存不能大于總數(shù)庫存),同時(shí)確保當(dāng)活動(dòng)庫存用完時(shí),參與活動(dòng)的商品數(shù)量將以原價(jià)購買。
2.數(shù)據(jù)庫庫存相關(guān)字段
商品清單相關(guān)字段:合計(jì)庫存,凍結(jié)庫存;活動(dòng)表的相關(guān)字段落:活動(dòng)庫存,活動(dòng)凍結(jié)庫存。
可用的普通商品庫存=總計(jì)庫存-凍結(jié)庫存-活動(dòng)庫存
有效可用商品庫存=有效庫存-有效凍結(jié)庫存
(事實(shí)上,在我們的開發(fā)過程中,由于最初的數(shù)據(jù)庫設(shè)計(jì)未能考慮到后面的擴(kuò)展,當(dāng)頁面取數(shù)據(jù)時(shí),普通商品是可用的庫存=總計(jì)庫存-凍結(jié)庫存。當(dāng)以后增加促銷活動(dòng)時(shí),如果需要改變,這個(gè)公式會(huì)有太大的影響。因此,我們將保持原始公式不變,并讓凍結(jié)庫存=普通貨物凍結(jié)庫存和活動(dòng)庫存之和。這個(gè)問題突出了技術(shù)框架的重要性。)
3. 庫存訂購過程中的邏輯
如果活動(dòng)成功創(chuàng)建,相應(yīng)的商品需要將活動(dòng)庫存A從總庫存B中分離出來。此時(shí),可用的普通商品庫存為(B-A),可用的特殊商品活動(dòng)庫存為(A)。
當(dāng)用戶下訂單時(shí),他以有效價(jià)格購買C件商品,那么普通商品的可用庫存仍然是(B-A),特殊商品的可用庫存是(A-C),而活動(dòng)的凍結(jié)庫存是C件。
當(dāng)活動(dòng)庫存不足/超過有限數(shù)量時(shí),將訂購D件,其中D1件將以特價(jià)購買,D2件將以普通價(jià)格購買。那么普通商品的可用庫存是(D2),普通商品的凍結(jié)庫存D2,特殊商品活動(dòng)的可用庫存是(D1),活動(dòng)的凍結(jié)庫存是D1。
當(dāng)特價(jià)商品不可用時(shí)庫存,特價(jià)商品售完,所有商品以普通價(jià)格購買。如果訂單在活動(dòng)期間被取消、退回或退回,活動(dòng)庫存將被重置為零,剩余數(shù)量可以繼續(xù)以特價(jià)購買。
4.活躍商品的扣減和回滾庫存
在銷售活動(dòng)商品后,添加活動(dòng)凍結(jié)庫存,如果在活動(dòng)期間訂單取消/退款成功,則減少活動(dòng)凍結(jié)庫存;普通商品庫存不受影響,但特殊商品的采購數(shù)量需要增加/減少。
如果ERP系統(tǒng)需要調(diào)整凍結(jié)庫存和由于在活動(dòng)期間交貨而導(dǎo)致的總額庫存,此時(shí),無論貨物是否在銷售,凍結(jié)庫存和總額庫存都將直接扣除,因?yàn)镋RP系統(tǒng)沒有單獨(dú)的倉庫,并且?guī)齑媸亲詣?dòng)同步的,總額庫存肯定會(huì)減少,并且還需要扣除凍結(jié)庫存。
活動(dòng)結(jié)束:如果活動(dòng)庫存為100件,售出20件,則商品的活動(dòng)庫存將被清除,活動(dòng)凍結(jié)庫存也將在活動(dòng)凍結(jié)庫存的數(shù)量合并到凍結(jié)庫存后被清除。最終凍結(jié)庫存增加了20。此外,隨著活動(dòng)庫存變小,普通商品庫存的可用性變大(相當(dāng)于返回未使用的活動(dòng)庫存)。
四、禮品處理庫存
禮品庫存基于我當(dāng)前的企業(yè)管理軟件中的業(yè)務(wù)系統(tǒng)進(jìn)行解釋。我們當(dāng)前的禮物總數(shù)庫存和禮物活動(dòng)庫存在后臺(tái)被手動(dòng)設(shè)置,因此這是一個(gè)單獨(dú)的邏輯。
禮品表中的相關(guān)字段:總禮品庫存,可用禮品活動(dòng)庫存;活動(dòng)表的相關(guān)字段:禮品活動(dòng)庫存,可用禮品庫存;
禮品總數(shù)庫存可以手動(dòng)設(shè)置,并且將為每個(gè)使用禮品的活動(dòng)設(shè)置相應(yīng)的禮品活動(dòng)庫存。禮品活動(dòng)庫存可用=禮品總額庫存-禮品活動(dòng)庫存。(請(qǐng)注意,此禮品可用庫存,這是指添加禮品活動(dòng)時(shí)可以設(shè)置的最大活動(dòng)數(shù)庫存數(shù)量)
購買商品時(shí),贈(zèng)送的禮品不能大于禮品活動(dòng)庫存;如果沒有免費(fèi)禮品活動(dòng)庫存,并且禮品不夠,應(yīng)以友好的方式提示客戶。提交訂單后,如果贈(zèng)送禮品,相應(yīng)的禮品活動(dòng)庫存和禮品總額庫存將自動(dòng)扣除。
在活動(dòng)有效期內(nèi),取消訂單/退貨,如果退款被批準(zhǔn),禮品活動(dòng)庫存和禮品總金額庫存將自動(dòng)添加?;顒?dòng)失敗后,取消訂單/退貨,如果退款被批準(zhǔn),禮品總額將自動(dòng)增加庫存。當(dāng)活動(dòng)失敗時(shí),相應(yīng)的禮品活動(dòng)庫存被清除。
五、前端庫存顯示器
按照正常邏輯:如果該商品沒有特殊價(jià)格/秒殺活動(dòng),可以按普通價(jià)格直接購買,表明該普通商品可用庫存;如果商品有第二次促銷/特價(jià),則應(yīng)顯示活動(dòng)商品庫存。
但是,存在這樣一種情況,即一些購買的一批商品需要按照現(xiàn)行價(jià)格計(jì)算,而其余商品需要按照正常價(jià)格計(jì)算。那么拿普通商品庫存/主動(dòng)商品是錯(cuò)誤的。
因此,我們最終使用了稱重后的普通商品可用量庫存和有效商品可用量庫存的總和(即總量庫存-凍結(jié)量庫存-有效凍結(jié)量庫存)。