【Shopify】サブスクリプション(定期購入)アプリを入れる前に、APIについて知っておきたいこと

Shopify のサブスクリプション(以下:定期購入)の API についての仕様やアプリについて、かんたんにまとめてみました!

定期購入の正式提供は2021年1月から

Shopifyのサブスク用LP

2021年1月(発表は2020年10月)に定期購入用の API(Subscription APIProduct subscription app extension )が正式に提供されたことで、Shopify でサブスクリプションの実装が可能になりました。

それ以前は外部のサブスクリプションサービスを通じて実装するしかなかったため、「統合管理がむずかしい」「単品からのステップアップに技術的ハードルがある」「計測がしにくい」といった外部サービスゆえのデメリットがあり、導入に二の足を踏んでいる(あるいは仕方なく実装している)マーチャントも見受けられました。

API の登場によって、定期購入は Shopify のチェックアウト上でシームレスな実装が可能になり、2021年からは国内外で続々とアプリが登場しています。

Subscription API と Product subscription app extension によって実装されたアプリは Shopify プラットフォームの持つペイメントや在庫管理、クーポンやレポートなどと連動することになるので、マーチャントはこれまで外部システムによる運用で煩雑になっていた単品と定期の個別管理から開放され、Shopify の管理画面上ですべて完結できるようになっています。

参考リンク

 

Subscription API の機能アップデートは現在でも続いており、ローカルピックアップや CSV エクスポート、POS 連動なども2022年以降に提供が予定されています。

Subscription API について

Shopify の定期購入は API を通じて提供されるので、マーチャントはアプリをストアに実装して機能を満たすことになります。(標準機能でいきなり管理画面から定期購入が設定できるわけではありません)

アプリはそれぞれ UI や機能に差があり、コストもかかります。そして何よりストアのオペレーションに直結しますので、選定は慎重に行いたいところです。

そこで、いきなりアプリ選定をはじめる前に、Subscription API がどういうものなのかを先にざっくりでも把握しておくと、実際に定期購入アプリを比較したり設定する際に活きてくるのではないか、というのが本記事の趣旨です。

さっそく、以降で Subscription API がどういう仕組みなのかかんたんに見ていきたいと思います!

アプリがやること、Shopifyがやることの範囲

定期購入では、Shopify とアプリ側で明確に責任分担があります。

以下は「Division of responsibilities between Shopify and apps(ショッピファイとアプリ間の責任範囲)」という表です。

これを読むと、Shopify は「データの保存」と「サブスクリプションの請求処理」を行い、アプリは「請求の自動化(定期呼び出し)」と「インターフェース(UI)の提供」を担当すると書いてあります。

つまり、ストアのカスタマーが目にする画面はアプリ側の仕事ですし、請求のプランを立て(定義して)呼び出すのも同じくアプリ側の仕事ということですね。Shopify はその情報を受け取り、決済を行うというかたちで分担されています。

定期購入処理のモデル図

定期購入において、マーチャント、カスタマー、Shopify、アプリそれぞれのフローをチャートにしたのが以下です。

Getting started with subscriptions を参考にREWIRED作成

図を左から見ていくと、

マーチャントは(アプリで)定期購入のプランを作成し、それを販売商品やバリエーションに紐付けます。「毎月◯日に△をお届け」といったようなプランを作成し、そのプランを商品に紐付けることで、既存商品に対して「定期購入商品」というものを立ち上げるようなイメージです。

次に、カスタマーが紐付けた商品が定期購入として購入すると Shopify 側で定期購入としての決済が走ります。

カスタマーが2回め以降の購入(定期商品の更新)を行った場合ときは、アプリを通じてスケジュールが実行される、といった流れになります。

初回の決済は Shopify が行いますが、2回め以降のタイミングはアプリ側の設定に委ねられているので、マーチャントカスタマーも、定期的なマニュアル作業を通すことなく決済をリニューアルできる、というフローになります。

Subscription API の3つのリソース

上記のフロー(アプリ側)を実行するために、Subscription API は以下の3つのリソースで構成されています。

Selling plan APIs「今すぐ購入」以外の販売プラン(つまり定期購入のプラン)に関するリソース。商品やバリエーション、請求のタイミング、価格設定などで構成。
Subscription contract APIsカスタマーとマーチャント間の定期購入契約についてのリソース。
Customer payment method APIsカスタマーの支払い方法についてのリソースです。定期の自動チェックアウトに関する情報を保存しています。

これらのリソースは、インターフェース側の Product subscription app extension と連動しアプリとして機能します。

Product subscription app extension について

上述のモデル図のアプリの役割に「マーチャントへ定期購入管理画面の提供」が挙げられていましたが、それを実現するための機構が Product subscription app extension(以下:App extension) です。

これを使うことで、マーチャントに対してアプリで管理するための画面をレンダリングできます。

フローにすると以下のようになります。

Product subscription app extension overview を参考にREWIRED作成

定期購入アプリは、Subscription API の構成リソースの1つである「Selling plan API」と、画面をレンダリングする App extension とが相互に連携して、マーチャントが Shopify の管理画面で定期購入プランの作成や管理をするためのインターフェースを提供します。(上図の左上の部分)

情報の取り扱いと、アプリの実装上の注意

ふだんマーチャントが見ている画面や機能の大半はアプリの仕事になるわけですが、管理用のインターフェースをレンダリングするということは、定期購入に関するカスタマーの情報の呼び出しや表示がアプリ側の制御に委ねられるということです。

購入は最もセンシティブな情報の1つですので取り扱いには気をつけなければいけません。Shopify はこのあたりのリスクを開発者に意識してもらうために、ヘルプドキュメントでも以下のように注意喚起しています。

↓以下はかんたんな日本語訳です

Rendering sensitive information or exposing controls using Liquid isn’t safe because untrusted JavaScript can read the information on the page or act on behalf of the customer. Liquid forms are also vulnerable to attacks such as CSRF.

Liquid を使用して機密情報をレンダリングしたり表示コントロールをするのは、信頼できない JavaScript がページ上の情報を読み取ったり、カスタマーに代わって動作したりする可能性があるため、安全ではありません。Liquid フォームも同様に、CSRF などの攻撃に対して脆弱性があります。

https://shopify.dev/apps/subscriptions/customer-portal

定期購入アプリでは、利便性を考えて管理画面(アカウントページ)に定期購入の契約一覧や詳細情報(配送先住所など)を表示することが一般的です。

その際に、場合によっては上記の “信頼できない JavaScript ” によって顧客情報を読み取ったり契約を変更してしまう、といったことが技術的には可能になってしまうため、アプリの実装には注意が必要だという警告ですね。

Subscription API と App extension の2つのワークフローをご覧いただいて分かるとおり、仕様的にはどのアプリでもプランの作成から決済までのワークフローに大きな違いはありません。なので、マーチャントからすれば「販売プランにどれだけの柔軟性があるか」あるいは「価格がリーズナブルかどうか」がもっとも気になるところでしょう。

ですが、アプリの機能あるいは価格以上に重要なのが、「情報漏えい等のリスクが少ないセキュアな実装になっているかどうか」だと思います。

機能や価格と違って目に見えない部分なので、アプリを選定する際にはセキュアな実装になっているかどうか、FAQ やサポートに確認してみることをオススメします。

参考リンク

定期購入のアプリについて

Subscription API の公開以降、Shopify の定期購入アプリは続々登場しています。以前は海外製のアプリしか選択肢がありませんでしたが、現在は日本のデベロッパーのアプリが増えており、Shopify のサブスクリプション用の特集ページでも日本のアプリがたくさんフィーチャーされるようになりました。

参考リンク

 

上記ページからApp Storeに誘導するリンクで紹介されているアプリは現在(2021年10月の時点)では以下の5つになります。

日本を対象に[サブスク]の検索結果がリンクされています

このリストは今後も増えていくと思いますが、現時点で Shopify で定期販売をしたいと考えた場合、上記のいずれかのアプリで実装していくことになると思います。

5つあると比較表的なものを作りたくなってしまうところですが、一度作ってしまうと記事のアップデートがたいへんですし、比較記事自体は他のブログやメディアにもたくさん出ていますので、ここではそれぞれのアプリへリンクを貼る程度にとどめます。

比較する項目は機能や価格、使いやすさや移行の可否などさまざまありますので、自社の望むサブスクリプションプランが作成できるかどうかをまずは確認しつつ、カタログ上の手数料や機能比較のみならず、サポートの品質や実装の堅牢さ、ドキュメンテーションやアップデートの頻度など、総合的な観点で判断していただくのがよいと思います!

定期購入はカスタマーの利便性に直結するだけでなく、プランの作成から顧客管理、配送まで含めて、ストアの機能とオペレーションに密接に影響しますし、一度導入するとリプレイスがしにくいものでもありますので、ぜひ慎重にご検討なさってください。

日本の定期購入・サブスクリプションアプリ(2021年10月時点)

SENGINE -定期購入・サブスク構築ツール

※SENGINEさんだけなぜかリンクボタンが小さいのはOGPの仕様で、他意はございません!

 

定期購買

 

Mikawaya Subscription

  

NoCode Subscriptions

 

Go SubscRide -サブスクリプション


REWIREDでは、日本語アプリの制作者(制作会社)さんからの寄稿・アピールをお待ちしております!
我こそはというアプリの管理者の方はぜひお問い合わせフォームからご連絡ください。