2

私はRubyOnrailsを使用してゼロから開発するオンラインストアに取り組んでいます。

在庫と注文について設計上の質問があります。

ユーザーが商品を選択したときに在庫を更新するのはいつですか

  • 商品をカートに入れるときに在庫を減らすと、ユーザーがブラウザを閉じたときに再入荷できる必要があります。問題、レールはこのユースケースのセッションの有効期限を処理しません

  • 顧客を支払いソリューション(ペイパル、グーグルチェックアウト、アマゾンなど)に送る前に在庫を減らしても、ユーザーがブラウザーを閉じても通知されません。

-支払いが有効になった後で在庫を減らすと、2人の異なる顧客が1つだけ残っているときに同じ商品を購入する可能性があり、ショップは1つだけ残っているときに2つの商品を配達する必要があります。

オンラインストアがこの問題をどのように処理するか知っていますか?

オープンソースのオンラインストアの設計ドキュメントはどこにありますか?

4

2 に答える 2

2

私はこれについて考えましたが、プログラムしたことはありません。

価値が何であれ、私がすることは、オブジェクトが支払いプロセスを通過しようとしている場合に、オブジェクトを一時的に「保留」することです。このようにして、他の誰もこのオブジェクトを購入できませんでした。保留中は、ユーザーが保留できる期間(おそらく1時間)に有効期限を設定します。そして、支払いが有効である場合にのみ、製品は在庫から削除されます。

于 2011-07-23T14:46:23.280 に答える
1

通常は、倉庫にあるものに対して1つの値を持ち、送信されたが出荷されていない注文に対して1つの値を持つように、在庫を分離します。

アイテムがショッピングカートに入れられたとき、あなたができることは、有効な在庫が変更されたとき、つまり別のユーザーが注文を送信したときにユーザーに通知することだけです。カートがチェックアウトされるまで、保証はありません。

于 2011-07-23T14:57:47.127 に答える