freks blog

about

ShopifyでShop metafieldを更新する

created: 2024-10-05
おすすめ記事: 出会ってよかったプログラマー本

ShopifyでShop metafieldを更新したかったので調べてみました
管理画面 > Settings > Custom data > Metafield definitions には Shop がなく画面から更新はできないです

GraphQLで更新するには

mutation updateShopMutation($metafields: [MetafieldsSetInput!]!) {
  metafieldsSet(metafields:$metafields){
    metafields{
      id
      key
      value
    }
    userErrors{
      code
      message
    }
  }
}

Variablesが

{
  "metafields": [
    {
      "key": "materials",
      "namespace": "my_fields",
      "ownerId": "gid://shopify/Shop/12345678",
      "type": "multi_line_text_field",
      "value": "95% Cotton\n5% Spandex"
    }
  ]
}

で更新できます
ownerId に渡したもののMetafieldが更新されます
typeList of data types を参考にしてください

実行すると定義がなくても作られました

Shop idが分からなかったらクエリを投げて確認しましょう
クエリでShopのidとMetafieldを確認するには

query shop {
 shop {
    id
  name
    metafields(first: 10) {
      nodes {
        namespace
        key
        value
      }
    }
 }
}

で確認できます

簡単に見るなら https://admin.shopify.com/store/(shop name)/metafields.json にアクセスしても見れます

まとめ

商品のMetafieldだと updateProduct でできるのですが、Shopはなさそうでした
Shop metafieldはちょっと隠されてるのが気になります

PR


Amazonのアソシエイトとして、blog.freks.jp は適格販売により収入を得ています。
This site is managed by freks