要点

  • 手動入力、ブラウザの自動入力、住所の提案をテストする
  • 修正後に送料、税金、納期を再計算します
  • 請求先住所と配送先住所が異なることを許可する
  • 最終的な注文の送信を冪等にする

執筆とレビュー

編集・レビュー方針
執筆
ランダムアドレスジェネレーター編集部
レビュー
フォームおよび QA レビュー チーム
最終更新
住所修正、配送料の再計算、請求の分離、冪等の送信、およびモバイルのケースを追加しました。

アドレス入力に複数のパスがあります

キーボード入力、ブラウザの自動入力、複数行の貼り付け、提案、保存されたアドレスをカバーします。すべてのパスで、国と単位の詳細を保持しながら、1 つの API コントラクトを生成する必要があります。

提案タイムアウトによって有効な手動入力がブロックされてはなりません。買い物客が空のリストに閉じ込められるのではなく、続行できることを説明します。

パス核心的な主張よくある失敗
マニュアル提案なしで送信するリストの選択を強制する
ブラウザの自動入力すべての依存状態の更新が実行されます入力された値は依然として空とみなされます
提案キーボードとスクリーンリーダーの動作マウスのみのインタラクション
保存されたアドレス送料見積もりが再計算されます前回の見積書が残る

買い物客が修正をコントロールできるようにする

入力されたアドレスと提案されたアドレスを並べて表示し、変更を強調表示し、元のアドレスを許可します。アパートや建物の名前を黙って削除しないでください。

受け入れ、保持、再オープン、タイムアウト、および行 2 の欠落した提案をテストします。

送料、税金、配送方法を再計算する

国、地域、または郵便番号を編集すると、方法が無効になり、送料、税金、しきい値、日付が変更される場合があります。新しい見積書が到着するまで、最終的な送信をブロックします。

迅速な編集により同時引用符が作成されます。最新のアドレスバージョンと一致する結果のみを適用します。

  • 国変更後に無効なメソッドをクリアする
  • 送料と税金を一緒に更新する
  • 古い引用応答を無視する
  • 失敗後もカートと住所を保存する

請求と発送には独立した編集可能なコピーが必要です

出荷と同様にコピーを作成できますが、2 つは変更可能なオブジェクトを共有すべきではありません。チェックを外した後に請求を編集しても、配送が変更されてはなりません。

支払い住所チェックにはランダムなデータではなく、支払いプロバイダーのサンドボックスと文書化されたトリガーを使用します。

shippingAddress = structuredClone(selectedAddress);
billingAddress = sameAsShipping
  ? structuredClone(shippingAddress)
  : enteredBillingAddress;

最終送信を冪等にし、アドレスのスナップショットを作成する

ダブルクリック、タイムアウト再試行、モバイルの戻るナビゲーションにより、リクエストが繰り返される場合があります。繰り返される UI アクションを無効にし、サーバー側の冪等キーを使用します。

編集可能なアドレス帳エントリを参照するだけでなく、確認済みの住所スナップショットと見積バージョンを注文に保存します。

モバイルの適用範囲には、主要なアクションの非表示、ページのバックグラウンド化と復元、外部支払い承認からの復帰などのソフトウェア キーボードが含まれる必要があります。再開時に、別の作成操作を送信する前に、既存の順序または冪等リクエストをクエリします。

チェックアウト中に住所が 2 回変更された注文を監査します。そのスナップショットには最終確認済みバージョンが含まれている必要があり、配送見積もそのバージョンに属している必要があり、後で買い物客のアドレス帳を編集しても注文履歴が書き換えられてはなりません。

また、あいまいな失敗もテストします。送信後にブラウザがタイムアウトしますが、サーバーはすでに注文を作成しています。同じキーを使用した再試行では、再度請求したり在庫を 2 回予約したりするのではなく、元の結果を返す必要があります。サポート ツールは、ルーチン ログで完全なアドレスを公開することなく、リクエスト キー、アドレス バージョン、注文識別子を公開する必要があります。これにより、不必要な個人データへのアクセスを制限しながら、回復のテストが可能になります。

  • ダブルクリック、タイムアウト再試行、支払い返還をシミュレートします
  • ページ復元後の冪等ステータスのクエリ
  • 注文アドレスと見積書のバージョンを照合する
  • アドレス帳を編集した後に履歴を再度開く

よくある質問

住所候補サービスの停止でチェックアウトを止めるべきですか?

必ずしもそうとは限りません。リスクに応じて、手動による確認を許可し、アドレスを未検証としてマークします。

郵便番号を編集すると何が変わりますか?

古い応答を無視して、配送方法、送料、日付、関連する税金を再計算します。

ボタンを無効にすると重複注文が防止されますか?

完全にはそうではありません。サーバーには冪等キーまたは同等の再試行保護も必要です。

出典と参考資料

  1. MDN: 住所フォームのオートコンプリート
  2. W3C WAI: フォームエラー通知