2017-02-16 39 views
0

我正在開發一個電子商務網站,我有一個懷疑。假設用戶在他的車增加了一個產品,並點擊結賬,他被轉移到一個支付網關它產生一些條件使用php結帳情況的電子商務網站

  1. 同時另一個用戶2簽出相同的產品,而用戶1是在結算過程,所以我應該少量顯示產品數量,或者在用戶1成功付款之前顯示相同的數量。
  2. 如果用戶1點擊結賬,並且從未從網關返回,例如他已關閉瀏覽器或標籤,並且當他點擊結賬按鈕時扣除了數量,以便用戶2可以看到可用的實際數量。

  3. 如果我被點擊結帳按鈕和用戶2也檢查了只是在用戶1和後的產物具有有限數量已經由用戶購買時不扣除量1.

如何處理這種情況? 我使用的是php和mysql。

回答

0

我建議您僅在結帳結束時扣除數量。

最後完成結帳的用戶將收到一個錯誤,說明產品不再可用。

電子商務使用的另一種方法是JIT(Just-in-time),所以產品「始終可用」,並且不會發生此問題。

+0

在這種情況下,當用戶2回來在我的網站上,我的扣除數量的腳本開始運行,它發現數量已經是0,所以它應該顯示一些錯誤消息,如您的交易成功但產品不再可用,你的錢會在一些工作日內轉移到你的銀行賬戶上嗎?但我想要的是,每當產品缺貨時,交易永遠不會發生。 –

+0

好吧,現在就拿... 在這種情況下,您應該在付款階段之前保存訂單並扣除數量。 付款階段在訂單已存在於數據庫中之後。因此,您應該在付款前爲該訂單預留產品,並將訂單保存爲「等待付款」狀態。 當訂單在其上停留超過X天時,您應取消訂單並將保留數量返回到可用數量。 我目前正在使用的電子商務正在使用這種方法。 我希望這能解決你的問題,所以我可以編輯上面的答案。 –