Shopify flow 内でカスタムメタフィールドのjsonを扱う方法

Topic summary

Shopify Flow内でJSONタイプのカスタムメタフィールドから値を取り出す方法についての質問です。

質問内容:

  • custom.test2というJSONタイプのメタフィールド(配列を含む構造)をFlow内のValueで利用する方法が不明

回答・分析:

  • JSONタイプのmetafieldがFlow内ではJSON objectではなく文字列(string)として扱われている可能性が指摘されています
  • ストアフロントのLiquidとShopify FlowのLiquidで挙動が異なる可能性があります

考えられる原因:

  1. JSONが文字列として扱われている
  2. Shopify Flow側のバリデーションによりJSONプロパティ名の指定ができない

提案された対処法:

  • {% assign example_variable = metafield_item.value | split: "," %}のように、splitフィルターを使って文字列を分割し、希望の形式にパースする方法が提案されています

現状:
完璧な解決策は見つかっておらず、Shopifyサポートへの問い合わせも検討されています。

Summarized with AI on November 20. AI used: claude-sonnet-4-5-20250929.

以下のカスタムメタフィールド(json)を登録しているのですが、

flow 内のValueでの利用の仕方がわかりません。

ご教授いただけると幸いです。

custom.test2 (type:json)

{
  "hoge": [
    {
      "number": 111
    },
    {
      "number": 222
    }
  ],
  "foo": [
    {
      "number": 111
    },
    {
      "number": 222
    }
  ]
}

興味があり調査してみました。

確証はないのですが、

Shopify Flowの中で、

JSONタイプのmetafieldから値を取り出すと、

JSON objectではなく、文字列(string)として扱われてしまっているように見えました。

もし、

ストアフロントにおけるLiquidの挙動と、

Shopify FlowにおけるLiquidの挙動が同じであるなら、

質問者様の実装された方法で、

ご希望の値を取り出せると思います。

しかし、そうならない理由は2通りあると考えています。

1つ目は、

冒頭に記載したJSONが文字列として扱われている可能性。

2つ目は、

Shopify Flow側のバリデーションにより、

JSON内のプロパティ名を指定することができない。

どちらにしても、

Shopify側でしかどうしようもないことなので、
Shopifyサポートにお問い合わせいただくしか方法がないのですが、

対応してくれるかというと難しいかもしれませんね。
(開発チームにエスカレーションはしてくれるかもしれませんが。。。)

1つ思いつくのは、

文字列としては扱えるようなので、

metafields_item.value を splitでご希望に合うような形にパースする、

という方法です。

例えば、

{% assign example_variable = metafields_item.value | split: “,” %}

のようにして、少しずつ扱いやすい形にしていきます。

しかし、

完璧なパースを行うのは難しいのではないかと思います。

大した情報がなく恐縮ですが、

参考になれば幸いです。

(キュー田辺)

1 Like