2010-12-31 20 views
0

私は電子商取引プロジェクトを開発していますが、これにはProductQuantityが1つしかない重要な製品が1つあり、その製品の数量は1で2人で購入できません製品。 AddToCartの時に 私はデータベースから量を減らしました。 私はこれを10台のマシンでテストしていますが、同時に10台のマシンでAddToCartボタンをクリックしますが、3台のマシンが同じ製品を自分のカートに追加できます。間違っています。 。ASP.NET、C#:ショッピングカートの処理方法問題

このシナリオをどのように処理するか教えてください。

おかげ Vijendra

答えて

5

...問題は、これら2つの領域のどちらか一方であると思われる、それがあるとして滞在する必要があります。注文が支払われた場合にのみ、数量からそれを落とします。

それ以外の場合は、サイトに来て、カートにたくさんのものを追加して出発し、戻ってこないというシナリオになります。在庫は1つでも在庫が少なくなりますProductQuantityより大きい

商品に「在庫がない」、「5未満」などの商品が表示されることがあります。エンドユーザーは、残量があまりないことが分かっている場合、チェックアウトに入ると、前回販売されていなかったことを確認するために、ユーザーが払っている間に数量を確認することができます。製品が在庫切れの場合、在庫がなくなったというメッセージを表示します。

ここのコインの裏返しは、あなたのサイトが本当に人気がない限り、これが実際に起こるシナリオを持つことはめったにありません。


編集:追加の答えは、その後、あなたは10人が成功し、それを追加するだけで1人と、それを追加しようとしたいと言う場合はコメント

「私は10人欲しい」に対処しますあなたは自分自身をビジネスから守っています。

ユーザーAが商品をカートに追加すると、ユーザーBは商品を追加できません。

ユーザーBは、製品を購入できる場所を探してサイトを離れます。

ユーザーAはその後、彼がもう製品を望んでいないと判断したので、製品はデータベースに戻り、潜在的な販売を失ってしまいました。

+0

@Phill:カートに商品を追加して買い物をしないで買い物をする人がいれば、Session_Endイベントでデータベースに商品を戻します。 – Vijjendra

+0

@Phill:10人の異なる人が同じ製品(数量1を持つ)を同時に追加しようとします。この場合、1人でその製品を追加することはできますか? – Vijjendra

+0

私のシナリオでは、10人全員が同じ製品を追加することができます。セッション終了のイベントが発生したのは、セッション管理のためにStateServerまたはSQLServerを使用しているときにInProcセッションに対してのみ生成されるため、 'Session_End'を使用してデータベースに製品を戻すことはできません。 – Phill

0

「カートに入れる」をクリックすることを初めてした後、あなたは、カウントが実際に0に減少していることを確認するために、データベースをチェックしていますか?

第2に、一度カウントが0になると、「カートに入れる」という追加のクリックが数量フィールドをチェックして注文を満たすのに十分な量があることを確認しましたか?

私はあなたがカートに追加すると、あなたが本当にProductQuantityから1つを取り外しすべきではない

+0

10人の異なる人が同じ製品(数量1を持つ)を同時に追加しようとします。この場合、1人でその製品を追加することはできますか? – Vijjendra