- 締切済み
アドバイスをお願いします!
PHP,Mysqlにてショッピングカートを作成しています。 商品情報はDBに登録し管理しているのですが在庫数が 制限される商品について困っております。 流れとしては以下の通りです。 1:欲しい商品ページから数量を入力しカートに入れる 2:カート内で数量,合計料金の計算をし表示 3:発送先情報入力 4:支払い方法選択 5:注文内容確認 6:注文完了 ※カートに入れてある商品情報などはセッションで保持しています。 ※注文完了時に購入情報(商品情報,購入者情報)をDBに登録 です。 困っているのは在庫数を減らすタイミングです。 在庫数があるものに限り商品情報とは別のテーブルに 在庫数をDBに登録しているのですがどのタイミングで 在庫数の情報を更新すればいいものでしょうか? 通常で考えれば手順2で在庫数を更新すればいいと思うのですが 手順3以降で購入をやめた場合、購入していないにも関わらず 在庫数は減った状態になってしまいますよね? かといって手順6で在庫数を更新するのも遅すぎる気が・・・ ちなみに手順2では登録されている在庫より入力した数値が 上回った場合エラーメッセージを表示してます。 自分なりに考えてみたのですが知識も経験もないので解決できず 経験者の方などおりましたらどのように対処すればいいものか アドバイスを頂けますと幸いです。 宜しくお願い致します。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- ma2shin
- ベストアンサー率41% (69/167)
カートに入れた時点で在庫をチェック。なければエラーを出す。注文完了ページで在庫チェック。欠品の場合は、エラーを出し欠品商品を削除または、数量変更してもらう。エラーなしの場合は、データーベースの数量を減らす。 一般的には、こんな感じではないでしょうか?
お礼
お返事ありがとうございます。 割とシンプルで問題ないのですね^^; 初めてなもので複雑に考えすぎていたようです。 現状は手順2のみでDBを参照しエラーチェックをしているのですが 手順5でも同様にDBを参照しエラーでなければ手順6に進み DBを更新するという方法でやってみたいと思います!