最初のものが支払われるまで注文はありません
-
16-10-2019 - |
質問
顧客が注文を持っているかどうかをチェックするモジュールを作成する必要があります。また、彼が支払われた場合(別名完全状態)、はいを注文させない場合は、注文しないでください。
私はこのイベントでイベントオブザーバーを使用することを考えました: sales_convert_quote_to_order
そこで確認してください。彼が許可されていない場合、彼はそれを支払うことができるページに投げ戻されます。
そのイベントは、IAMがやろうとしていることに良いですか?それとも私はそれを違ったやり方でやるべきですか?どのように?
解決
このイベントは、支払い延長のバックエンドからトリガーされるため、実際の顧客がトリガーされたときにそこにいるとは思いません。カート内のフロントエンドに通知を表示して、最初の請求書を支払い、すべての請求書が支払われるまで「チェックアウト」ボタンを非表示にする必要があることを指示することをお勧めします。それはおそらく、顧客が請求書を支払うべき方法に依存しますが、あなたは支払い方法として銀行振込を使用しているように聞こえますか?
他のヒント
sales_convert_quote_to_order
は チェックアウトの終わりにトリガーされました(サンダーは「注文を請求書に変換する」と間違えたかもしれません)が、私はそれを使用しません。
技術的な理由ではなく、ユーザーエクスペリエンスのためです。顧客にチェックアウト全体を通過させ、最後に「ごめんなさい、注文することは許可されていない」と伝えません。だから、顧客が誰であるかを知っているチェックアウトで最初のイベントを使用してください。
これは controller_action_predispatch_checkout_onepage_index
, 、顧客としてチェックアウトに行くとき、またはゲストとして「ログイン」または「登録」を選択した後にトリガーされます。これは、チェックアウトが許可されていない場合、エラーメッセージでカートにリダイレクトできる通常の非アジャックスリクエストです。