Admin GraphQL API / 破壊的変更2026-07

DraftOrderLineItem の grams が廃止
これからは weight(値+単位)に書き換える

ドラフトオーダーの明細から、8年以上前に非推奨化されていた整数フィールド grams が API バージョン 2026-07 で削除される。代わりに値と単位を返す weight フィールドを使う。2026-04 がサポート外になると、grams を参照するクエリはエラーになる。

このページの構成
  1. 30秒で理解 : 何が変わるのか
  2. タイムライン図解 : いつ動かなくなるのか
  3. Before / After : クエリの書き換え
  4. grams と weight の比較
  5. なぜ変更されたのか
  6. 移行手順(3ステップ)
  7. 技術者が押さえるべき5つのポイント
  8. 業務に活かせる3つのユースケース
  9. 提案で使える1行サマリ

130秒で理解 : 何が変わるのか

Admin GraphQL API の DraftOrderLineItem(ドラフトオーダーの明細行)から、整数フィールド grams2026-07 バージョンで削除される。
対応はシンプルで、grams の参照を weight { value unit } に書き換えるだけ。weight は「値」と「単位」の両方を返す。
grams

これまで : grams

重量を「グラム単位の整数」1つで返す。8年以上前に非推奨化済み。単位の概念がなく、大重量で桁あふれ(overflow)の懸念があった。

これから : weight

value(値)unit(単位)の組で返す。グラム以外の単位も表現でき、プラットフォーム内の他の重量表現と一貫する。

影響範囲は DraftOrderLineItem.grams のみ。記事で言及されているのはこのフィールドの削除のみで、他オブジェクトの grams や weight 仕様についての記載はなし。

2タイムライン図解 : いつ動かなくなるのか

8年以上前 grams が 非推奨(deprecated)化 2026-04 grams が使える 最後のバージョン 2026-07 grams を削除 (このバージョンから無い) 2026-04 が サポート外 grams 参照クエリが エラーを返す
「削除」と「エラーになる」は別タイミング。 grams が無くなるのは 2026-07 から。ただし 2026-04 を使い続けているアプリは、その 2026-04 がサポート外になった時点で grams 参照クエリがエラーになる。つまり「古いバージョンに固定して延命」は猶予を伸ばすだけで、サポート期限が来れば必ず止まる。

3Before / After : クエリの書き換え

Before(廃止される)
draftOrder(id: "gid://shopify/DraftOrder/1") {
  lineItems(first: 5) {
    nodes {
      grams   # ← 2026-07 で消える
    }
  }
}
After(推奨)
draftOrder(id: "gid://shopify/DraftOrder/1") {
  lineItems(first: 5) {
    nodes {
      weight {
        value
        unit
      }
    }
  }
}
レスポンスの形が変わる点に注意。grams は数値が1つ返るだけだが、新 weight{ value, unit } のオブジェクト。「grams の整数値をそのまま計算に使っていたコード」は、単位(unit)を見て換算する処理を足す必要がある。単純なフィールド名の置換だけでは済まないケースがある。

4grams と weight の比較

項目grams(旧・廃止)weight(新・推奨)
スカラー 整数(Int)1つ オブジェクト value + unit
単位 グラム固定(単位の概念なし) unit で明示(g / kg / oz / lb 等)
大重量での挙動 桁あふれの懸念 単位を上げて表現でき安全
プラットフォーム内の一貫性 このフィールド独自 統一 他の重量表現と同じ考え方
ステータス 8年以上前に非推奨 → 2026-07 で削除 現行の推奨フィールド

5なぜ変更されたのか

99999...

単一単位 & 桁あふれの問題

grams はグラムという1単位しか扱えず、大きな重量では値があふれる(overflow)可能性があった。

WeightInput で柔軟&一貫に

weight は value と unit を持つ WeightInput を使う。これによりプラットフォームの他の場所での重量の扱いと一貫し、より柔軟になる。

6移行手順(3ステップ)

1

grams の参照を洗い出す

コードベース・保存済みクエリを grams で全文検索。DraftOrderLineItem の明細を読む箇所が対象。

2

weight { value unit } に置換

クエリを書き換え、レスポンス側のパースも value+unit を読む形に変更。数値だけ使っていた計算は単位換算を追加。

3

2026-04 のうちに検証

サポート期限が来る前に新クエリで動作確認。問題なければ 2026-07 へ安全に上げられる。

詳細は DraftOrderLineItem のリファレンスドキュメントを参照。疑問点は Shopify Partners コミュニティで質問できる。

7技術者が押さえるべき5つのポイント

07

1. 廃止は 2026-07 から

grams が無くなるのは 2026-07 バージョン。それ以前のバージョンにはまだ存在するが、新規実装で使ってはいけない。

SUNSET

2. トリガーはバージョンのサポート切れ

エラーになるのは「2026-04 がサポート外になった時点」。バージョン固定は延命にすぎず、期限が来れば必ず止まる。

3. スカラー → オブジェクトへ型が変わる

grams は整数1つ。weight は { value, unit }。クエリのネストもレスポンスのパースも構造が変わる。

g→kg

4. 単純置換では済まない計算

grams の整数値を直接送料計算等に使っていたなら、unit を見て換算する処理が必要。フィールド名だけ替えると値の意味がずれる。

5. 設計思想は「プラットフォーム全体の一貫性」

weight は WeightInput(value+unit)で、Shopify の他の場所の重量表現とそろえる狙い。今後 grams のような単一単位の旧フィールドは段階的に整理される前提で、新規は最初から weight を使うのが安全。

8業務に活かせる3つのユースケース

grams grams grams
USE CASE 1

既存連携の「grams 参照」棚卸しと一括移行

課題
受注・配送・在庫連携バッチや外部 WMS が DraftOrderLineItem.grams を参照しており、2026-04 のサポート切れで本番が止まるリスクがある。
打ち手
リポジトリと保存済みクエリを grams で全文検索 → 該当箇所を weight { value unit } に置換 → ステージングで動作確認。
効果
サポート期限到来による「ある日突然のクエリエラー」を未然に防ぎ、計画的に移行できる。
技術メモ
weight は value+unit を返すため、数値だけ使っていた処理には unit 換算ロジックを追加する。
kg lb
USE CASE 2

大重量・多単位商材の重量データ精度向上

課題
家具・産業機材・まとめ売りなど重量が大きい商材で、grams(単一単位の整数)では桁あふれや単位の取り違いが起きうる。
打ち手
weight に移行し、value と unit を組で扱う。表示や送料計算は unit を尊重して計算する。
効果
重量データが単位込みで正確になり、送料・梱包・配送区分の判定ミスを減らせる。
技術メモ
weight は単一単位の制約から解放されるため、大きな重量でも安全に表現できる(記事記載の overflow 懸念の解消)。
deprecated! removed OK
USE CASE 3

非推奨フィールド検知の仕組み化(今回を最後にする)

課題
grams のように「8年前に非推奨 → ある日削除」というパターンが今後も起きる。毎回バタバタ対応している。
打ち手
今回の移行を機に、API バージョン固定の方針と、deprecated フィールド/サポート期限のモニタリング運用を定常化する。
効果
将来の破壊的変更にも前倒しで気づけ、緊急対応ではなく計画移行に切り替えられる。
技術メモ
Changelog の追跡と、使用中フィールドの deprecation 確認を運用に組み込む。新規実装は最初から推奨フィールド(weight)を使う。

9提案で使える1行サマリ

「DraftOrderLineItem の grams は 2026-07 で削除
weight { value unit } に書き換えれば、単位込みで桁あふれにも強くなる。
2026-04 のサポートが切れる前に grams 参照を洗い出して移行するのが安全。」