データを書き換える
商品・バリエーション・メタフィールド・在庫を安全に更新し、失敗を検知できる
最終確認: 2026-09
解説
受託の現場でなぜ必要か: この回では、商品・バリエーション・メタフィールド・在庫を安全に更新し、失敗に気づけるようになります。
受託では、書き込みは取り消せないので、「価格を一括更新」で桁を間違えればそのまま売れてしまいます。
商品はどのミューテーションで書くか
新しい商品モデルでは、productSet(商品全体の作成/更新をまとめて行う。synchronousの既定はtrue)、productCreate / productUpdate、productVariantsBulkCreate / productVariantsBulkUpdate、productOptionsCreateを使います。
バリエーションを1件ずつ更新する旧ミューテーションは使いません(非推奨の名前は公式で確認してください)。
メタフィールドと在庫はどう書くか
メタフィールドはmetafieldsSetに、所有者のGID・namespace・key・type・valueを配列で渡します(1回25件まで)。
定義があれば、型が検証されます。
在庫はinventorySetQuantities(絶対値)かinventoryAdjustQuantities(差分)を使います。inventoryItemIdとlocationId(拠点)の組で、name: "available"に数量を指定します。reason(correction / receivedなど)も必須です。
失敗にどう気づくか(userErrors)
必ずuserErrorsを確認します。
空でなければ失敗で、fieldにどの入力が悪かったかが入ります。
本番で実行する前に、CSVエクスポートでバックアップを取り、開発ストアで試し、少数で試してから全件に進みます。
受託では何を約束するか
一括更新スクリプトには--dry-run(実行せず、何をするかだけ表示するモード)を付けます。
対象件数と変更内容を先に見せてから、実行します。
事故は、この手順を守れば防げます。
※ ShopifyはShopify Inc.の商標です。本サイトは個人が制作した非公式の学習教材であり、同社の承認・提携・後援を受けていません。記載内容は2026-09時点のものです。料金・上限値・管理画面のラベルは変わるため、作業の前に公式ドキュメントで確認してください。