寫這篇文章的理由是 上周和一個優(yōu)秀的同行的簡短交流
他問我“如果待付款訂單的商品沒有庫存了 怎么辦?”
我當時的回答是“待付款訂單的話 會有個繼續(xù)付款按鍵吧,點擊的時候做驗證 確保訂單所有商品sku大于1就對了,如果沒有庫存就提示用戶 沒有庫存 可以觸發(fā)到貨提醒 操作”
然后 周日的時候隱約覺得我的答案沒對。于是請教了 以前的leader 后臺PM林先生。林先生帶了我1年半時間,其智慧和卓見算是我見過的數(shù)一數(shù)二的人物。
是的 正如我覺得沒對一樣,我的答案錯了。其實 待付款 是會鎖庫存的。甚至京東早期還做過 加入購物車就鎖sku庫存,一定時間后如果無后續(xù)操作 自動清楚鎖庫存 并且狀態(tài)切換。
反思了自己沒有仔細思考就說出了欠妥的答案,也在深夜帶著問題繼續(xù)思考。
然后調(diào)研了 京東 ?易迅 2家具被代表性的網(wǎng)站,發(fā)現(xiàn)了很多知識。
首先從購物車說起。
我的流程如下:
【京東】打開京東-登錄-查看購物車-勾選了幾個庫存為0 無法銷售的商品-點擊 “去結(jié)算”-成功進入確認訂單流程,并且 “提交訂單”按鍵是亮的-點擊 提交訂單- 報錯 返回購物車
【易迅】打開易迅-登錄-查看購物車-勾選了庫存為0 無法銷售的商品- 點擊“去結(jié)算”,咦 怎么按鍵是灰色的 ,旁邊還寫了 對不起,暫時無法結(jié)算。
是的,聰明的你 已經(jīng)看出來區(qū)別了。其實這里應(yīng)該做前臺驗證的(js)。另外購物車 還應(yīng)該考慮到 所有商品當前價格 如果和加入購物車的時候發(fā)生變化,應(yīng)該有提示(參考淘寶)。
接下來 思考下 鎖庫存問題。
翻了翻知乎,請教林先生:發(fā)現(xiàn)了下面3點
1 京東 曾經(jīng)做過加入購物車 就鎖庫存,然后一定時間沒操作后 清空購物車。
(是的 只是曾經(jīng)做過,這樣的設(shè)計師完全參考線下購物車做的。那么問題就在:“超市里面 ?買東西和付款 往往是 一條線時間節(jié)奏的,但是 線上是可能周一加點 周二幾點 周五有錢了以前買的情況的”)
2 目前主流電商做法是這樣的: 待付款 狀態(tài)是需要鎖庫存。 然后 比如一周沒有付款 就自動 取消訂單。所以這也解釋了 我之前回答錯誤的東西。其實 待付款 壓根就沒有 庫存沒有的情況好么~
也就是說 在 確認訂單流程,只要提交成功 就肯定是 有庫存的。京東就沒提交成功 給我返回了購物車,易迅的話 直接在購物車就給我驗證了。
3 其實更好的做法是為商品設(shè)置庫存狀態(tài),有些商品即使sku庫存小于0了 也可以進入備貨期 ?晚幾天發(fā)貨。那么這樣的商品 即使沒貨了 也是允許售賣的。叫做預(yù)售。?
這樣的商品 庫存即使為0 ,也可以進入待付款狀態(tài),付款成功后 優(yōu)先發(fā)有貨的其他商品。對了在里面還設(shè)計了 母訂單 付款成功后 拆分 子訂單的 條件之一。這里不做過多敘述。
那么 沒有備貨器的商品怎么辦,我就是 ?看中了 一個 限量版本的烤箱。 在我購物車里面。 等我準備買的時候,沒貨了 而且沒法補貨。 那么 我還能下單或者購物車結(jié)算么?
也許對這類做驗證,報錯 無法提交是個 簡單的辦法。
或許 更極點的做法 當用戶提交的時候。。這部分訂單會進入一個 待挽回訂單。客服自動跟進 詢問是否愿意 替換 替換的烤箱 然后盡可能地讓用戶買其他的烤箱。
今天就寫到這里了,好困