Shopify Admin API とは?具体的な使用方法まで徹底解説!
Shopify Admin API について徹底解説!
目次
- Shopify Admin API とは
- Shopify Admin API の種類
- Shopify Admin API の叩き方
- Shopify Admin API GraphQL を試す方法
- まとめ
Shopify Admin API とは
Admin API は、Shopify ストアの中心をなす商品、在庫、注文、配送管理などの重要情報の読み取りや更新を可能にする API です。Shopify が提供している API の中でも特に利用する頻度が高く、自社システムとの統合や他のサービスとのデータ同期に活用できます。
Shopify Admin API を用いることで以下のようなアプリを実現できます。
「シンプルセット販売|お手軽クロスセル」
「シンプルセット販売|お手軽クロスセル」|ご利用ガイドシンプル Wishlist|お手軽お気に入り
シンプル Wishlist|お手軽お気に入り|ご利用ガイド「シンプル Coming Soon|商品ページ発売予告アプリ」
「シンプル Coming Soon|商品ページ発売予告アプリ」|ご利用ガイド「シンプルレビュー|お手軽口コミ」
「シンプルレビュー|お手軽口コミ」|ご利用ガイド
Shopify Admin API の種類
Shopify Admin API は、REST と GraphQL の二つの形式で提供されており、それぞれに特有の特徴と利用法があります。
REST
REST 版の Admin API は、リソース指向で、HTTP リクエストを使ってデータを交換します。これには、商品(Product)、注文(Order)、顧客(Customer)など、Shopify の主要なリソースに対する CRUD(作成、読み出し、更新、削除)操作が含まれます。REST API はシンプルで理解しやすく、多くの HTTP クライアントで容易に利用できます。
GraphQL
GraphQL 版の Admin API は、より効率的なデータフェッチを可能にします。この API を使用すると、必要なデータだけを指定して一度のリクエストで取得できるため、ネットワークの使用量を削減し、アプリケーションのパフォーマンスを向上させることができます。GraphQL は、複雑なデータ構造や多くのリソース間の関連を持つ操作に特に適しています。
Shopify Admin API の叩き方
ここからは実際に Shopify Admin API を叩く方法を解説していきます。
カスタムアプリの作成
最初に、Admin API を使用したいストアでカスタムアプリを作成します。
ストア管理画面の「設定」をクリックしてください。
「アプリと販売チャネル」をクリックしてください。
「アプリを開発」をクリックしてください。
「カスタムアプリ開発を許可」をクリックします。
カスタムアプリの開発の許可ができたら「アプリを作成」をクリックしてカスタムアプリを作成していきます。
「アプリ名」と「アプリ開発者」を入力して「アプリを作成」をクリックします。
ここまでで、カスタムアプリの作成は終了です。
アクセススコープの設定
次に、カスタムアプリのアクセススコープを設定していきます。実際にアクセススコープを設定する前にアクセススコープとはどういうものかを説明します。
アクセススコープとは
アクセススコープとは Admin API を実行するためのアプリの権限です。Admin API には実行するためのアクセススコープがそれぞれ設定されており、そのアクセススコープを持っているアプリのみが Admin API を実行することができます。
アクセスコープの種類は、read
系(取得系)とwrite
系の二つがあります。例えば商品の情報を取得する Admin API を実行するために必要なアクセススコープは read_products
で、商品の情報を更新する Admin API を実行するために必要なアクセススコープは write_products
です。
アクセススコープ
read
系(取得系)- 例
read_products
:商品の情報を取得する Admin API を実行するために必要なアクセススコープ
- 例
write
系(更新系)- 例
write_products
:商品の情報を更新する Admin API を実行するために必要なアクセススコープ
- 例
カスタムアプリにアクセススコープを設定
ここからは、実際にアクセスコープを設定していきます。
「Admin API スコープを設定する」をクリックしてください。
次に、カスタムアプリに設定するアクセススコープを選択していきます。実行したい Admin API が決まっている方はその Admin API を実行するためのアクセススコープを選択してください。とりあえず、Admin API の叩き方を学びたい方は、「商品管理」カテゴリの write_products
と read_products
を選択してください。
アクセススコープが選択できたら「保存」をクリックして選択したアクセススコープの設定を保存します。
以上でアクセススコープの設定は終了です。
カスタムアプリのインストール
設定してきたカスタムアプリをストアにインストールします。
「アプリをインストール」をクリックします。
ダイアログが開くので「インストール」をクリックしてください。
以上でカスタムアプリのインストールは完了です。
Admin API のアクセストークン取得
次に、Admin API のアクセストークンを取得していきます。アクセストークンは Admin API を叩くときに必要になるので、必ず保存しておいてください。
「API 資格情報」に移動します。
「トークンを一度開示」をクリックしてアクセストークンを表示させます。この一回しかアクセストークンを保存する機会がないので忘れないように保存してください。
以上でアクセストークンの取得は完了です。
Shopify Admin API を叩く
それでは、実際に Shopify Admin API を叩いていきましょう。今回は GraphQL で Shopify Admin API を叩いてみます。
商品情報の取得
curl コマンドを使用して Admin API GraphQL を叩いていきます。
{shop}
の部分は自分のストアのドメインに変更してください。また、{accessToken}
の部分は先程取得したアクセストークンに書きかえてください。
curl -X POST \
https://{shop}.myshopify.com/admin/api/2024-01/graphql.json \
-H 'Content-Type: application/json' \
-H 'X-Shopify-Access-Token: {accessToken}' \
-d '{"query": "{ products(first: 5) { edges { node { id handle } } pageInfo { hasNextPage } } }"}'
上記のコマンドを実行すると 5 つの商品の id と ハンドル名が取得できます。id やハンドル名以外にもさまざまな商品の情報が取得できるので気になる方はこちらのドキュメントを参照してください。
実際のレスポンスは以下のようになります。id とハンドル名が取得できています。
{
"data": {
"products": {
"edges": [
{
"node": {
"id": "gid://shopify/Product/8638012260634",
"handle": "the-videographer-snowboard"
}
},
{
"node": {
"id": "gid://shopify/Product/8638012326170",
"handle": "the-minimal-snowboard"
}
},
{
"node": {
"id": "gid://shopify/Product/8638012457242",
"handle": "the-draft-snowboard"
}
},
{
"node": {
"id": "gid://shopify/Product/8638012490010",
"handle": "gift-card"
}
},
{
"node": {
"id": "gid://shopify/Product/8638012522778",
"handle": "the-inventory-not-tracked-snowboard"
}
}
],
"pageInfo": {
"hasNextPage": true
}
}
},
"extensions": {
"cost": {
"requestedQueryCost": 5,
"actualQueryCost": 5,
"throttleStatus": {
"maximumAvailable": 2000.0,
"currentlyAvailable": 1995,
"restoreRate": 100.0
}
}
}
}
商品情報の更新
次は商品の情報を更新する Admin API を叩いてみましょう。以下の画像の商品の名前を Admin API を使用して変更してみます。
まず、商品の id を取得していきます。商品の id は商品詳細画面の URL から取得できます。URL 末尾の数列が商品の id になっています。
以下のコードを実行すると指定した商品の商品名を「Admin API で商品名を変更する」に変更できます。レスポンスに変更後の商品名を返すようにしています。より詳しい説明はこちらのドキュメントを参照してください。
curl -X POST \
https://sa-test-unreact-yoshishige.myshopify.com/admin/api/2024-01/graphql.json \
-H 'Content-Type: application/json' \
-H 'X-Shopify-Access-Token: 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' \
-d '{"query": "mutation { productUpdate(input: {id: \"gid://shopify/Product/8638013243674\", title: \"Admin API で商品名を変更する\"}) { product { title } } }"}'
以下のようなレスポンスが返ってきます。商品名が「Admin API で商品名を変更する」に更新されていることが確認できます。
{
"data": {
"productUpdate": {
"product": {
"title": "Admin API で商品名を変更する"
}
}
},
"extensions": {
"cost": {
"requestedQueryCost": 10,
"actualQueryCost": 10,
"throttleStatus": {
"maximumAvailable": 2000.0,
"currentlyAvailable": 1990,
"restoreRate": 100.0
}
}
}
}
商品詳細画面でも商品名が更新されていることが確認できました。
以上で Admin API を GraphQL で叩く方法の解説は終了です。さらに詳しい説明が見たい方はこちらのドキュメントを参照してください。
Shopify Admin API GraphQL を試す方法
ここまで、Admin API の叩き方について解説してきました。ここからは「Shopify GraphiQL App」という Shopify が提供しているアプリの使用方法を解説していきます。このアプリを使用することで簡単に Admin GraphQL を実行することができます。カスタムアプリなどを作成する際に GraphQL Admin API で取得できる値を確かめることができるので大変便利です。
Shopify GraphQL App のインストール方法
早速、ストアに「Shopify GraphiQL App」をインストールしていきましょう。
こちらからインストール画面を開きます。
「Shop URL」には、「Shopify GraphiQL App」をインストールしたいストア、つまり GraphQL Admin API を実行したいストアのドメインを入力します。
次に、アクセススコープを選択します。今回は「Select all」をクリックしてすべてのアクセススコープを設定します。
アクセススコープを設定したら、「Install」をクリックしてストアに「Shopify GraphiQL App」をインストールします。
インストールが完了したら下記の画面に遷移します。
Shopify GraphiQL App の使い方
ここからは実際に「Shopify GraphiQL App」を使用して GraphQL Admin API を実行していきましょう。
ストア の情報取得
ストアの情報はこちらの GraphQL クエリを使用して取得できます。
今回は、ストア名とストアのドメインを取得してみます。
{
shop {
name
myshopifyDomain
}
}
上記のクエリを「Shopify GrapgiQL App」の左上のセクションにそのまま貼り付けてください。
クエリを貼り付けたら実行ボタンをクリックして GraphQL Admin API を実行します。
実行すると、右側に実行結果が返ってきます。ストア名とストアのドメインが取得できました。
商品 の情報取得
先ほどと同じ容量で、商品の情報も GraphQL を実行して取得してみましょう。商品の情報はこちらの GraphQL クエリを使用して取得できます。
商品の商品名とハンドル名を取得してみます。
{
product(id: "gid://shopify/Product/xxxxxxxxxx") {
title
handle
}
}
上記のクエリを「Shopify GrapgiQL App」の左上のセクションに貼り付けてください。xxxxxxxxxx
の部分は情報を取得したい商品の id に書き換えてください。
実行すると下記のように商品の情報が取得できました。
ストアや商品以外の情報も取得できるので詳しくはこちらのドキュメントをみてみてください。
まとめ
今回は、そもそも Shopify Admin API とはどういうものかという説明から、実際に Shopify Admin API を叩く方法や「Shopify GraphiQL App」を使用して GraphQL Admin API を試す方法の解説まで行いました。
Shopify Admin API を自在に使いこなすことができれば、ストアのカスタマイズ性が飛躍的に向上するのでぜひ学習してみてください。
最後まで読んでいただきありがとうございました!