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/.
3.5 KiB
3.5 KiB
sidebar_position, title
| sidebar_position | title |
|---|---|
| 5 | 注文とプロビジョニング(詳細) |
注文とプロビジョニング(詳細ガイド)
注文作成からフルフィルメントまでの詳細な技術フローを説明します。
注文作成フロー
チェックアウトセッション
- ユーザーがプランを設定すると、チェックアウトセッションがサーバーサイドで構築されます
- セッションには選択されたプラン、アドオン、設置オプション、すべての設定詳細が含まれます
- セッションには有効期限があり、長時間経過すると設定プロセスのやり直しが必要
事前検証
- ユーザーにWHMCSクライアントマッピングが存在すること
- WHMCSに少なくとも1つの支払い方法が存在すること
- インターネット注文の場合、WHMCSにアクティブなインターネットサービスがないこと
- 在留カードが提出済み(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)に送信
- べき等キーによる重複処理防止
プロビジョニングステップ
- Salesforce
Activation_Status__c= "Activating" に更新 - Salesforce OrderItemsをWHMCS商品にマッピング
- WHMCS
AddOrderAPIアクションを呼び出し:WHMCS注文、請求書、サブスクリプションレコードを作成 - SIM注文の場合:FreebitアクティベーションAPIを呼び出し
- SalesforceをWHMCS Order ID、Activation Status、エラー情報で更新
- 注文キャッシュを無効化
- UI ライブ更新用のリアルタイムイベントを公開
分散トランザクション
フルフィルメントはロールバック付きの分散トランザクションパターンを使用:
- Salesforceステータス更新後にWHMCS作成が失敗 → Salesforceステータスをロールバック
- WHMCSに部分的な注文は残りません
エラー処理
| シナリオ | 動作 |
|---|---|
| 支払い方法不足 | SalesforceにPAYMENT_METHOD_MISSINGで一時停止 |
| WHMCS APIエラー | 失敗としてマーク、Salesforceステータスをロールバック |
| Freebitエラー | 失敗としてマーク、エラーをSalesforceに記録 |
| 一時的エラー | BullMQキューでバックオフ付きリトライ |
リアルタイム注文追跡
- 顧客は注文イベントストリーム(SSE)に接続可能
- Salesforceでステータスが変更されると、UIが手動更新なしで自動更新
- 注文詳細ページはServer-Sent Events経由でライブ接続を維持