サムネイル

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

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

目次

Shopify Admin API とは

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

Shopify Admin 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 を使用したいストアでカスタムアプリを作成します。
ストア管理画面の「設定」をクリックしてください。
Shopify管理画面

アプリと販売チャネル」をクリックしてください。
設定画面のアプリと販売チャネル

アプリを開発」をクリックしてください。
アプリと開発チャネル

カスタムアプリ開発を許可」をクリックします。
カスタムアプリ開発を許可をクリックする
カスタムアプリ開発を許可をクリックする

カスタムアプリの開発の許可ができたら「アプリを作成」をクリックしてカスタムアプリを作成していきます。
アプリを作成するポップアップ

「アプリ名」と「アプリ開発者」を入力して「アプリを作成」をクリックします。
アプリを作成するポップアップ

ここまでで、カスタムアプリの作成は終了です。

アクセススコープの設定

次に、カスタムアプリのアクセススコープを設定していきます。実際にアクセススコープを設定する前にアクセススコープとはどういうものかを説明します。

アクセススコープとは

アクセススコープとは 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 を実行するためのアクセススコープを選択してください。とりあえず、Admin API の叩き方を学びたい方は、「商品管理」カテゴリの write_productsread_products を選択してください。
商品管理のカテゴリ

アクセススコープが選択できたら「保存」をクリックして選択したアクセススコープの設定を保存します。
アクセススコープを保存する

以上でアクセススコープの設定は終了です。

カスタムアプリのインストール

設定してきたカスタムアプリをストアにインストールします。

アプリをインストール」をクリックします。
アプリをインストールする

ダイアログが開くので「インストール」をクリックしてください。
アプリをインストールするダイアログ

以上でカスタムアプリのインストールは完了です。

Admin API のアクセストークン取得

次に、Admin API のアクセストークンを取得していきます。アクセストークンは Admin API を叩くときに必要になるので、必ず保存しておいてください。

「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 になっています。

画面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」をインストールしていきましょう。
こちらからインストール画面を開きます。
Shopify GraphOL App Installer

「Shop URL」には、「Shopify GraphiQL App」をインストールしたいストア、つまり GraphQL Admin API を実行したいストアのドメインを入力します。
Store URL を設定する

次に、アクセススコープを選択します。今回は「Select all」をクリックしてすべてのアクセススコープを設定します。
アクセススコープを選択する

アクセススコープを設定したら、「Install」をクリックしてストアに「Shopify GraphiQL App」をインストールします。
インストールする

インストールが完了したら下記の画面に遷移します。
Shopify GraphiQL App

Shopify GraphiQL App の使い方

ここからは実際に「Shopify GraphiQL App」を使用して GraphQL Admin API を実行していきましょう。

ストア の情報取得

ストアの情報はこちらの GraphQL クエリを使用して取得できます。

今回は、ストア名とストアのドメインを取得してみます。

{
  shop {
    name
    myshopifyDomain
  }
}

上記のクエリを「Shopify GrapgiQL App」の左上のセクションにそのまま貼り付けてください。
Shopify GraphiQL App

クエリを貼り付けたら実行ボタンをクリックして GraphQL Admin API を実行します。
Shopify GraphiQL App

実行すると、右側に実行結果が返ってきます。ストア名とストアのドメインが取得できました。
Shopify GraphiQL App

商品 の情報取得

先ほどと同じ容量で、商品の情報も GraphQL を実行して取得してみましょう。商品の情報はこちらの GraphQL クエリを使用して取得できます。
商品の商品名とハンドル名を取得してみます。

{
  product(id: "gid://shopify/Product/xxxxxxxxxx") {
    title
    handle
  }
}

上記のクエリを「Shopify GrapgiQL App」の左上のセクションに貼り付けてください。xxxxxxxxxx の部分は情報を取得したい商品の id に書き換えてください。

実行すると下記のように商品の情報が取得できました。
Shopify GraphiQL App

ストアや商品以外の情報も取得できるので詳しくはこちらのドキュメントをみてみてください。

まとめ

今回は、そもそも Shopify Admin API とはどういうものかという説明から、実際に Shopify Admin API を叩く方法や「Shopify GraphiQL App」を使用して GraphQL Admin API を試す方法の解説まで行いました。
Shopify Admin API を自在に使いこなすことができれば、ストアのカスタマイズ性が飛躍的に向上するのでぜひ学習してみてください。
最後まで読んでいただきありがとうございました!

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

おすすめ Shopify アプリ

シンプル会員初回送料割引|お手軽初回ログイン送料無料のアイコン

シンプル会員初回送料割引|お手軽初回ログイン送料無料

シンプルな日本製の条件に応じた送料割引アプリ。ログインしている顧客を対象とした初回購入時の配送料割引を簡単に実現できます。

シンプル会員送料割引|お手軽ログイン送料無料のアイコン

シンプル会員送料割引|お手軽ログイン送料無料

シンプルな日本製の会員配送料割引アプリ。ログイン状態に応じて配送料を割引できます。

シンプル会員注文割引|お手軽ログインセール設定のアイコン

シンプル会員注文割引|お手軽ログインセール設定

シンプルな日本製の注文割引アプリ。顧客のログイン状態に応じて注文を自動割引できる。

シンプルセット商品在庫連携|お手軽セット商品管理の自動化のアイコン

シンプルセット商品在庫連携|お手軽セット商品管理の自動化

シンプルな日本製のセット商品在庫連携アプリ。在庫連携したセット商品販売を簡単に実現できます。

シンプルVIP注文割引|お手軽VIP会員セール設定のアイコン

シンプルVIP注文割引|お手軽VIP会員セール設定

シンプルな日本製の条件に応じた注文割引アプリ。特別な顧客を対象とした注文割引を簡単に実現できます。

シンプル延長保証|お手軽保証付き商品販売のアイコン

シンプル延長保証|お手軽保証付き商品販売

シンプルな保証付与アプリ。商品毎に保証付与ができます。

シンプルVIP送料割引|お手軽VIP会員送料無料のアイコン

シンプルVIP送料割引|お手軽VIP会員送料無料

シンプルな日本製の条件に応じた送料割引アプリ。特別な顧客を対象とした配送料割引を簡単に実現できます。

シンプル追従カート|追従購入ボタン(Buy Button)のアイコン

シンプル追従カート|追従購入ボタン(Buy Button)

シンプルな追従カートアプリ。ストアに追従カートを簡単に導入できます。

シンプル顧客タグ送料割引|お手軽顧客タグ送料無料のアイコン

シンプル顧客タグ送料割引|お手軽顧客タグ送料無料

シンプルな日本製の送料割引アプリ。顧客タグに応じて配送料を割引したり、無料にしたりできます。

シンプルパンくずリスト|お手軽 Breadcrumbsのアイコン

シンプルパンくずリスト|お手軽 Breadcrumbs

カスタマイズ性の高いパンくずをストアに表示できる!

シンプルブログ記事カスタマイズ|お手軽ブログテンプレートのアイコン

シンプルブログ記事カスタマイズ|お手軽ブログテンプレート

シンプルなブログ記事カスタマイズアプリ。ストアにブログ記事カスタマイズ機能を簡単に実現できます。

シンプルお知らせ一覧|お手軽ブログ一覧挿入アプリのアイコン

シンプルお知らせ一覧|お手軽ブログ一覧挿入アプリ

シンプルなお知らせセクションアプリ。ストアにお知らせセクションを簡単に挿入できます。

シンプルブログ記事目次|自動見出し一覧挿入のアイコン

シンプルブログ記事目次|自動見出し一覧挿入

シンプルなブログ目次生成アプリ。ストアにブログ目次を簡単に表示できます。

シンプルスライドショー|お手軽画像スライダーのアイコン

シンプルスライドショー|お手軽画像スライダー

シンプルなスライドショーアプリ。ストアにスライドショーを簡単に表示できます。

シンプル流れるロゴ|流れるロゴリスト挿入アプリのアイコン

シンプル流れるロゴ|流れるロゴリスト挿入アプリ

シンプルな流れるロゴリストアプリ。ストアに流れるロゴリストを簡単に表示できます。

シンプル名入れ|お手軽名前入りギフトオプションのアイコン

シンプル名入れ|お手軽名前入りギフトオプション

シンプルな日本製の名入れオプションアプリ。商品毎に名入れオプションを追加できます。

シンプル在庫数表示|お手軽残りわずか表示のアイコン

シンプル在庫数表示|お手軽残りわずか表示

シンプルな商品の残りわずか表示アプリ。ストアに商品の残りわずか表示を簡単に導入できます。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

おすすめ記事