[PHP-users 20577]商品在庫数のタイムラグの回避

Tybalt of Capulet ice-man @ tomato.ne.jp
2004年 2月 27日 (金) 16:58:03 JST


神崎です。

現在PHPとMySQLにてある商品の通信販売のページを作成しています。
決済方法は代引きとカードの両方です。
問題になっているのが商品在庫数のタイムラグの回避方法です。

例えばある商品の在庫が10個だったとします。
Aというお客さんが9個カートに入れたとします。
すると在庫は1個のはずですがまだ決済していないので在庫表示は10個のままです。
次にBというお客さんがその商品を2個カートに入れました。
このお客さんもまだ決済していないので在庫表示は10個のままです。
しかしAというお客さんが先に決済してしまいました。
すると在庫は1個になっていますがBというお客さんのカートには2個入っています。
ここで在庫のタイムラグが出てきてしまいます。
Bが2個買ってしまったのでは商品が足りません。
しかし個人情報入力画面、確認画面、完了画面で在庫を再度チェックしにいき、
足りなければエラーを出すことはできますがどうもスマートではありませんし、
お客さんに不快感を与えてしまいます。

どなたか在庫のタイムラグの問題でよいアイデアやノウハウをお持ちの方
ご教授いただけないでしょうか。

よろしくお願いいたします。


OS:Red Hat Linux 9
PHP:4.3.4
MySQL:4.0.18-max(トランザクション機能使用可能)
Apache:2.0.48
root権限:あり



PHP-users メーリングリストの案内