Assist_Design/docs/ja/how-it-works/ordering-provisioning.md
ramirez d7efc99fdc Add Japanese translations of UAT and how-it-works documentation
Translated all UAT test guides and how-it-works documentation to Japanese.
Files are organized under docs/ja/uat/ and docs/ja/how-it-works/.
2026-02-24 12:11:14 +09:00

3.5 KiB
Raw Permalink Blame History

sidebar_position, title
sidebar_position title
5 注文とプロビジョニング(詳細)

注文とプロビジョニング(詳細ガイド)

注文作成からフルフィルメントまでの詳細な技術フローを説明します。

注文作成フロー

チェックアウトセッション

  • ユーザーがプランを設定すると、チェックアウトセッションがサーバーサイドで構築されます
  • セッションには選択されたプラン、アドオン、設置オプション、すべての設定詳細が含まれます
  • セッションには有効期限があり、長時間経過すると設定プロセスのやり直しが必要

事前検証

  1. ユーザーにWHMCSクライアントマッピングが存在すること
  2. WHMCSに少なくとも1つの支払い方法が存在すること
  3. インターネット注文の場合、WHMCSにアクティブなインターネットサービスがないこと
  4. 在留カードが提出済みSubmittedまたはVerifiedであること

Salesforce Order構造

Orderオブジェクトフィールド

フィールド API名
AccountId AccountId IDマッピングから
Status Status "Draft"
Type Type__c Internet / SIM / VPN
EffectiveDate EffectiveDate 本日の日付
Pricebook2Id Pricebook2Id ポータル価格表ID

OrderItemレコード

  • Salesforce Composite API経由で作成
  • 各SKUに対してPricebookEntryIdからカタログ検索
  • UnitPriceとQuantityを価格表から設定

住所スナップショット

注文には注文時点の住所が保存されます。後でプロフィールの住所が変更されても、注文の住所は変わりません。

フルフィルメントプロセス

トリガー

  • Salesforce CDCが注文ステータスの変更を検出「Approved」「Reactivate」
  • イベントがBFFのプロビジョニングキューBullMQに送信
  • べき等キーによる重複処理防止

プロビジョニングステップ

  1. Salesforce Activation_Status__c = "Activating" に更新
  2. Salesforce OrderItemsをWHMCS商品にマッピング
  3. WHMCS AddOrder APIアクションを呼び出しWHMCS注文、請求書、サブスクリプションレコードを作成
  4. SIM注文の場合FreebitアクティベーションAPIを呼び出し
  5. SalesforceをWHMCS Order ID、Activation Status、エラー情報で更新
  6. 注文キャッシュを無効化
  7. UI ライブ更新用のリアルタイムイベントを公開

分散トランザクション

フルフィルメントはロールバック付きの分散トランザクションパターンを使用:

  • Salesforceステータス更新後にWHMCS作成が失敗 → Salesforceステータスをロールバック
  • WHMCSに部分的な注文は残りません

エラー処理

シナリオ 動作
支払い方法不足 SalesforceにPAYMENT_METHOD_MISSINGで一時停止
WHMCS APIエラー 失敗としてマーク、Salesforceステータスをロールバック
Freebitエラー 失敗としてマーク、エラーをSalesforceに記録
一時的エラー BullMQキューでバックオフ付きリトライ

リアルタイム注文追跡

  • 顧客は注文イベントストリームSSEに接続可能
  • Salesforceでステータスが変更されると、UIが手動更新なしで自動更新
  • 注文詳細ページはServer-Sent Events経由でライブ接続を維持