やりたいこと

Shopifyで管理する顧客情報の一部としてLINEの情報を保存することが、この記事のゴールです。

やりたいこと

LIFF

Shopifyでは、LINE等外部のプラットフォームとセキュアに連携するためには、基本的にShopify Plusのプランに入ると使えるMultipass APIというしくみを使う必要があります。

前職でもMultipass APIの使用経験はあったので、エンジニアがいれば、Multipass APIを使うと容易にShopifyと連携できるという認識はありました。

ただ、Shopify Plusは月に2,000ドルかつ年契約で、2020年末にリリースされたソーシャルPLUSというアプリも月に800ドルかかるので、導入のハードルがとても高いです。

そこで考えたのが、LINEが提供するウェブアプリのプラットフォームであるLIFF(LINE Front-end Framework)の活用です。

Empty Dressyでは、5つのLIFFアプリを立ち上げることで、ユーザーにはShopifyを感じさせずに決済をしていただきつつ、LINEのIDを取得し、それをCRMに活用しています。

LIFF

Shopifyで作成したショップのURLをLIFFアプリとして登録すると、LIFF URLが生成されます。

LIFFアプリでは、若干のJavaScriptを書くことで、LINEのユーザーIDを取得することができます。

LIFFをご存知ない方は、下記の公式ドキュメントをご覧ください。

LIFFアプリを開発する

はじめに、LIFFの便利機能がつまったLIFF SDKを使えるようにするため、<head>タグ内に以下のコードを入れます。</head>

<!-- /Layout/theme.liquid -->

<script src="https://static.line-scdn.net/liff/edge/2.1/sdk.js"></script>

Customer note

Shopifyの顧客情報にLINEのユーザーIDを追加するために、Customer noteを使います。

Customer noteをご存知ない方は、下記のShopifyジャパンの公式ブログをご覧ください。

Shopifyテーマカスタマイズの三種の神器:Cart attributes、Line Item Property、Customer noteを使いこなそう!

今回は「line-user-id」という独自のフィールドを追加し、そこにLIFF経由で取得するLINEのIDを登録できるようにします。

<!-- /Templates/customers/register.liquid -->

<input type="text" name="customer[note][line-user-id]" id="line-user-id" style="display: none;">

ユーザーには「line-user-id」を意識してもらう必要はないので、表示はさせておらず、下記のようにアカウントを登録することになりますが、裏側では「line-user-id」として、LINEのユーザーIDが登録されるようにします。

Customer note

同ファイルに<script>タグを追加し、下記のコードを書くことで、LIFFのSDKを使い、上記でおいた<input>タグの値として、LINEのユーザーIDが入ることで、顧客情報としてLINEのユーザーIDが保存できるようになります。</script>

// /Templates/customers/register.liquid

const lineUserIdInput = document.querySelector('#line-user-id');
liff
  .init({
    liffId: ''
  })
  .then(() => {
    liff.getProfile()
      .then((profile) => {
        lineUserIdInput.value = profile.userId;
      })
      .catch((err) => {
        console.error(err);
      })
  })
  .catch((err) => {
    console.error(err);
  })

LIFF経由でアカウントを登録しない人はどうするの?

Empty Dressyでは、レンタルのやりとりを全てLINEで行っているので、リッチメニューからLIFFでアカウントを登録する以外の導線を消しています。

それでも極稀に、URLの直打ちか何かで、通常のWebブラウザから会員登録をしてくる猛者もいるのですが、その場合は、自動的にアカウントを削除し、その旨をメールするという運用にしています。

通常のECサイトだと、全てをLINE経由にするという判断はなかなかしづらいかと思いますので、同様のしくみで後からでもLINEの情報を登録できるような機能を準備しつつ、LINEの情報を登録することにインセンティブを持たすという感じかなと思います。