こんにちは。CData Software Japanの色川です。
EC サイトの会員データを、SFA やCRM に連携したいケースは多いですよね。この記事では、GMO MakeShop の会員データをSalesforce に連携する方法をご紹介します。
- GMO MakeShop とは
- ArcESB とは?
- この記事のシナリオ
- 必要なもの
- GMO MakeShop の会員データをSalesforce の取引先(Account)に連携する
- シナリオの自動実行
- レコードをまとめて処理したい
- おわりに
GMO MakeShop とは
GMO MakeShop は、国内で高い知名度を誇るASP ショッピングカートサービスです。どんなジャンル・商材にも対応できるEC サイトを手軽に構築することができ、導入実績や店舗会員数で国内最大規模の実績を有しているサービスです。
ArcESB とは?
ファイル転送(MFT)とSaaSデータ連携をノーコードで実現できるデータ連携ツールです。ファイル・データベース・SaaS API、オンプレミスやクラウドにある様々なデータをノーコードでつなぐ事ができます。
この記事のシナリオ
この記事では「GMO MakeShop の会員データをSalesforce の取引先(Account)に連携する」シナリオを作成します。
このシナリオで作成するフローで「GMO MakeShop の会員データを定期的に取得し、Salesforce の取引先(Account)情報として連携(登録または更新)」することができます。
GMO MakeShop 会員管理
Salesforce 取引先(Account)
必要なもの
この記事のシナリオでは以下の製品を利用します。すべて30日間のトライアルが提供されています。ぜひお手元で試してみてください。
製品のインストール等はこちらの記事を参考にしてください。
GMO MakeShop 外部システム連携の設定
GMO MakeShop とのAPI 接続には、利用するデータ種類(商品、注文、会員、など)ごとに認証コードが必要です。MakeShop 管理画面の「外部システム連携」から、この記事のシナリオで必要な認証コードを取得します。
商品データ連携設定
注文データ連携設定
会員データ連携設定
会員認証連携設定
それぞれの認証コードは、ArcESB のCData コネクタで利用しますので、控えておいてください。
ArcESB の基本的な使い方
ArcESB の起動方法や基本的なフローの作り方についてはこちらをご覧ください。
それでは実際にそれぞれの連携フローを作成していきます。
GMO MakeShop の会員データをSalesforce の取引先(Account)に連携する
このシナリオで作成する連携フローは以下のような流れになっています。
コネクタ | 内容 | |
---|---|---|
1 | CData | GMO MakeShop の会員データ(Members)をSelect |
2 | XMLMap | 1.で取得した情報を3.にマッピング |
3 | Salesforce | Salesforce の取引先(Account)にUpsert |
CData コネクタの配置と構成
最初にフローの起点となるCData コネクタを配置し「GMO MakeShop の会員データを取得」します。コアカテゴリから「CData コネクタ」を選択し、フローキャンバスへ配置します。
コネクタの設定で、GMO MakeShop への接続を設定します。データソースに「CData MakeShop」を選択して、変更を保存します。
Advanced タブに移り、Authentication のPassword
に、GMO MakeShop アカウントのパスワードを。Member Authentication Code
に事前準備で取得した会員認証連携設定の認証コードを設定します。
Other Driver Settings
に、事前準備で取得した「商品・注文・会員データ連携設定」と、GMO MakeShop アカウントである「ショップID」を下記の形式で指定します。
MembersAccessCode=[会員データ連携設定の認証コード];OrdersAccessCode=[注文データ連携設定の認証コード];ProductsAccessCode=[商品データ連携設定の認証コード];ShopId=[ショップID];
接続テストでGMO MakeShop への接続を確認します。
会員データ抽出の設定を行います。アクションに「Select」。対象テーブルに「Members」テーブルを選択します。
抽出するカラムの選択や、条件設定もここで行えます。このシナリオではMemberId が「cdata01」から始まるデータ(cdata010-019 までの10件)を条件に指定しています。
「XML 出力をプレビュー」で取得されるデータをプレビュー確認することができます。
設定内容で正しく取得できるか確認するために、アウトプットタブから「受信」を実行します。対象レコード分、取得できていれば成功です。
Salesforce コネクタの配置と構成
次にフローの終点となるSalesforce コネクタを配置し「Salesforce の取引先(Account)へのUpsert を設定」します。「その他」カテゴリからの「Salesforce コネクタ」を選択し、フローキャンバスへ配置します。
接続
でSalesforce の接続情報を作成します。ここで作成した接続情報は同じSalesforce 組織に接続するSalesforce コネクタで共有することができます。
アクションに「Upsert」。対象テーブルに「Account」を選択します。
XML Map の配置と構成
このフローの最後に、CData コネクタから取得する情報を、Salesforce コネクタにマッピングします。
コアカテゴリから「XML Map」コネクタを配置します。
フローキャンバスの中で、CData コネクタからXML Map コネクタに。XML Map コネクタからSalesforce コネクタへフローを繋ぎます。フローを接続したら、ワークスペースを保存してください。これで双方のデータ構成(スキーマ)がXML Map コネクタで認識できるようになります。
このシナリオでは、GMO MakeShop の会員ID をSalesforce の取引先番号へ、とそれぞれの項目を以下のようにマッピングしています。なお、XML Map では同じ名前を持つ項目は自動的にマッピングが支援されます。
GMO MakeShop(Members) | Salesforce(Account) |
---|---|
MemberId | AccountNumber |
HomeAddress1 | BillingCity |
HomePost | BillingPostalCode |
HomePrefecture | BillingState |
MemberName | Name |
HomePhone | Phone |
これで「GMO MakeShop の会員データを、Salesforce の取引先(Account)へ連携する」フローができあがりました。
このシナリオではシンプルなマッピングのみでデータ項目の変換などは行いませんが、ArcESB でのデータマッピングや変換について興味のある方はこちらを併せてごらんください。
連携フローの実行と確認
作成したフローを実行して確認してみましょう。
起点となるCData コネクタからフローを実行してみます。アウトプットタブから「受信」を実行します。
フローの終点となるSalesforce コネクタのインプットタブの結果を確認します。抽出条件に合致する会員データの該当レコード数分、実行されていれば成功です。
Salesforce の取引先(Account)に連携されていることが確認できます。
シナリオの自動実行
ArcESB ではフローを定期実行するスケジューラ機能を持っています。今回のシナリオであれば、それぞれのフローの起点となるコネクタの「オートメーション」タブで設定することができます。1時間に1度、毎時0分に定期実行する場合は、このように設定します。
レコードをまとめて処理したい
基本的に ArcESB では、1レコードずつXMLドキュメントとして出力し処理を実行します。レコード数が多い場合など、処理対象レコードを1つのXMLドキュメントに一括して出力し処理を実行したい場合にはバッチ処理を活用する事ができます。ArcESB のバッチ処理はこちらを参考にしてください。
おわりに
この記事では会員データを例にフローを作成しましたが、ArcESB とCData Driver を組み合わせれば、会員データに限らず、GMO MakeShop とのデータ連携をノーコード&ローコストで実現することができます。
ArcESB はシンプルで拡張性の高いコアフレームワークに、豊富なMFT・EDI・エンタープライズコネクタを備えたパワフルな製品です。CData Drivers との組み合わせで250を超えるアプリケーションへの連携を実現できます。必要な連携を低価格からはじめられる事も大きな特長です。
皆さんのつなぎたいシナリオでぜひ ArcESB を試してみてください。
お試しいただく中で何かご不明な点があれば、テクニカルサポートへお気軽にお問い合わせください。
この記事では ArcESB™ 2021 - 21.0.8098
を利用しています。