[Tep-j-general] ショッピングカート改造(高負荷状況での在庫-を防止 )

Back to archive index

Yukio Obunai obuna****@s-inc*****
2004年 12月 2日 (木) 14:04:39 JST


お世話になっております、小船井です。

当方にて下記の改造を行ったショッピングカートをテストをしています。

・ログイン後のショッピングカートの内容を30分間保持、その後は自動削除。
(ログイン後であれば、一度カートに入れた内容は確実に購入できます。)
・ショッピングカートへの追加を制限することで、アクセス集中時の在庫が「-1」に
なる(用意した在庫数よりも多く販売してしまうことを防ぎます。)


まだ、コントリビューションとしてアップするには不足している部分もあります。

そのため、もしご興味のある方は直接メールを頂ければソースを送ります。

なおこちらは本稼働でのチェックも行っておらず、ドキュメントも用意していないた
め自己責任でお試し頂ける方だけにさせて頂きます。

変更点は下記の4点です。
・products」テーブルに「products_in_basket_quantity」を「products_quantity」
と同じ属性で追加。
・「customers_basket」の「customers_basket_date_added」をdatetime型に変更。
・「classes/shopping_cart.php」を
・「application_top.php」に期限切れカートの削除分を追加。



そのために「products」テーブルに「products_in_basket_quantity」を追加しまし
た。
そしてカートの追加へ条件を加え、追加可能なときのみカートの変更が行われます。
一応トランザクションを使わなくても同じことが実現出来ていると思います。
「オライリーのMysqlクックブックVol2、P215の方法より」

                    tep_db_query("update products set
products_in_basket_quantity = products_in_basket_quantity +  '" .$qty ."'
where products_id= '" .$products_id ."' and products_quantity  -
products_in_basket_quantity - '" .$qty ."' >= 0");

                    if( tep_db_affected_rows() > 0){カートの更新 }

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


***********
Yukio Obunai/小船井 幸男

株式会社シンク
TEL 03-5766-3848/FAX 03-3499-2616
〒106-0031 東京都港区西麻布2-22-5
obuna****@s-inc*****
http://www.s-inc.com





Tep-j-general メーリングリストの案内
Back to archive index