サムネイル

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 アプリ

シンプル追従営業日カレンダー|お手軽追従休業日設定のアイコン

シンプル追従営業日カレンダー|お手軽追従休業日設定

営業日カレンダーをストアに常に追従表示。定休日や臨時休業がお客様にひと目で伝わり、安心してお買い物いただけます。

シンプル店舗受け取り|お手軽ローカルピックアップのアイコン

シンプル店舗受け取り|お手軽ローカルピックアップ

お客様がカートページで受け取り店舗・日時を指定できます。テイクアウトや店舗受け取りにおすすめです。

シンプル注文履歴おすすめ商品|お手軽マイページアップセルのアイコン

シンプル注文履歴おすすめ商品|お手軽マイページアップセル

マイページの注文ページに、商品ごとに設定したおすすめ商品を表示。再購入を後押しします。

シンプル顧客メタフィールドCSVインポート・エクスポートのアイコン

シンプル顧客メタフィールドCSVインポート・エクスポート

顧客メタフィールドをCSVで一括管理。エクスポート・編集・インポートがかんたんに。

シンプルフォーム一体型LP|お手軽チャットボット購入のアイコン

シンプルフォーム一体型LP|お手軽チャットボット購入

チャットボット形式でお客様が迷わず注文できるLPを設置できます。コーディング不要で、テーマエディタから簡単に設定できます。

シンプル商品メタフィールドCSVインポート・エクスポートのアイコン

シンプル商品メタフィールドCSVインポート・エクスポート

商品やバリエーションのメタフィールドをCSVで一括管理。インポートもエクスポートもこのアプリひとつで完了。

シンプル新しいお客様アカウント拡張|生年月日・追加フォームのアイコン

シンプル新しいお客様アカウント拡張|生年月日・追加フォーム

誕生日や性別などの項目を、お客様アカウントのプロフィールページに追加できます。コーディング不要です。

シンプル2点目購入割引|2点目以降自動セール設定のアイコン

シンプル2点目購入割引|2点目以降自動セール設定

2点目以降の購入で自動割引。割引バッジと対象商品の表示で、まとめ買いを後押しします。

関連記事