※ これから記載する事項は、私が所属する会社とは一切関係のない事柄です。
この記事ではb2c-crm-syncレポジトリREADME内のFeature SummaryをもとにB2C CRM Syncの機能を画面のスクリーンショットと共に紹介しようと思います。
実装方法については、Salesforce B2C CommerceのB2C CRM Sync(実装手順編)を参照してください。
b2c-crm-syncの機能内容
※ Salesforce Customer 360 Platform (以下、Platformと言います)
※ Salesforce B2C Commerce (以下、Commerceと言います)
Platform 内に複数のCommerceの環境設定ができる
Platform 内にCommerce の複数のサイト・顧客リストの設定できる
JWT を利用したPlatformとCommerce間のパスワードレス通信ができる
JWTを利用するための設定をレコードとしてもち、PlatformからCommerceへパスワードなしでの通信を実現している。
コネクテッドアプリケーションを利用して、CommerceからPlatformのAPIをパスワードなしで呼んでいる。
インスタンス、顧客リスト、サイトのCommerceとの相互的なインテグレーションを粒状で管理し、さらにメッセージも受信できる
若干わからなかったので推測ではありますが、
npm run crm-sync:sf:b2cinstance:setup
でCommerceからインスタンス、顧客リスト、サイトを取得して、Platformのレコードをアップデートすることができ、さらにエラー時にメールが飛んできたり、コマンドラインにも実行結果が表示される。
Platformの顧客データモデルとしてPersonAccounts またはBase (Account[取引先] / Contact[取引先責任者])を利用することができる
Baseのデータモデルを利用した場合の見た目。取引先担当者と取引先にCommerceの顧客データが保存されている。
Commerceの顧客データがほぼリアルタイムでPlatformに連携される
Commerceのストアフロントから顧客データを編集すると、
Platformの情報も編集される。(Platform→Commerceも同様に連携される)
そのほかにも「Custom.B2CCRMSync.SynchronizeCustomers」というジョブステップが用意されているので、スケジュールや手動でもCommerceからPlatformに顧客データを連携することもできる。
カスタマーがPlatformから代理注文(OOBO[Order on Behalf of])を起動できる
取引先責任者のページレイアウトを設定し、OOBOをできるようにすると、
取引先責任者のセッションで代理ログインし、購入や情報の編集を行うことができる。
Platformから顧客の住所録へのアクセスできる(エンタープライズエディションのみ)
Account ID / Contact ID を会員購入・ゲスト購入ともに注文に紐づけられる
Commerceの注文の属性にAccount/Contact ID が紐づけられている。
ヘッドレスでも顧客データの同期やIDの注文の紐付けが可能
OCAPI Hooksを利用しているので、OCAPI経由のユーザ登録や注文でも同期や紐付けを行うことができる。
b2c-crm-syncのコマンドでできること
基本的にできることは大きく分けて3つかと思います。
その他多くのコマンドがありますが、詳細は npm run crm-sync:help
で確認できます。
1. b2c-crm-syncレポジトリにあるリソースのアップロード
レポジトリの /src
配下にあるリソース群をアップロード
例:
npm run crm-sync:sf:org:deploy
npm run crm-sync:b2c:build
2. 各種テスト
- それぞれのサービスへの接続テスト
- ローカル環境のユニットテスト
- Apexクラスのテスト
- .envファイルの評価テスト
例:
npm run crm-sync:b2c:verify
npm run crm-sync:test:b2c
npm run crm-sync:test:cli
npm run crm-sync:test:use-cases
npm run crm-sync:b2c:auth:jwt
npm run crm-sync:b2c:auth:clientcreds
3. 設定データの移行
.env内の情報やAPIで取得した設定情報をそれぞれのサービスへアップロード
例:
npm run crm-sync:sf:b2cclientid:setup
npm run crm-sync:sf:b2cinstance:setup