サムネイル

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_products と read_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 アプリ

シンプルあといくらで無料ギフト|お手軽送料無料プログレスバーのアイコン

シンプルあといくらで無料ギフト|お手軽送料無料プログレスバー

カート金額に応じて無料ギフトと送料無料を提供。あといくらで届くかをプログレスバーで表示します。

シンプルお届け先変更|お手軽住所・配送日時のセルフ修正のアイコン

シンプルお届け先変更|お手軽住所・配送日時のセルフ修正

注文後のお届け先住所や配送希望日を、お客様自身で修正できます。問い合わせ対応の手間を減らします。

シンプル型番・JANコード表示|お手軽SKU・商品コード表示のアイコン

シンプル型番・JANコード表示|お手軽SKU・商品コード表示

商品ページに、選択中のバリエーションの SKU(型番)と JAN コードを表示します。テーマの編集は不要です。

シンプルPDFカタログ|お手軽PDFフリップブック表示のアイコン

シンプルPDFカタログ|お手軽PDFフリップブック表示

商品ページにPDFカタログを、ページをめくる本のように表示。お客様はページを離れずに読めます。

シンプル動画スライドショー|お手軽動画カルーセル表示のアイコン

シンプル動画スライドショー|お手軽動画カルーセル表示

どのページにも全幅の動画カルーセルを表示。動画ごとに見出しとボタンを重ねられます。

シンプルマイページクーポン|お客様アカウント割引コード表示のアイコン

シンプルマイページクーポン|お客様アカウント割引コード表示

顧客アカウントページにクーポンを表示。クーポンを作って ID を貼るだけで表示されます。

シンプル追従カウントダウンタイマー|お手軽あと何日表示のアイコン

シンプル追従カウントダウンタイマー|お手軽あと何日表示

ストアのどこにでも追従型のカウントダウンタイマーを表示して、購入の緊急性を演出できます。

シンプル売り切れバリエーション非表示|自動在庫切れ非表示のアイコン

シンプル売り切れバリエーション非表示|自動在庫切れ非表示

バリエーションピッカーから売り切れのサイズ・カラーを消します。お客様には購入できる選択肢だけが表示されます。

関連記事