grams が廃止weight(値+単位)に書き換えるドラフトオーダーの明細から、8年以上前に非推奨化されていた整数フィールド grams が API バージョン 2026-07 で削除される。代わりに値と単位を返す weight フィールドを使う。2026-04 がサポート外になると、grams を参照するクエリはエラーになる。
grams が 2026-07 バージョンで削除される。grams の参照を weight { value unit } に書き換えるだけ。weight は「値」と「単位」の両方を返す。
grams重量を「グラム単位の整数」1つで返す。8年以上前に非推奨化済み。単位の概念がなく、大重量で桁あふれ(overflow)の懸念があった。
weightvalue(値)とunit(単位)の組で返す。グラム以外の単位も表現でき、プラットフォーム内の他の重量表現と一貫する。
draftOrder(id: "gid://shopify/DraftOrder/1") { lineItems(first: 5) { nodes { grams # ← 2026-07 で消える } } }
draftOrder(id: "gid://shopify/DraftOrder/1") { lineItems(first: 5) { nodes { weight { value unit } } } }
grams は数値が1つ返るだけだが、新 weight は { value, unit } のオブジェクト。「grams の整数値をそのまま計算に使っていたコード」は、単位(unit)を見て換算する処理を足す必要がある。単純なフィールド名の置換だけでは済まないケースがある。
| 項目 | grams(旧・廃止) | weight(新・推奨) |
|---|---|---|
| 型 | スカラー 整数(Int)1つ | オブジェクト value + unit |
| 単位 | グラム固定(単位の概念なし) | unit で明示(g / kg / oz / lb 等) |
| 大重量での挙動 | 桁あふれの懸念 | 単位を上げて表現でき安全 |
| プラットフォーム内の一貫性 | このフィールド独自 | 統一 他の重量表現と同じ考え方 |
| ステータス | 8年以上前に非推奨 → 2026-07 で削除 | 現行の推奨フィールド |
grams はグラムという1単位しか扱えず、大きな重量では値があふれる(overflow)可能性があった。
weight は value と unit を持つ WeightInput を使う。これによりプラットフォームの他の場所での重量の扱いと一貫し、より柔軟になる。
コードベース・保存済みクエリを grams で全文検索。DraftOrderLineItem の明細を読む箇所が対象。
クエリを書き換え、レスポンス側のパースも value+unit を読む形に変更。数値だけ使っていた計算は単位換算を追加。
サポート期限が来る前に新クエリで動作確認。問題なければ 2026-07 へ安全に上げられる。
grams が無くなるのは 2026-07 バージョン。それ以前のバージョンにはまだ存在するが、新規実装で使ってはいけない。
エラーになるのは「2026-04 がサポート外になった時点」。バージョン固定は延命にすぎず、期限が来れば必ず止まる。
grams は整数1つ。weight は { value, unit }。クエリのネストもレスポンスのパースも構造が変わる。
grams の整数値を直接送料計算等に使っていたなら、unit を見て換算する処理が必要。フィールド名だけ替えると値の意味がずれる。
weight は WeightInput(value+unit)で、Shopify の他の場所の重量表現とそろえる狙い。今後 grams のような単一単位の旧フィールドは段階的に整理される前提で、新規は最初から weight を使うのが安全。
grams で全文検索 → 該当箇所を weight { value unit } に置換 → ステージングで動作確認。weight { value unit } に書き換えれば、単位込みで桁あふれにも強くなる。