2017-02-16 2 views
0

私はEコマースのウェブサイトを開発しています。仮定ユーザーが自分のカートに製品を追加し、チェックアウトをクリックすると、彼は、ユーザー1は、チェックアウト処理中に別のユーザー2が同じ製品をチェックアウトすると同時に、いくつかの条件eコマースウェブサイトでPHPチェックアウトの状況を使用

  1. を発生する支払いゲートウェイに転送されますしたがって、商品数量を1つ少なく表示するか、ユーザー1が支払いを完了するまで同じ数量を表示する必要があります。
  2. ユーザ1がチェックアウトをクリックしてブラウザやタブを閉じたときなど、ゲートウェイから戻ってきたことがない場合、チェックアウトボタンをクリックしたときに数量を差し引いて、ユーザ2が利用可能な量を見ることができます。

  3. チェックアウトボタンをクリックすると、ユーザー2は、ユーザー1及び製品は、ユーザ1

に買収されている限られた量を持っているだけで後にチェックアウトしたときに私は数量を控除していない場合

この状況をどのように処理するのですか? 私はphpとmysqlを使用しています。

答えて

0

チェックアウトが完了したときにのみ数量を差し引くことをお勧めします。

最後にチェックアウトを完了したユーザーには、製品がもう利用できないことを説明するエラーが表示されます。

電子商取引で使用される別のアプローチはJIT(ジャストインタイム)なので、製品は「常に利用可能」であり、この問題は発生しません。

+0

ユーザー2が私のウェブサイトに戻ってくると、数量を差し引くためのスクリプトが実行を開始し、その数量がすでに0であることがわかりましたので、トランザクションが成功したようなエラーメッセージが表示されるはずですが、あなたのお金は、あなたの銀行口座にいくつかの営業日に転送されますか?しかし、私が望むのは、製品が在庫切れになったときは、決して取引が起こらないようにすることです。 –

+0

さて、今すぐ手に入りました... この場合、注文を保存して、支払い段階の前に数量を差し引く必要があります。 ご注文がデータベースに登録されている場合、支払い段階が来ます。したがって、支払い前にその注文の商品を予約し、「支払い待ち」のようなステータスで注文を保存する必要があります。 注文がX日以上継続した場合は、注文を取り消し、予約数量を利用可能数量に戻す必要があります。 私が現在取り組んでいる電子商取引は、このアプローチを使用しています。 これがあなたの問題を解決してくれることを願っておりますので、上記の回答を編集することができます。 –

関連する問題