LineItem.weight が 公開版 Admin API(GraphQL)で取得可能に
原題: `LineItem.weight` field now available in public Admin API
- Admin API
- GraphQL
- Orders
- 新機能
- REST
- Shipping
- Fulfillment
- Weight
図解 : LineItem.weight が公開版 Admin API(GraphQL)で取得可能に Admin GraphQL API / 2026-07 LineItem.weight が 公開版 Admin API(GraphQL)で取得可能に GraphQL Admin API 2026-07 以降、注文明細(LineItem)の重量を Weight オブジェクト(value + unit) として直接クエリできる。REST の grams から単位を手で換算する必要がなくなる。 このページの構成 そもそも何が変わるのか(30秒で理解) 図解 : 従来(grams 換算)と新(Weight 直取得) Weight オブジェクトの構造 従来 REST vs 新 GraphQL の比較 クエリのイメージ 技術者が押さえるべき5つのポイント 業務に活かせる3つのユースケース 提案で使える1行サマリ 1 そもそも何が変わるのか GraphQL Admin API の バージョン 2026-07 から、 LineItem 型に対して weight フィールドをクエリできるようになった。 返ってくるのは value(値)と unit(単位)を持つ Weight オブジェクト 。REST API の grams から単位変換する手間がなくなる。 従来 : REST の grams を換算 REST Admin API は明細重量をグラム単位の整数( grams )で返す。kg や lb で扱いたい場合は、自前で割り算・単位ラベル付けをしていた。 新 : GraphQL で Weight を直取得 2026-07 以降の GraphQL Admin API なら weight { value unit } をそのままクエリ。値と単位がセットで返るので、換算コードが不要になる。 2 図解 : 従来(grams 換算)と新(Weight 直取得) ポイントは「変換ステップが 1 つ消える」こと。値と単位が一緒に返るので、グラム前提で書かれた換算ロジックや単位の取り違えが起きにくくなる。 3 Weight オブジェクトの構造 value(値) 重量の数値部分。単位とセットで意味を持つ。 unit(単位) 重量の単位部分。値とペアで返るため、表示・計算の際に単位を別途推測する必要がない。 本記事では weight が「value と unit を持つ Weight オブジェクト」であることまでが明示されている。 unit が取り得る具体的な値(列挙)の一覧は記載なし。 実装時は API スキーマ(GraphQL の Weight / WeightUnit )で確認すること。 4 従来 REST vs 新 GraphQL の比較 項目 従来 : REST Admin API 新 : GraphQL Admin API(2026-07〜) 取得対象 LineItem の grams LineItem の weight 返り値の形 スカラー グラム単位の整数 オブジェクト Weight(value + unit) 単位の扱い 常にグラム固定。他単位は自前換算 単位が unit として一緒に返る 換算コード 必要 不要 利用可能バージョン 従来通り GraphQL Admin API 2026-07 以降 ※ REST の grams 提供有無や非推奨に関する記述は本記事には無い(記載なし)。本記事は GraphQL 側で weight が使えるようになった点のみを伝えている。 5 クエリのイメージ 記事内のフィールド名( LineItem.weight → Weight { value unit } )から組み立てた代表的なクエリ例。実際のフィールド構成は API スキーマで確認のこと。 # GraphQL Admin API (2026-07) query { order(id: "gid://shopify/Order/123" ) { lineItems(first: 10) { nodes { title weight { value unit } } } } } 注文と各明細の重量を 1 回の GraphQL クエリでまとめて取得できる。複数の REST 呼び出し+換算処理を、構造化された 1 レスポンスに置き換えられるのが利点。 6 技術者が押さえるべき5つのポイント 1. 2026-07 以降が前提 この weight フィールドは GraphQL Admin API バージョン 2026-07 から。それ未満のバージョンを指定しているクライアントではクエリできない。 2. 戻り値は構造体 スカラーではなく Weight オブジェクト。 value と unit をそれぞれサブフィールドとして取得する。 3. grams 換算が不要に REST の grams から kg/lb 等へ手作業で換算していたボイラープレートを削除できる。単位の取り違えバグの予防にもなる。 4. 明細(LineItem)単位で取れる 注文全体ではなく、注文明細ごとの重量を取得できる。明細別の配送・料金計算に直接使える粒度。 5. REST → GraphQL 移行の後押しになる これまで重量取得のために REST を残していたコードも、GraphQL 一本で扱えるようになる。 unit が取り得る具体値は記事に記載が無い ため、移行時は GraphQL スキーマの Weight / WeightUnit を確認してから実装すること。 7 業務に活かせる3つのユースケース USE CASE 1 重量ベースの送料・配送ロジックの簡素化 課題 明細ごとの重量を REST の grams で取得し、kg/lb へ手作業で換算して送料計算していた。換算箇所が散らばりバグの温床。 打ち手 2026-07 の GraphQL で LineItem.weight { value unit } を使い、値と単位をそのまま取得する。 効果 換算コードの削減と単位取り違えの予防。配送料金ロジックの保守が軽くなる。 技術メモ unit が同梱されるため、ロケール別の単位表示も値とセットで扱える。 USE CASE 2 WMS/3PL・配送ラベル連携のデータ受け渡し統一 課題 倉庫管理システムや配送ラベル発行へ明細重量を渡すために、grams 換算アダプタを個別保守していた。 打ち手 GraphQL に寄せ、 weight の value/unit を中継データにそのまま採用する。 効果 連携コードの簡素化と、注文+明細重量を 1 クエリで取れる呼び出し回数の削減。 技術メモ unit の具体値は記事に無いため、連携先が想定する単位とのマッピングは事前にスキーマで突き合わせる。 USE CASE 3 重量データの分析・ETL 取り込み 課題 BI/データ基盤で明細別の重量を集計したいが、grams を取り込んでから別途換算する前処理が必要だった。 打ち手 GraphQL の weight.value / weight.unit を ETL でそのまま取り込む。 効果 重量帯別の送料分析・関税試算などを、前処理を減らして組める。 技術メモ REST → GraphQL の移行案件と同時に対応すると、重量周りの取得経路を一本化できる。 8 提案で使える1行サマリ 「注文明細の重量を、GraphQL Admin API 2026-07 から Weight オブジェクト(value+unit) で直接取得できる。 REST の grams 換算ボイラープレートが不要になり、 送料計算・倉庫連携・分析がシンプルに。 」 source : shopify.dev / changelog / lineitem-weight-field-now-available-in-public-admin-api Developer Changelog ・ 2026-04-13 公開