Shopify会員登録・ログインを自社サイトの会員登録・ログインにも利用したい

自社サイトの会員向けサービスの利用ができるように、会員登録・ログインを設定し、

その会員がイコール、自社ECサイトの会員となる旨を利用者にアナウンスした上で利用者同意をとり、

Shopify会員登録・ログイン機能を利用して、会員向けサービスへの会員登録・ログインとしたい。

イメージは自社サイト上の会員登録からSSOでShopify会員登録フォームに遷移し、

Shopify会員登録完了後に自社サイト会員ログイン後に遷移できるようになる。

通常Shopify会員後にECサイトのログイン画面になるところを自社サイトに戻らせることが自動遷移できるか、

自動遷移ができなくても「ログイン後サイトを利用する」などのボタンアクションでできるか。

など、Shopify会員ログイン機能をECサイト以外のサイトで利用ができるかを知りたい。

@apl1045

興味があり調査してみました。

ShopifyのストアフロントAPIで実現できるかもしれません。

会員登録には、customerCreate

ログインと同等の動きをするものとして、customerAccessTokenCreate

があります。

customerCreateに関しては、

必要な情報をPOSTすればShopifyストアに会員が作成されます。

customerAccessTokenCreateに関しては、

メールアドレスとパスワードをPOSTすることにより、

Shopifyストアに登録されている情報であればアクセストークンが返却され、

そうでなければ、エラーメッセージが返却されます。

上記のAPIを利用すれば、

Shopifyに遷移することなく自社サイト上でShopifyストアへの会員登録もログインも完了できるはずです。

質問者様の要件を掴み切れていないようにも感じているので、

見当違いな回答になっている場合はスルーしてください。

ご参考まで。

(キュー田辺)

株式会社Q 田辺さま

貴重な情報ありがとうございます。

https://note.com/ryoppei/n/nf9a684eb459d

のあたりも含め、深堀検討してみたいと思います。

現時点の調査ではShopify会員登録フォームを自社サイトのなかで流用するのはNGと認識しており、自社サイトの会員=EC会員でなりたたせるために

以下のような流れで可能かを検討したく、お知恵がお借りできれば幸いです。

※Shopify Plus Multipass SSO を想定

①自社サイト会員登録頁⇒自社ECサイト(Shopify)の会員登録フォームへ

(Excuse文面で促す・・・当サイトの会員登録はECサイト会員登録となります)

②EC会員登録を完了頁に、自社サイトへの戻るリンク

③自社サイトにて会員ログイン

⇒ここで自社サイト会員ログイン情報にShopify側のトークン連携ができるか

⇒自社サイトの会員基盤は必須となる?IaaS(Auth0)

④自社サイト内での会員サービス(ミニゲームや会員向けコンテンツ投稿など)を利用し

ゲームやコンテンツの中でレコメンドされるオススメEC商品からECサイトへ遷移

⇒ここでSSO連携できるか

※EC側でのログインが初回遷移時にのみ必要で、

そのあとはシームレスに自社サイト(ログインした状態)とECサイト(ログインした状態)とを行き来できるようにしたい

▼以下は、自社サイトとECサイト(Shopify Plus)でのポイント連携についてのご質問

⑤自社ECサイト内で会員がゲーム時や投稿時にポイント付与され、それがECポイントとして利用できるようにしたい

⇒ECポイントは「easyPoints」を利用している

⑥自社サイトの会員マイページでEC会員情報をすべて表示できなくても最低限

会員名、ポイント残高を表示したい

⇒ポイント残高は(ECポイント残高+自社サイトでの取得ポイント)

⑦ECサイト側へ自社サイトで取得したポイントがECポイントとして加算される

⇒会員マイページのポイント残高に追加されている(API)

⇒自社サイト会員マイページとECサイト会員マイページ それぞれでポイント残高がみれる

ということを実現できないかと調査中です。

恐れ入りますが、アドバイスを頂戴できますとありがたく

何卒よろしくお願いいたします。

@apl1045

Shopify PlusのMultipassについては調査したことがなかったのですが、

折角の機会ですので調査してみました。

おっしゃる通り、Multipassを使用した方が良さそうですね。

ご質問いただいている内容に、わかる範囲で回答いたします。

①自社サイト会員登録頁⇒自社ECサイト(Shopify)の会員登録フォームへ
(Excuse文面で促す・・・当サイトの会員登録はECサイト会員登録となります)

Mutlipassをご利用の予定なのでしたら、

Shopifyストアの会員登録フォームに遷移しなくても大丈夫なはずです。

下記のURLに記載の方法で、「自社サイト」の会員情報をもとに、

Multipassログイン用のURLを作成し、

https://shopify.dev/docs/api/multipass

ユーザーにそのURLにアクセスして貰えば(もしくは、「自社サイト側」でリダイレクトをかけてあげれば)、

Shopifyストアに登録されていないEmailアドレスだった場合、

Shopifyストアへの会員登録とログインが同時に行われます。

(私の開発ストアでテストした限りでは、そのような挙動を示しました。)

※しかし、この仕様には注意が必要な側面もあり、下記サイト様の記事に記載されている注意事項をご一読いただく「自社サイト」側に何らか対策をされることをお勧めいたします。

https://zenn.dev/hiroharu8864/articles/6542ea3a302737

別Webサイト側で、メールアカウント発行された場合、Shopifyのアカウントがログイン連携できてしまう。トークン呼び出し元で、既存Shopifyに登録されているメールアカウントでマルチパスログイン認証されると、ログイン成功となりのっとりが可能となる。
②EC会員登録を完了頁に、自社サイトへの戻るリンク
このリンクも不要になるはずです。

https://shopify.dev/docs/api/multipass

こちらに記載の方法でMultipassログイン用のURLを作成する際に、

return_toに、自社サイトのURLを設定しておけば、

Mutlipass成功後に自動的に自社サイトにリダイレクトされます。

③自社サイトにて会員ログイン
⇒ここで自社サイト会員ログイン情報にShopify側のトークン連携ができるか
⇒自社サイトの会員基盤は必須となる?IaaS(Auth0)

トークン連携というのが、何を指しているのかを把握できていないのですが、

Multipassのためのトークンは、

https://shopify.dev/docs/api/multipass

こちらの手順で作成ますので、そちらを使用して連携することになるかと思います。

具体的には、上記のTokenと下記のストアフロントAPIを使用してアクセストークンを生成することで、Shopifyストア上の顧客情報を「自社サイト」に持ち込むことができるはずです。

https://shopify.dev/docs/api/storefront/2023-04/mutations/customerAccessTokenCreateWithMultipass

(私のやり方が悪いのか、このAPIの動作を確認できませんでした。)

「自社サイト」の会員基盤が必須になるか、ですが、

Multipassを利用するのでしたら必須になるはずです。

④自社サイト内での会員サービス(ミニゲームや会員向けコンテンツ投稿など)を利用し
 ゲームやコンテンツの中でレコメンドされるオススメEC商品からECサイトへ遷移
⇒ここでSSO連携できるか

Multipassを利用されるのであれば、Shopifyストアにはここまでの手順でログイン済みですので、SSOは済んでいる、と言えます。

⑤自社ECサイト内で会員がゲーム時や投稿時にポイント付与され、それがECポイントとして利用できるようにしたい
⇒ECポイントは「easyPoints」を利用している

「自社サイト」内でゲームをしたり投稿をしたりしたらECサイトで利用できるポイントが付与される、という理解で合っているでしょうか?

詳細は確認していませんが、

https://lunaris.zendesk.com/hc/ja/articles/900006425923-API%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E6%A9%9F%E8%83%BD%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6

EasyPointsもAPIを用意しているようですので、こちらを利用することで、可能かもしれません。

こちらのAPIでできそうですね。

https://easypoints-docs.netlify.app/ja/api/point-allotments.html#%E3%83%9B%E3%82%9A%E3%82%A4%E3%83%B3%E3%83%88%E5%89%B2%E3%82%8A%E5%BD%93%E3%81%A6%E3%81%AE%E4%BD%9C%E6%88%90

⑥自社サイトの会員マイページでEC会員情報をすべて表示できなくても最低限
 会員名、ポイント残高を表示したい
⇒ポイント残高は(ECポイント残高+自社サイトでの取得ポイント)

同様に、下記のEasyPointsのAPIでポイント残高を取得できそうです。

https://easypoints-docs.netlify.app/ja/api/point-balances.html#%E5%8D%98%E4%B8%80%E3%81%AE%E3%83%9B%E3%82%9A%E3%82%A4%E3%83%B3%E3%83%88%E6%95%B0%E3%81%AE%E5%8F%96%E5%BE%97

⑦ECサイト側へ自社サイトで取得したポイントがECポイントとして加算される
⇒会員マイページのポイント残高に追加されている(API)
⇒自社サイト会員マイページとECサイト会員マイページ それぞれでポイント残高がみれる

⑤に記載したAPIと⑥に記載したAPIを併用すれば、可能に思えました。

EasyPointsについてはアプリベンダー様にお問い合わせいただくのが間違い無いかと思いますので、EasyPointについての回答はあくまで参考程度にお考えください。

(Multipassに関する回答も、参考程度にお考えいただいた方が良いですが。)

ご参考まで。

(キュー田辺)

1 Like

Shopify会員登録・ログイン機能を利用して、会員向けサービスへの会員登録・ログインとしたい。

→Shopify会員登録・ログイン機能を利用して、会員向けサービスへログインするには、
Shopifyから会員向けサービスへログインする権限を与える認可情報の受け渡しが必要となります。

これは「Shopifyから認可情報を送る」、「会員向けサービスにて認可情報を受け取る」ことが必要要件となりますが、
会員向けサービスの状況がこちらから把握できないため、Shopifyから認可情報を送る部分について回答させて頂きます。

Shopifyには、「認可情報を送る」といったような機能はないのですが、

App Unity IDPというサービスをリリースしまして、こちらを利用することで実現できます。

また、自動遷移の記載もありましたが、URLをして頂ければShopifyにてログイン完了後に
リダイレクトさせるといったことも可能ですので、会員向けサービスにて「認可情報を受け取る」ことができれば、

会員向けサービス側の仕様の確認が必要ですが実現できるかと思います。