Liquid、JavaScriptなどに関する質問
会員制のサービスのアカウントと連携してshopifyでECサイトを構築したいと考えております。
現状以下の仕様で構築を考えいるのですが、どなたか実現可否についてわかる方はいらっしゃいますでしょうか?
▼限定ECについてのシステム仕様
背景:ECとは別に会員制サービスを提供している。
会員種別は無料会員とサブスク会員がいる
会員制サービスのユーザーアカウントを軸にECサイト運用を考えたい。(限定など)
概要:サービス会員のみが利用できるAndroid、iosアプリからWebViweでShopifyを利用したい。
もしくはフロントはネイティブでカスタマイズ実装し、バックエンドのみshopifyを利用したい。
※サービス会員限定ECサイトのようなもの
要件
①会員制のサービス側のアカウントを利用してshopifyを利用できるか?
※ECサイト利用するために、別途アカウント登録をユーザーにはさせないようにしたい。
②会員制アプリにログインしていれば、WebViweを開いても再度ログインする必要がないようにしたい。
③①が可能な場合、サブスク会員限定クーポンの発行は可能か
④サービス会員限定のクローズドなECとしてアプリからのWEB viewは可能だが、WEBブラウザからは観られないようにしたい
⑤決済情報はサブスク会員決済のカード情報でいけますか?
→会員制アプリのユーザーIDで決済会社に請求を行える場合は可能だが、それが可能かどうか。
> 概要:サービス会員のみが利用できるAndroid、iosアプリからWebViweでShopifyを利用したい。
> もしくはフロントはネイティブでカスタマイズ実装し、バックエンドのみshopifyを利用したい。
> ※サービス会員限定ECサイトのようなもの
このような実装は、Storefront APIを使うことになりますが、独自にWebViewで表示することはサポートされていません。最後の決済画面はStorefront APIがレスポンスで返すURLにリダイレクトさせる形で行います。
https://shopify.dev/docs/storefront-api/getting-started
https://shopify.dev/docs/storefront-api/reference/checkouts/checkoutcreate
また、ショップオリジナルのネイティブアプリを簡単に生成できるアプリが日本のパートナーが公開されているので、それらを利用する、または開発元にカスタマイズを相談するのも手かと思います。
https://apps.shopify.com/appify?locale=ja
https://apps.shopify.com/shopify-application-100?locale=ja
> 会員制のサービス側のアカウントを利用してshopifyを利用できるか?
Multipassという機能を使えばできますが、利用には、Shopify Plusという特別プランの契約が必要です。
https://shopify.dev/docs/admin-api/rest/reference/plus/multipass
https://qiita.com/syantien/items/b03307b70c38dbd61130
Plusを使わない場合、Storefront APIのCustomer creationと、Customer Token Creationを使って実装できますが、IDとパスワードはAPIを使うアプリのシステムで生成するため、セキュリティ的にそれが許容範囲かは確認する必要があります。(OAuthのような仕組みではなくて、アカウント作成とログインを代理で行うフローなので、ユーザーがログインした後、自分でパスワードを変えると次から会員ログインできないなどの問題が起こります)。
https://shopify.dev/docs/storefront-api/reference/customers/customercreate
https://shopify.dev/docs/storefront-api/reference/customers/customeraccesstokencreate
> 会員制アプリにログインしていれば、WebViweを開いても再度ログインする必要がないようにしたい。
これの実現にはMultipassが必要かと思います。ただし、Storefront APIで決済以前の部分をネイティブアプリで実装すれば、メールアドレスや配送先情報を全てShopifyに渡せるので、Shopifyの会員登録自体を利用せず実現できると思います。(Shopify上はゲスト購入であっても会員登録したデータと同じ顧客情報として扱われます)
つまり、ログインやカート部分はShopifyは使わず、会員ログインさせるのはショップのネイティブアプリとして、Shopify上は会員情報と同じ情報を渡したゲスト購入とさせる。(最後の決済プロセスだけに使う)
> ①が可能な場合、サブスク会員限定クーポンの発行は可能か
クーポン作成時に特定グループの顧客限定が設定できるので、グループの条件に特定タグを指定して、Steofront APIでCustomer Create する時に特定タグを埋め込めば可能かと思います。(その意味ではやはりCustomer Createした方が良いかもですね)
https://help.shopify.com/ja/manual/customers/manage-customers
ちなみに、作成したCustomerにチェックアウトを紐付けるAPIは以下です。
https://shopify.dev/docs/storefront-api/reference/checkouts/checkoutcustomerassociatev2
> サービス会員限定のクローズドなECとしてアプリからのWEB viewは可能だが、WEBブラウザからは観られないようにしたい
WebViewとの判定でしたら、テーマにUA判定の処理を独自に入れる必要がありますが、前述の通り独自にWebView実装するのはサポート外(WebViewはサポートブラウザに入っていない)のでお勧めしません。 簡単は方法は、管理画面の設定の販売チャネルを開いて、「Online Store」の削除ボタンを押して、デフォルトチャネルであるオンラインストア自体を削除します。そうすると通常のECサイト自体が存在しないというエラーになりますが、Storefront API経由のURLで開いた時はちゃんと表示され購入できます(Steofront API自体が別の販売チャネルであるため)。
オンラインストアは、再び販売チャネルの追加で元に戻すことも可能です。
> 決済情報はサブスク会員決済のカード情報でいけますか?
できません。APIの利用規約で、Shopify以外の決済手段を使うことは一般的には禁止されています。
https://www.shopify.com/legal/api-terms
サポートの選択肢が増えていく中、最適となる選択の判断が難しくなっているかと存じます。今回は問題の解決に最適となるサポートの選択方法を、紹介させて頂きます。 選択肢のご紹介...
By Mirai Oct 6, 20242023年初頭、Shopifyペイメントアカウント、及びShopifyアカウント全体のセキュリティを強化する為の変更が適用されました。ユーザーのアカウントセキュリティを強化す...
By Mirai Sep 29, 2024概要: 年末/年明けは、消費者が最もショッピングを行う時期の一つです。特に、ブラックフライデー・サイバーマンデー(BFCM)は、世界中で注目される大規模なセールイベントであ...
By JapanGuru Sep 25, 2024