コンテンツにスキップ

注文時のみ配送先追加を許可する補足仕様

位置づけ

本ドキュメントは、配送先追加に関する追加合意事項(正本補足)です。 マイページの配送先管理では配送先の追加・変更を受け付けず、注文手続き中に限って新規配送先を追加できる要件を明確化します。 注文画面で選択可能な既存送り先の範囲も本ドキュメントで定義します。

合意日

  • 2026年6月1日

背景

  • 旧 Web では、顧客が配送先を選ぶタイミングで新規配送先を登録できていた。
  • 新システムでは、マイページの配送先管理からの追加依頼はお問い合わせ対応とする。
  • 一方で、総務運用上は「注文時に新規配送先を追加し、その注文に使える」ことが必要である。
  • 新規配送先は、注文が完了するまで顧客の登録配送先として保存しない。
  • 請求先配下に複数の得意先がある運用では、注文画面で送り先を選ぶときに、ログイン顧客自身の登録配送先だけでなく、同じ請求先配下の得意先宛も選択できる必要がある。
  • 大多数の顧客では、BtoB の登録データ上で customerCode(得意先番号)と billingCustomerCode(請求先番号)が一致している。この本店 ID で注文する場合、同じ請求先番号を持つ他得意先の住所も送付先候補として扱う。

決定事項

  • マイページ /account/addresses は、登録済み配送先の確認とお問い合わせ導線のみを提供する。
  • マイページから createCustomerAddress / updateCustomerAddress / deleteCustomerAddress を実行できる UI は提供しない。
  • checkout /checkout では、登録済み配送先の選択に加えて、新しい配送先を入力できる。
  • checkout の既存送り先候補には、ログイン顧客自身の登録配送先に加えて、同じ billingCustomerCode(請求先コード)配下の得意先宛を含める。
  • 同じ請求先配下の得意先宛とは、SMILE 由来の Customer.customFields.billingCustomerCode がログイン顧客の請求先コードと一致する得意先のマスター住所、またはその得意先に紐づく登録済み納品先住所を指す。請求先コードが一致しない顧客の宛先は候補に出さない。
  • 送り先候補の優先分類は次の通りとする。
  • 得意先マスター住所: 得意先のマスターに記載されている住所。SMILE 受注CSVの 納品先コード0 とし、納品先マスタは使用しない。
  • 登録済み納品先住所: 納品先マスタに登録済みの住所。既存の deliveryPointCode(納品先コード)を使う。
  • 新規納品先住所: 上記のどれにも合致しない場所へ送るため、checkout のフォームから新たに入力する住所。この場合のみ、新規納品先として納品先CSV出力対象にする。
  • 送り先候補の表示では、どの得意先宛か判別できるよう、得意先名または得意先コードを併記する。内部 field 名や raw ID は表示しない。
  • checkout で入力した新規配送先は、注文の配送先としては setOrderShippingAddress により注文へ反映する。
  • checkout で入力した新規配送先を顧客の登録配送先へ追加するのは、注文完了が確認できた後に限る。
  • 注文完了前、決済未確定、決済キャンセル、決済エラー、途中離脱では、顧客の登録配送先を追加しない。
  • 外部決済へ遷移する場合は、checkout 送信時点では顧客配送先を作成しない。注文完了画面で注文状態または決済状態が完了済みであることを確認してから登録する。
  • 決済キャンセルまたは決済エラーで完了画面へ戻った場合、登録待ちの新規配送先情報は破棄する。

完了判定

  • 顧客配送先として登録できるのは、少なくとも次の条件を満たした場合のみとする。
  • 注文が active ではない。
  • 注文状態が PaymentSettled / PaymentAuthorized のいずれか、または支払い状態に Settled が含まれる。
  • 完了画面の statuscancelled / error ではない。
  • 決済確認ポーリング中ではない。
  • 上記を満たさない場合、createCustomerAddress は実行しない。

実装ルール

  • checkout 送信処理で、決済処理より前に createCustomerAddress を呼ばない。
  • 既存送り先候補の取得は、請求先コード境界を fail-closed に扱う。請求先コードが未設定または解決不能な場合、ログイン顧客自身の配送先のみを候補にし、他得意先の宛先を推測で混ぜない。
  • 同じ請求先配下の得意先宛を選択した場合でも、その宛先をログイン顧客の登録配送先として複製しない。注文の配送先へ反映し、必要な得意先コード・納品先コードは注文/SMILE export が参照できる形で保持する。
  • 得意先マスター住所を選択した注文は、SMILE 受注CSVの 納品先コード0 を出力する。納品先CSVは出力しない。
  • 登録済み納品先住所を選択した注文は、SMILE 受注CSVの 納品先コード に既存の deliveryPointCode を出力する。既にマスタ登録済みのため、新規納品先CSVは出力しない。
  • 新規納品先住所を入力して注文が完了した場合のみ、採番済みの deliveryPointCode を使って納品先CSVを出力する。
  • 非リダイレクト決済では、addPaymentToOrder 成功後に限って createCustomerAddress を呼ぶ。
  • 外部決済では、注文コードに紐づく一時データとして新規配送先入力値を保持し、完了画面で完了判定を満たした場合だけ登録する。
  • 一時データは永続的な顧客データではない。キャンセル・エラー時は破棄し、成功時は登録完了後に破棄する。
  • 登録に失敗した場合はエラーを観測可能にする。成功したように見せるための silent fallback は行わない。

受け入れ観点

  • マイページ配送先管理では、配送先追加フォームが表示されず、お問い合わせ導線のみが表示されること。
  • checkout では、登録済み配送先に加えて「新しい配送先」を選択・入力できること。
  • checkout では、同じ請求先コード配下の得意先宛が既存送り先候補として選択できること。
  • 同じ請求先コード配下の得意先マスター住所と、登録済み納品先住所がどちらも既存送り先候補として選択できること。
  • 請求先コードが異なる得意先宛、または請求先コードを解決できない他得意先宛は、checkout の送り先候補に表示されないこと。
  • 同じ請求先配下の得意先宛を選択して注文しても、ログイン顧客の登録配送先に重複追加されないこと。
  • 得意先マスター住所への注文では、受注CSVの 納品先コード0 になり、納品先CSVが出力されないこと。
  • 登録済み納品先住所への注文では、新規納品先CSVが出力されないこと。
  • checkout フォームから新規納品先住所を入力して完了した注文だけが、納品先CSV出力対象になること。
  • 新規配送先入力後、注文が完了しなかった場合は、マイページの登録済み配送先に追加されないこと。
  • 外部決済でキャンセルまたはエラー戻りした場合は、顧客配送先が追加されないこと。
  • 外部決済で注文完了画面へ戻り、注文完了が確認できた場合は、入力した配送先が顧客配送先として追加されること。
  • 既存配送先を選択した注文では、新しい顧客配送先を作成しないこと。

非採用

  • マイページ配送先管理から顧客自身が配送先を追加・変更・削除できるようにする案。
  • checkout で入力された時点、または決済前に顧客配送先を先行登録する案。
  • 決済キャンセル後も次回 checkout 用に新規配送先入力を保持し続ける案。