サムネイル

Shopify Admin API とは?具体的な使用方法まで徹底解説!

Shopify Admin API について徹底解説!

目次

Shopify Admin API とは

Admin APIは、Shopify ストアの中心をなす商品、在庫、注文、配送管理などの重要情報の読み取りや更新を可能にする API です。Shopify が提供している API の中でも特に利用する頻度が高く、自社システムとの統合や他のサービスとのデータ同期に活用できます。

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_productsread_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 を自在に使いこなすことができれば、ストアのカスタマイズ性が飛躍的に向上するのでぜひ学習してみてください。
最後まで読んでいただきありがとうございました!

Shopify Admin API のドキュメント
GraphQL Admin API のドキュメント

おすすめ Shopify アプリ

シンプルギフトラッピング|お手軽ギフト包装アプリのアイコン

シンプルギフトラッピング|お手軽ギフト包装アプリ

シンプルな日本製のギフトラッピングアプリ。カートページに簡単にギフト包装オプションを追加できます。

シンプル購入制限|お手軽注文制限について徹底解説のアイコン

シンプル購入制限|お手軽注文制限について徹底解説

シンプルな日本製の購入数制限アプリ。商品ごとに数量の規制を行えます。

シンプルランキング表示|お手軽ベストセラーのアイコン

シンプルランキング表示|お手軽ベストセラー

購入促進!コレクションにランキングラベルを表示してストアの人気商品をアピール

シンプル顧客タグごとの限定販売|お手軽ロイヤリティのアイコン

シンプル顧客タグごとの限定販売|お手軽ロイヤリティ

日本製の顧客タグごとの購入制限アプリ。特定のタグを持つ顧客への限定販売を簡単に実現できます。

シンプルロゴ一覧|お手軽ロゴリスト表示のアイコン

シンプルロゴ一覧|お手軽ロゴリスト表示

シンプルなロゴリストアプリ。ストアにロゴリストを簡単に導入できます。

シンプル余白調整|お手軽レイアウトのアイコン

シンプル余白調整|お手軽レイアウト

シンプルな日本製の余白調整アプリ。余白を挿入することでページデザインの調整が簡単にできます。

シンプルのし(熨斗)アプリのアイコン

シンプルのし(熨斗)アプリ

シンプルな日本製のしアプリ。のし選択機能を簡単に実現できます。

シンプル画像バナー|お手軽広告バナーアプリのアイコン

シンプル画像バナー|お手軽広告バナーアプリ

シンプルな画像バナーアプリ。ストアに画像バナーを簡単に表示できます。

シンプル Q&A|どこでも FAQのアイコン

シンプル Q&A|どこでも FAQ

シンプルな Q&A アプリ。ストアに FAQ を簡単に導入できます。

シンプルモバイルアプリバナー|スマホアプリに誘導のアイコン

シンプルモバイルアプリバナー|スマホアプリに誘導

シンプルなモバイルアプリバナー。ストアにモバイルアプリバナーを簡単に導入できます。

シンプル流れる告知|流れるお知らせ挿入アプリのアイコン

シンプル流れる告知|流れるお知らせ挿入アプリ

シンプルな流れる告知アプリ。ストアに流れる告知を簡単に導入できます。

シンプル売り切れ非表示|在庫切れ商品の表示変更のアイコン

シンプル売り切れ非表示|在庫切れ商品の表示変更

売り切れ商品を非表示にすることができる日本製アプリ。売り切れになった商品を、自動的に非表示(下書き状態)にすることができます。

シンプルレビュー|お手軽口コミのアイコン

シンプルレビュー|お手軽口コミ

シンプルな日本製のレビューアプリ。レビュー機能を簡単に実現できます。

シンプル会員限定販売|お手軽アカウント必須販売のアイコン

シンプル会員限定販売|お手軽アカウント必須販売

シンプルな日本製の会員限定販売アプリ。商品毎に、ログインしていない顧客の購入制限を行えます。

シンプル会員ランク|お手軽顧客タグ付けのアイコン

シンプル会員ランク|お手軽顧客タグ付け

日本製の会員ランク管理アプリ。条件を達成した顧客に自動でタグを追加し、顧客管理を手助けします。

シンプル Wishlist|お手軽お気に入りのアイコン

シンプル Wishlist|お手軽お気に入り

商品数・お気に入り数の上限なしで使えるお手軽お気に入りアプリ。簡単にお気に入り機能を実現できます。

シンプル Coming Soon|商品ページ発売予告アプリのアイコン

シンプル Coming Soon|商品ページ発売予告アプリ

シンプルな日本製の Coming Soonアプリ。商品毎に発売予告を行えます。

シンプルセット販売|お手軽クロスセルのアイコン

シンプルセット販売|お手軽クロスセル

シンプルな日本製のセット販売アプリ。セット販売でのクロスセルを簡単に実現できます。

シンプル予約販売|受注販売や在庫切れ商品販売で使えるのアイコン

シンプル予約販売|受注販売や在庫切れ商品販売で使える

日本製の予約販売アプリ。予約販売や受注販売、在庫切れ商品販売を簡単に実現できます。

シンプル販売期間設定|商品ごとに期間限定販売のアイコン

シンプル販売期間設定|商品ごとに期間限定販売

シンプルな日本製の期間限定販売アプリ。商品ごとに販売期間を設定することができます。

シンプルVIPプログラム|お手軽VIP会員限定販売のアイコン

シンプルVIPプログラム|お手軽VIP会員限定販売

日本製の VIP 限定販売アプリ。特別な顧客を対象とした限定商品の販売を簡単に実現できます。

シンプルポイント|追加料金なしで使えるお手軽ポイントアプリのアイコン

シンプルポイント|追加料金なしで使えるお手軽ポイントアプリ

シンプルな日本製の定額ポイントアプリ。顧客はポイントをそのまま利用することができます。

おすすめ記事