秒殺扣除庫存方案


減庫存有哪幾種方式

  • 下單 當買家下單后,在商品的總庫存中減去買家購買數量。下單減庫存是最簡單的減庫存方式,也是控制最精確的一種,下單時直接通過數據庫的事務機制控制商品庫存,這樣一定不會出現超賣的情況。但是你要知道,有些人下完單可能並不會付款。
  • 付款減庫存 即買家下單后,並不立即減庫存,而是等到有用戶付款后才真正減庫存,否則庫存一直保留給其他買家。但因為付款時才減庫存,如果並發比較高,有可能出現買家下單后付不了款的情況,因為可能商品已經被其他人買走了。
  • 預扣庫存 這種方式相對復雜一些,買家下單后,庫存為其保留一定的時間(如 10 分鍾),超過這個時間,庫存將會自動釋放,釋放后其他買家就可以繼續購買。在買家付款前,系統會校驗該訂單的庫存是否還有保留:如果沒有保留,則再次嘗試預扣;如果庫存不足(也就是預扣失敗)則不允許繼續付款;如果預扣成功,則完成付款並實際地減去庫存。

以上減庫存的幾種方式存在的問題

  • 由於購物過程中存在兩步或者多步的操作,因此在不同的操作步驟中減庫存,就會存在一些可能被惡意買家利用的漏洞,例如發生惡意下單的情況。
假如我們采用“下單減庫存”的方式,即用戶下單后就減去庫存,正常情況下,買家下單后付款
的概率會很高,所以不會有太大問題。但是有一種場景例外,就是當賣家參加某個活動時,此
時活動的有效時間是商品的黃金售賣時間,如果有競爭對手通過惡意下單的方式將該賣家的商
品全部下單,讓這款商品的庫存減為零,那么這款商品就不能正常售賣了。要知道,這些惡意
下單的人是不會真正付款的,這正是“下單減庫存”方式的不足之處。
  • 付款減庫存
既然“下單減庫存”可能導致惡意下單,從而影響賣家的商品銷售,那么有沒有辦法解決呢?
你可能會想,采用“付款減庫存”的方式是不是就可以了?的確可以。但是,“付款減庫存”又
會導致另外一個問題:庫存超賣。
  • 既然“下單減庫存”和“付款減庫存”都有缺點,我們能否把兩者相結合,將兩次操作進行前后關聯起來,下單時先預扣,在規定時間內不付款再釋放庫存,即采用“預扣庫存”這種方式呢?
這種方案確實可以在一定程度上緩解上面的問題。但是否就徹底解決了呢?其實沒有!針對惡
意下單這種情況,雖然把有效的付款時間設置為 10 分鍾,但是惡意買家完全可以在 10 分鍾
后再次下單,或者采用一次下單很多件的方式把庫存減完。針對這種情況,解決辦法還是要結
合安全和反作弊的措施來制止。

如何解決下單庫存問題

給經常下單不付款的買家進行識別打標(可以在被打標的買家下單時不減庫存)、給某些類目
設置最大購買件數(例如,參加活動的商品一人最多只能買 3 件),以及對重復下單不付款的
操作進行次數限制等。


免責聲明!

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



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