どのAPIを使うべき?Shopify API、6パターンの使い方
この記事の所要時間:10分
最近、ECサイトの立ち上げやリプレイス案件でShopifyを使う事例が増えてきています。
ですが、現状Shopifyに関する日本語記事はあまり充実していません。
そのため、Shopify開発に入門する際には公式が提供する英語のリファレンスを読むことになるでしょう。また、Shopifyが様々な用途別に提供しているAPIの全体像をすぐに理解するのは簡単ではありません。
しかし、Shopify開発の目的が決まってしまえば、使うべきAPIは絞られます。本記事では「こんなとき、どのAPIを使うべき?」という疑問に的確に答えます。
Shopify APIのドキュメントの前に本記事の前半を読めば、使うべきAPIにあたりをつけることができます。
また、本記事を最初から最後まで読み通せば、Shopify APIの全体像を把握することもできるでしょう。公式ドキュメントを読み通すよりは少ない時間で読み通せるはずです。
Shopify開発の中心、”アプリ”について
Shopifyのストアには最初から基本的な機能が備わっています。
ストアの設定を行うと、すぐにオンラインショップを公開できます。その後は、基本的な機能を使って、Shopifyの管理画面では注文を確認したり、商品の在庫数を管理したり、顧客の情報を管理することができます。
しかし、マーチャントの規模や商品の性質、マーケティング活動の性質は多岐に渡るため、追加の設定をしなければならないことがほとんどです。
商品数が膨大にある場合はストアの設定に時間がかかりすぎるかもしれません。また、デザインを独自にカスタマイズしたいこともあります。そういった追加の設定を行う場合に、Shopify APIが関わってきます。
Shopifyには”アプリ”と呼ばれる拡張機能があり、既に様々なニーズを満たすアプリが公開されています。
アプリはShopify APIを組み合わせて開発されています。アプリを導入することで間接的にAPIの恩恵を享受することができます。
もし自らのニーズを満たすアプリが無ければ自分でアプリを開発することもできます。その場合は、Shopify APIの仕様を理解して適切に使用する必要があります。
こんなとき、どのAPIを使うべき?
Shopify開発を行う目的のほとんどは、以下のどれかに該当します。
- デザインをカスタマイズしたい
- モバイルアプリから商品を購入できるようにしたい
- ストア内商品のマーケティング活動を管理したい
- Shopifyの機能を拡張したい
- 実店舗とShopifyストアのデータを連携したい
- マーチャントの管理をより効率的に行いたい
デザインをカスタマイズしたい
テーマストアからテーマを選ぶ
あなたが時間をかけずにそれなりに良いデザインを実現したいと思うならShopifyテーマストアで提供されているデザインテンプレートを導入するのが良いでしょう。その場合は、テーマストアから好みのテーマを選ぶだけです。
オリジナルのテーマを開発する
もしあなたがHTML/CSSとJavaScriptに慣れ親しんでいれば、自分でデザインを実装したいと思うかもしれません。
LiquidとAjaxAPIを利用してオリジナルのテーマを開発することもできます。詳しくは後のLiquidとAjaxAPIの章を参考にしてください。
リッチなフロントエンドを開発する
あなたは今までに習得してきたフロントエンド技術を駆使して、よりリッチなユーザ体験を作り込みたいと考えるかもしれません。
また、React.jsやVue.jsを扱った経験があれば、コンポーネントを使って開発したいと思うかもしれません。
その場合は、Storefront APIにアクセスするフロントエンドアプリケーションを開発することになります。詳しくは後のStorefront APIの章を参考にしてください。
モバイルアプリから商品を購入できるようにしたい
この場合は、iOSとAndroid向けに提供されているSDKを利用できます。
このSDKはStorefront APIをモバイル開発の言語からアクセスできるようにしたものです。詳しくは後のStorefront APIの章を参考にしてください。
ストア内商品のマーケティング活動を管理したい
あなたがShopifyをただのオンラインショップだと思っているなら、ShopifyのMarketing Activities APIの強力さに驚くことでしょう。
最近はHubspotやSalesforceといったCRMや、ビーダッシュやMarketoといったMAツールが豊富ですが、Shopifyではこうした機能をアプリとして追加できます。
そうすることで、広告やコンテンツマーケティング、ソーシャルメディアといった多様なマーケティング活動をShopifyの管理画面から管理できます。
また、クリックやメール開封といった指標からエンゲージメントを定義して、顧客の管理を行うこともできます。
こうした機能は既にアプリとして提供されています。
既存のアプリでは解決できないニッチなニーズを満たしたアプリや、自社にカスタマイズされたアプリを自分で開発することもできます。
その場合は、Marketing Activities APIを使うことになります。詳しくは後のMarketing Activities APIの章を参考にしてください。
Shopifyの機能を拡張したい
このケースは多様なニーズを含んでいます。CSV形式のファイルから商品登録を行いたい、在庫管理をShopifyストアと連携したいなど、様々なニーズがあります。
ほとんどは、アプリが解決してくれます。Shopifyアプリストアで検索してあなたのニーズを満たすアプリを探してみてください。もし見つからなければ、自分でアプリを開発することもできます。
その場合は、Admin APIを使います。詳しくは後のAdmin APIの章を参考にしてください。
実店舗とShopifyストアのデータを連携したい
実店舗とShopifyストアを連携するためにShopifyが提供しているサービスはPOSです。
Shopifyストアで全ての商品と顧客のデータを管理し、実店舗ではShopifyが提供するPOSに情報を打ち込むようにします。
そうすることで、実店舗での注文がPOSを通してShopifyストアに反映され、オンラインショップのデータも同期されます。
POSを使えば実店舗での販売においても、データに基づいた商品のレコメンドを行うことができます。
POSを使うにはAdmin APIにアクセスするアプリを独自に開発し、POSの設定を行う必要があります。詳しくは後のAdmin APIの章と、公式ドキュメントを参考にしてください。
マーチャントの管理をより効率的に行いたい
あなたはShopifyパートナーとして、クライアント(マーチャント)のストア構築を支援したいと考えているかもしれません。
クライアントが増えてくると、それぞれの案件の進捗状況や、クライアントからのお支払い状況を管理するのが大変になってきます。
Partner APIを使えば、クライアントの情報にプログラムからアクセスできます。Partner APIを使って取得した情報からダッシュボードを作成したり、会計処理を自動化するなど、様々な応用が考えられます。
詳しくは後のPartner APIの章を参考にしてください。
各APIの詳細と使いどころ
Admin API
Shopify開発で最も利用されるのがAdmin APIです。商品や顧客、注文や在庫などのデータを書き込んだり読み出したりできます。
ストアの管理画面からGUIで行う操作をプログラムで肩代わりする手段と考えるとわかりやすいかもしれません。
GraphQLとREST APIのどちらを使ってもアクセス可能です。アプリの多くは、このAdmin APIへのアクセスを組み合わせて開発されます。
使用される場面
- ストアに商品や顧客、注文などのデータをまとめて書き込みたいとき。
- Shopifyが提供するストア管理画面とは別の管理画面を自分で構築したいとき。
- ストアに保存された在庫データを利用して、他のマーケットプレイスとデータを同期したい時。
(楽天市場で商品が売れたらShopifyストアから在庫数を減らす、といった処理が可能。)
注意事項
- アクセス制限(rate limits)が存在する。GraphQLとREST APIでは制限の仕方が異なります。
- Shopify APIの利用規約を遵守する必要があります。
Storefront API
Shopifyが提供するウェブ上のオンラインストアと、実店舗販売で使えるPOSによってほとんどのマーチャントのニーズは満たせます。
しかし、このStorefront APIを使えばさらに販売窓口を広げることができます。
Storefront APIにアクセスすることで、ストアから商品情報を取り出してきたり、注文を入れることができます。これを利用してブラウザアプリケーションやモバイルアプリなどを開発すれば、商品を様々な経路で販売することができます。
Storefront APIをより楽に実装できるように、JavaScript用のSDKと、AndroidとiOS向けのSDKと、Unity向けのSDK、が提供されています。
使用される場面
- モバイルアプリでストアのフロントエンドを実装するとき。
- ReactやVueでよりリッチなウェブサイトでストアのフロントエンドを実装するとき。
- ゲーム内でグッズの販売を行いたいとき。
注意事項
- REST APIは提供されておらず、GraphQLによるアクセスのみ可能です。
- 他のAPIがストアのIDに対してアクセス制限をかけているのに対して、Storefront APIではストアを訪れる顧客のIPアドレスに基づいてアクセス制限が設けられています。
- Shopify APIの利用規約を遵守する必要があります。
- Shopify APIの利用規約により、Storefornt APIを使ってShopifyが提供する既存機能を複製してはいけません。
Partner API
多くのクライアントを抱えるShopifyパートナーは、管理画面での操作を大変だと感じるようになります。もしくは、カスタマイズされた管理画面を別で構築したいと思うかもしれません。
Partner APIはShopifyパートナーがクライアントの情報をプログラムを使って読み出す手段を提供します。Partner APIを使えばクライアントの管理を楽にすることができます。
使用される場面
- Shopifyパートナーがパートナー業務における売上を自動で集計したいとき。
- Shopifyパートナーが開発したアプリがインストールされた数や、離脱した数などを読み出してダッシュボードを作りたいとき。
- エキスパートマーケットプレイス(Experts Marketplace)から受け取った案件の管理を自動化したいとき。エキスパートマーケットプレイスでのクライアントとのやりとりをまとめて管理したいとき。
注意事項
- REST APIは提供されておらず、GraphQLによるアクセスのみ可能です。
- アクセス制限(rate limits)が設けられています。
- Shopify APIの利用規約を遵守する必要があります。
Marketing Activities API
オンラインショップに関わるマーケティング活動は、記事やソーシャルメディアの投稿、リスティング広告から、記事広告など、多岐に渡ります。それらの効果検証は、別々の管理画面で行われることが多く、管理が大変になりがちです。
マーチャントはマーケティング関連のアプリをインストールすることで、マーケティング活動の管理をShopifyの管理画面に集約することができます。
大抵のマーケティング活動については既存のアプリがサポートしていますが、よりニッチなマーケティング活動を管理したい場合に自分でアプリを開発することもできます。
マーケティング関連のデータにアプリからアクセスする手段がMarketing Activities APIです。
使用される場面
- マーチャントのマーケティング活動に最適化されたアプリを開発するとき。
注意事項
- Marketing Activities APIの使用を試みる前に、既にニーズを満たすアプリが存在するか確認することをおすすめします。大体のケースでは、そのようなアプリが存在します。
LiquidとAjax API
Shopifyでは、デザインのテンプレートである”テーマ”を開発することができます。テーマは無料のものと有料のものがあり、どちらもShopifyテーマストアで公開することができます。
Shopifyパートナーは有料のテーマを開発して、ビジネスにすることもできます。テーマ開発で用いるのがLiquidとAjax APIです。
Liquidは、Rubyにおけるerb、Pythonにおけるjinja2といったテンプレートエンジンによく似ています。
Shopify公式ブログでは、テンプレートエンジンよりも多少機能が制限されていることから、テンプレート言語と呼ばれています。
Ajax APIは、テーマ開発でのみ使われるREST APIです。商品をカートに入れる、カートに入った商品数を更新する、商品のレコメンドを表示するといった基本的な操作が一通りできるようになっています。
使用される場面
- Shopifyパートナーとしてテーマ開発をビジネスにしていきたいとき。
- Storefront APIを使ってリッチなフロントエンドを書くほどではないが、既存のテーマでは痒いところに手が届かないようなとき。
注意事項
- Ajax APIは注文データや顧客データにはアクセスできません。より多くのことを実現したいときは、テーマ開発ではなく、Admin APIやStorefront APIを使ったアプリを開発する必要があります。
Versioned APIとUnversioned APIについて
Shopifyは一部のAPIを継続的にメンテナンスし、拡張しています。
アプリ開発やフロントエンド開発においては、新バージョンにキャッチアップして、より強力な機能を使いこなすことは重要です。
バージョン更新あり | バージョン更新なし |
Admin API Storefront API | OAuthエンドポイント(認証に使う) Liquid Ajax API Analytics API(Admin APIに含まれる) その他 |
まとめ
本記事では、「こんなとき、どのAPIを使うべき?」という疑問に答えました。
本記事の前半を読めば、Shopify APIのドキュメントを見る前に使用するべきAPIにあたりをつけることができます。
後半のAPIの解説を読めば、それぞれのAPIがどのような用途に使えるのかわかります。
また、この記事を最初から最後までじっくり読み通せば、Shopify APIの全体像を短時間で思い出すことができます。是非ブックマークに登録するなどしてご活用ください。