2012-04-12 17 views
2

私は学校プロジェクト用のeコマースウェブサイトを作成しようとしていますが、データベースの数量をいつ更新するのか混乱します。カートに商品を追加するときや注文を完了するときですか?商品をカートに入れて顧客が注文を完了しなかった場合、数量を再度増やす必要があります。顧客が注文を完了したときに数量を更新し、2人の顧客が最終注文を確定するために数量を確認するためのif文を入れ、2人の顧客のうちの1人が最後の商品を購入した場合、もう1人が「申し訳ありません、最後の商品は2分前"。 これは正しい考えですか?それ以外のアイデアですか?(英語には申し訳ありません)eコマースのウェブサイト、PHP、mysql、database.Anyアイデア?

答えて

0

これは、競合条件と呼ばれるものです。

このような状況では、最初の顧客が取引で取引を完了し、その在庫がなくなったことを他の顧客に知らせるために在庫を更新するか、最初のアイデアを使用して在庫を減額する必要があります。顧客は再増加を取り消す。いずれも計画立案に取り組むべきです。

+0

ありがとう、このような私は私の心の中にあったが、私は正しい方向にあったかどうかは分からなかった、ありがとう私は株式がなくなったときに他の顧客に通知しようとします。 –

1

あなたはどちらも有効です基本的に2つのオプションが、持っている:

1)何を販売していることは、高い需要が何かある場合は(あなたが限られた量を持っており、それを購入するユーザーの多くを期待する、のチケットなどをコンサートや飛行機のチケット)、ユーザーがそれを選択したときにチケットを予約することができます(チケットマネージャーがそのチケットを処理する方法です)。これは、予約に関連付けられたタイマーで常に行われるため、ユーザーが購入を完了しないと、商品は再び利用可能になり、他のユーザーはそれを購入することができます。

2)多くのユーザーが特定のアイテムに興味を持っていると思うと、ユーザーがセッションで選択したアイテムを保存するだけで、すべてがうまくいけば、dbのアイテムの量を減らすことができます。ここでは、クレジットカードの請求時期を検討する必要があります。請求してから引き落とす場合は、無効にする必要があります(費用がかかります)。したがって、このシナリオの理想的なことは、ユーザーが注文したものを使い果たしていなければ、在庫を減らしてdbに請求することです。もしあなたがそうした場合は、その状況をユーザに説明して、「類似のアイテム」を見つけさせるか、またはあなたがそれが最善だと思うものを実行させるべきです...しかし、残ったアイテムでインボイスを処理することは勧めません。 (つまり、PCとバッグパックを購入すると、PCは利用できません...あなたはまだバッグパックを出荷しなければなりませんか?)

とにかく、助けてください。

0

この質問に対する回答は、この特定の店舗のポリシーに非常に密接に関連しています。いくつかの可能性がここにあります

  • 防ぎバックオーダーは完全に(あなたが提案として、やや「スヌーズ、あなたが失う」態度の)
  • スプリット2つの部分に順 - すぐに満たすことができる1 、とすることはできません1(あなたも入荷待ち一部をPREAUTHかもしれない、とのPostAuthは発送時に)
  • は、顧客に警告し、彼らが

は、さらにいくつかのあります何をすべきかを選択できますが、これはありますあなたが評価する必要がある "政策決定"のライン。

商品が一意であるか廃止されている場合は、それに応じて調整する必要があります(在庫が戻ってくるまで顧客は待つことはできません)。

私はまた、商品が在庫に戻ったときに顧客に通知を要求できる場所で行っています。

お客様のコンバージョンを最大化し、お客様の不満を制限することをお勧めします。

0

私は最初のeコマースショップを構築しようとしたとき、私は同様の問題に直面しました。私がやったことの1つは、dbにcurrent_stockのような一時的なストレージを用意して、それを疑似ストックとして使うことでした。 1人の顧客がそのアイテムをカートに入れると、その数量は擬似ストレージから差し引かれ、注文時に実際の在庫が差し引かれます。擬似在庫は、サイトを閲覧しているユーザーの目に見える在庫になります。

願っています!

関連する問題