商品データを読む
商品・バリエーション・メタフィールド・メディアを条件付きで取得し、全件を取り切れる
最終確認: 2026-09
解説
受託の現場でなぜ必要か: この回では、商品・バリエーション・メタフィールド・メディアを条件付きで取り、全件を取り切れるようになります。
受託では「全商品のSKUと在庫を出して」が最も多い依頼のひとつで、1回に取れる上限とコストの掛け算を知らないと、途中で切れるかレート制限に当たります。
全件はどう取るか(カーソルページネーション)
一覧はfirstとafterで進み、pageInfo { hasNextPage endCursor }で続きがあるかを判定します。
オフセット(何件目から、という指定)はありません。
1回に取れるのは250件までです。
続きは、endCursor(続きの位置を示す文字列)を次のafterに渡して取ります。
条件はどう書くか(query引数)
status:active、tag:sale、vendor:ABC、updated_at:>2026-01-01のように書きます。AND / OR / -で組み合わせられます。
管理画面の検索と同じ構文です。
メタフィールドとメディアはどう取るか
メタフィールド(商品に足した独自の項目)は、metafield(namespace:, key:)で1件、metafields(first:, namespace:)で一覧を取ります。
メディア(画像や動画)はmedia(first:)で取りますが、種類ごとに型が違います。... on MediaImage { image { url } }のように、インラインフラグメントで型ごとに指定します。
発展:ネストした接続とコスト
products(first: 50) { variants(first: 100) { … } }のように接続を入れ子にすると、コストが掛け算になります。
1クエリの上限は1,000ポイントです。
必要なフィールドだけ選んでください。
全件処理はループが前提なので、取得件数をログに出し、途中で止まったらendCursorから再開できるようにします。
※ ShopifyはShopify Inc.の商標です。本サイトは個人が制作した非公式の学習教材であり、同社の承認・提携・後援を受けていません。記載内容は2026-09時点のものです。料金・上限値・管理画面のラベルは変わるため、作業の前に公式ドキュメントで確認してください。