Assist_Design/docs/ja/how-it-works/order-fulfillment.md

85 lines
3.6 KiB
Markdown
Raw Normal View History

---
sidebar_position: 6
title: "注文フルフィルメント"
---
# 注文フルフィルメント
Salesforceの注文がWHMCSのサービスとして実現される技術的プロセスを説明します。
## フルフィルメントトリガー
Salesforce Change Data Capture (CDC)が注文の`Activation_Status__c`フィールドの変更を検出すると、BFFのプロビジョニングキューBullMQにジョブがエンキューされます。
### トリガー条件
- 注文ステータスが「Approved」または「Reactivate」に変更
- べき等キーにより同一注文の重複処理を防止
- ジョブはバックオフ付きリトライ戦略を使用
## プロビジョニングワークフロー
### ステップ1ステータス更新
Salesforce注文の`Activation_Status__c`を「Activating」に設定し、処理中であることを示します。
### ステップ2WHMCS注文作成
- Salesforce OrderItemsをWHMCS商品IDにマッピングProduct2の`WH_Product_ID__c`フィールドを使用)
- WHMCS `AddOrder` APIアクションを呼び出し
- 作成されるものWHMCSオーダー、請求書、サブスクリプション/サービスレコード
- 支払い方法:`stripe`
- プロモコード:設定されている場合に適用
### ステップ3SIMアクティベーションSIM注文のみ
- eSIM注文Freebit APIでeSIMプロファイルをアクティベート
- Physical SIM注文エージェントが`Assign_Physical_SIM__c`にSIMを割り当て後にアクティベート
### ステップ4Salesforce更新
- `WHMCS_Order_ID__c`に作成されたWHMCS Order IDを記録
- `Activation_Status__c`を「Active」成功時またはエラーステータスに更新
- 各OrderItemに`WHMCS_Service_ID__c`を記録
- 関連Opportunityに`WHMCS_Service_ID__c`を記録しステージを「Active」に更新
### ステップ5リアルタイム通知
- SSEイベントを公開して接続中のクライアントに注文ステータスの変更を通知
- アプリ内通知を作成「Order approved」「Service activated」など
## エラー処理とリカバリ
### 支払い方法不足
`Activation_Error_Code__c` = `PAYMENT_METHOD_MISSING`が設定されます。顧客がWHMCSで支払い方法を追加し、サポートチームが再トリガーするまでプロビジョニングは一時停止されます。
### WHMCS APIエラー
- WHMCS注文作成失敗時、Salesforceステータスをロールバック
- エラーコードとメッセージをSalesforceに記録
- 部分的なWHMCS注文は保持されません
### Freebit/SIMエラー
- エラーをログに記録しactivation statusに表示
- 注文はSalesforceにリトライ用に保持
### 一時的エラー
- BullMQキューでエクスポネンシャルバックオフ付きリトライ
- 最大リトライ回数後にフルフィルメント失敗としてマーク
## 双方向リンク
フルフィルメント後、システムは双方向にリンクされます:
| 方向 | フィールド | 場所 | 値 |
| --- | --- | --- | --- |
| SF Order → WHMCS | `WHMCS_Order_ID__c` | Salesforce Order | WHMCS Order ID |
| SF OrderItem → WHMCS | `WHMCS_Service_ID__c` | Salesforce OrderItem | WHMCSサービスID |
| SF Opportunity → WHMCS | `WHMCS_Service_ID__c` | Salesforce Opportunity | メインWHMCSサービスID |
| WHMCS Service → SF | OpportunityIdカスタムフィールド | WHMCS Product/Service | Salesforce Opportunity ID |
この双方向リンクにより解約が機能します。ポータルはWHMCSサービスIDでOpportunityを検索しステージを更新します。