# オリジナルサービスと連動したshopifyの構築について

**URL:** <https://community.shopify.com/t/shopify/43269>\
**Category:** 技術的なQ＆A\
**Created:** [April 15, 2021, 10:03am UTC](https://community.shopify.com/t/shopify/43269 "2021-04-15T10:03:54Z")\
**Posts on this page:** 2\
**Page:** 1

## AI-generated summary

会員制サービスのアカウントと連携し、アプリ内のWebViewまたはネイティブ実装で限定ECをShopify上に構築できるかが主題です。特に、会員ログインの引き継ぎ、会員限定公開、クーポン、既存決済情報の流用可否が論点になっています。

回答では、独自フロントで進める場合はStorefront APIの利用が前提で、決済だけはAPIが返すチェックアウトURLへリダイレクトする形になると説明されています。独自WebView表示そのものはサポート外とされています。

外部サービスの会員アカウントでShopifyへログインさせるSSO的な連携は、Multipassで可能ですが、Shopify Plus契約が必要です。PlusなしでもCustomer作成とアクセストークン発行APIで代替は可能ですが、ID・パスワード管理を自前で持つためセキュリティ面の検討が必要です。

サブスク会員限定クーポンは、顧客タグや顧客グループを使えば実現可能とされています。一方で、ブラウザから見えない完全なクローズド化や、サブスク課金のカード情報をEC決済へ流用できるかは結論が出ておらず、未解決です。

<div class="post-metadata">

**Author:** ![gottsuan](https://avatars.discourse-cdn.com/v4/letter/g/a698b9/32.png) [@gottsuan](https://community.shopify.com/u/gottsuan)\
**Post date:** [April 15, 2021, 10:03am UTC](https://community.shopify.com/t/shopify/43269/1 "2021-04-15T10:03:54Z")

</div>

会員制のサービスのアカウントと連携してshopifyでECサイトを構築したいと考えております。  
現状以下の仕様で構築を考えいるのですが、どなたか実現可否についてわかる方はいらっしゃいますでしょうか？

▼限定ECについてのシステム仕様

背景：ECとは別に会員制サービスを提供している。  
会員種別は無料会員とサブスク会員がいる  
会員制サービスのユーザーアカウントを軸にECサイト運用を考えたい。(限定など)

概要：サービス会員のみが利用できるAndroid、iosアプリからWebViweでShopifyを利用したい。  
もしくはフロントはネイティブでカスタマイズ実装し、バックエンドのみshopifyを利用したい。  
※サービス会員限定ECサイトのようなもの

要件  
①会員制のサービス側のアカウントを利用してshopifyを利用できるか？  
※ECサイト利用するために、別途アカウント登録をユーザーにはさせないようにしたい。  
②会員制アプリにログインしていれば、WebViweを開いても再度ログインする必要がないようにしたい。  
③①が可能な場合、サブスク会員限定クーポンの発行は可能か  
④サービス会員限定のクローズドなECとしてアプリからのWEB viewは可能だが、WEBブラウザからは観られないようにしたい  
⑤決済情報はサブスク会員決済のカード情報でいけますか？  
→会員制アプリのユーザーIDで決済会社に請求を行える場合は可能だが、それが可能かどうか。

---

<div class="post-metadata">

**Author:** ![junichiokamura](https://yyz1.discourse-cdn.com/shopifyforum/user_avatar/community.shopify.com/junichiokamura/32/299737_2.png) [@junichiokamura](https://community.shopify.com/u/junichiokamura)\
**Post date:** [April 26, 2021, 12:53pm UTC](https://community.shopify.com/t/shopify/43269/2 "2021-04-26T12:53:16Z")

</div>

> 概要：サービス会員のみが利用できる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/getting-started)

[https://shopify.dev/docs/storefront-api/reference/checkouts/checkoutcreate](https://shopify.dev/docs/storefront-api/reference/checkouts/checkoutcreate)

また、ショップオリジナルのネイティブアプリを簡単に生成できるアプリが日本のパートナーが公開されているので、それらを利用する、または開発元にカスタマイズを相談するのも手かと思います。

[https://apps.shopify.com/appify?locale=ja](https://apps.shopify.com/appify?locale=ja)

> **[スマホアプリでマーケティング顧客獲得ならアプセル | Shopify App Store](https://apps.shopify.com/shopify-application-100?locale=ja)**
>
> アプセルではストアのブランディング、集客、売上増加のための宣伝販売促進をアプリを通じて実行いただけます。実行には弊社スタッフがしっかりサポートいたします。

> 会員制のサービス側のアカウントを利用してshopifyを利用できるか？

Multipassという機能を使えばできますが、利用には、Shopify Plusという特別プランの契約が必要です。

[https://shopify.dev/docs/admin-api/rest/reference/plus/multipass](https://shopify.dev/docs/admin-api/rest/reference/plus/multipass)

[https://qiita.com/syantien/items/b03307b70c38dbd61130](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/customercreate)

[https://shopify.dev/docs/storefront-api/reference/customers/customeraccesstokencreate](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](https://help.shopify.com/ja/manual/customers/manage-customers)

ちなみに、作成したCustomerにチェックアウトを紐付けるAPIは以下です。

[https://shopify.dev/docs/storefront-api/reference/checkouts/checkoutcustomerassociatev2](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](https://www.shopify.com/legal/api-terms)
