我的客戶有一個電子商務網站,銷售電子產品,並且一直存在,其中一個產品售出更多的時間比他們在自己的庫存情況。這是因爲,如果兩個用戶同時購買一個產品,而只剩下一個產品,則一個會話在另一個會話開始之前沒有完成註冊產品的售罄(所以它會像往常一樣繼續,認爲有一個左),即使在流程開始時有一個檢查。這顯然會花費金錢(退單費用,退款等),給消費者帶來不便。避免競爭狀態
所以我想知道是否有解決這個問題?我想在這個過程的開始階段創建一個「標記」,即它會檢查庫存,如果售罄,它會標記產品,從而阻止其他會話購買它。但是這也帶來了更多的問題:如果客戶方面發生了某些事情會導致他們取消中間流程(電力不足等),那麼即使該產品被標記爲已售出,但自結帳以來並未實際銷售過程沒有完成。如果這種情況持續發生,將會出現產品積壓。其次,會話還可以檢查庫存,而另一個會話將其標記爲已售出,因此即使第二個會話已經購買了第一個會話,第一個會話也會繼續。這導致我們回到原來的問題。
我期待在數據庫端表lockings,但我不知道如果多數民衆贊成最好的主意。任何建議將不勝感激!
感謝, dyip
簡單的解決方案,當他們支付,看看該項目是否有貨時,做一個檢查。 eBay在即時支付時會這樣做,現在購買它,它說:「直到您付款之前,股票不會得到保證」,我說採用相同的解決方案。 – 2010-08-02 15:13:54
在大多數消費者的心目中,當他們在結賬時點擊提交按鈕時,他們「付費」。我們實際上並沒有收到貨物發貨前的費用,但我們希望在沒有庫存的情況下阻止他們購買物品。 「 – Dyip302 2010-08-02 15:25:47
」...在流程開始時檢查。「在我看來,當他們在結帳時點擊提交按鈕時,您需要進行額外的檢查。「 - 或者你已經這樣做了? – MrWhite 2010-08-02 18:28:41