メタフィールドデータを外部システムに連携させる
メタフィールドのデータを外部サービスに連携することで、別のサービスでもShopifyのリソースを最大限に活用できます
このベストプラクティスでは、AL CustomerMetaSyncを使って、以下の構成を作成する方法を解説します:
- 誕生日が入力されたことを条件に、別のサービスに誕生日データを連携する
今回はロイヤリティー、ポイントでよく活用されるLoyalityLionを実例として紹介します。
ステップ1:誕生日メタフィールドを作成
Shopifyにはお客様のメタフィールドとして「誕生日」が標準で準備されています。
詳しいドキュメントはList of standard metafield definitionsをご確認ください。
※Shopify Formsで誕生日のメタフィールドを作成してないのに、自動で作成されるのはこの標準メタフィールドが活用されています。
もし誕生日の標準メタフィールドが作成されてない場合、AL CustomerMetaSyncのホーム画面に以下のようなアイコンが表示されます。誕生日の定義を追加するをクリックして、メタフィールドの定義を追加してください。
ステップ2:フォームブロックを作成
AL CustomerMetaSyncの管理画面で、以下のようにフォームブロックを作成します:
- 「誕生日」の1フィールドを追加
誕生日は変わることがないデータのため、設定中のフォームブロックではオプション設定 > 編集を許可 > データがなければ1度だけ編集を許可 に選択を入れましょう。
ステップ3:プロフィールページにフォームを設置
ステップ4:サンキューページにフォームを設置
ステップ5:注文状況ページにフォームを設置
ステップ6:Shopify FlowでLoyalityLionに登録された誕生日データを送信
誕生日がプロフィール、サンキュー、注文状況ページのいずれかで送信されたことをトリガーに、Shopify Flowを使ってLoyalityLionに誕生日データを送信する仕組みを作成します。
AL CustomerMetaSyncでは、プロフィール、サンキュー、注文状況ページでフォームが送信されると、Shopify Flowを起動することができます。
Shopify Flowでは以下のように構成します:
- トリガー:「Customer Metafield Submitted on Profile Page」&「Customer Metafield Submitted on Thank you Page」&「Customer Metafield Submitted on Order status page」
- 条件:該当フォームのBlock IDで絞り込み
- 条件:LL birthday valueが空白または存在しません。
- アクション:「Log output」で登録した値を出力する
- アクション:「Send HTTP request」を使ってLoyalityLionが提供するAPIのエンドポイントにデータ送信
- 条件:LoialityLionからのレスポンスの結果がokかを判定
- アクション:「Send Internal email」を使って、エラーが生じた場合、管理者にメール
上記項目を一つずつ詳細を解説します。
1: どこのページから誕生日を登録しても、LoyalityLionにデータ連携できるよう、誕生日を設置した全てのページでトリガーが発火するように準備します。
2: 作成したフォームブロックでのみFlowを動かすための条件です。
3: LoyalityLionはShopifyとの連携において、LoyalityLionのインターフェイスを通じて誕生日が登録された場合、loyaltylion.birthday
というShopifyのメタフィールドにLoyalityLionの誕生日データが連携されます。既にLoyalityLionに誕生日の登録がないかを判定するため、この条件を設けます。
4: エラーなどが生じた場合、登録したメタフィールドの値に問題がないか検証するためにLog outputの過程を設けています。必ずしも必要ではありません。
5: LoyalityLionが提供する Update Customer のAPIを利用して誕生日データを送信します。LoyalityLionではAPI keyを事前に作成する必要があります。詳しくは API keysのreate an API key をご参照ください。
※5のプロセスはエンジニア的要素を必要とし、慣れてない方からするとハードルがあります。サポートが必要な場合は、いつでも弊社にお問い合わせください。
6: LoyalityLionの処理結果を受け取って、正常に処理が終わったかを判定します。
7: 6の結果を受け、リクエストが正常に処理でなければ、Send Intenal Emailを使用し管理者や運営者に通知を行います。