Liquid、JavaScriptなどに関する質問
いつもお世話になっております。
Shopify Flowを使用して、オーダーにタグをつけたいと考えています。
商品にメタフィールドを設定し、注文が作成された際のline itemのメタフィールドの値が特定のものだった場合、オーダーにタグをつける、ということをしたいのですが、メタフィールドの条件の指定方法がわかりません。
1. Order>Lineitems>Productと進んでいくと、metafieldDefinitionsとmetafieldsがあるのですが、この違いはなんでしょうか?
2. keyとvalue両方を指定できる項目が見つけられないのですが、ありますでしょうか?
また、ない場合にはどのように指定すれば良いでしょうか?
どなたかご存知の方がいましたら、教えていただけますと助かります。
よろしくお願いいたします。
解決済! ベストソリューションを見る。
成功
> 1. Order>Lineitems>Productと進んでいくと、metafieldDefinitionsとmetafieldsがあるのですが、この違いはなんでしょうか?
Shopify Flowではなく、Admin APIの内容から確認した情報ですが、
metafieldDefinitionsは、名前が示す通り、メタフィールドの定義情報です。
例えば、メタフィールドのnamespace, key, 商品管理画面上での名称(name)などの情報は含まれていますが、value(メタフィールドに実際に設定された値)は含まれていないようでした。
metafieldsの方にvalueがありますので、今回のケースですと、metafiledsを利用されるのが良いかと思います。
> 2. keyとvalue両方を指定できる項目が見つけられないのですが、ありますでしょうか?
また、ない場合にはどのように指定すれば良いでしょうか?
個人的には、なぜ下記でうまく動くのかが不思議なのですが、
下記のように設定するとうまく動きました。
上図のようになるように、うまく「基準を追加」します。
なお、基準を追加する際、下図の点にご注意ください。
他の項目から、metafiledsを使おうとすると、私の場合は、internal errorが発生し、ワークフローをスタートできませんでした。
(最初の基準追加時は、order > lineitems > product > metafiledから設定し、残りの基準追加は、matefileds_itemから行ってください。)
なお、
> 個人的には、なぜ下記でうまく動くのかが不思議なのですが、
について、補足しておきますと、
上図の設定ですと、
メタフィールドの
namespaceがhogeで、
keyがfugaで、
valueがpiyo
の商品がある場合に、アクションを実行することになりますが、
Flowのログの条件一致のさせ方を見るに、
下記のような場合でも一致してしまうように見えるのに、
うまくShopify側が処理してくれているのか、
問題が起きなかったのが不思議でした。
hoge.fuga = pipiのメタフィールドと
hoge.fufu = piyoのメタフィールドを
持つ商品にも一致してしまうように見える。
この点、個人的には腑に落ちておらず、
質問者さまにおかれまして、Flow設定後に十分にテストいただくのが良いかと思います。
ご参考まで。
(キュー田辺)
成功
> 1. Order>Lineitems>Productと進んでいくと、metafieldDefinitionsとmetafieldsがあるのですが、この違いはなんでしょうか?
Shopify Flowではなく、Admin APIの内容から確認した情報ですが、
metafieldDefinitionsは、名前が示す通り、メタフィールドの定義情報です。
例えば、メタフィールドのnamespace, key, 商品管理画面上での名称(name)などの情報は含まれていますが、value(メタフィールドに実際に設定された値)は含まれていないようでした。
metafieldsの方にvalueがありますので、今回のケースですと、metafiledsを利用されるのが良いかと思います。
> 2. keyとvalue両方を指定できる項目が見つけられないのですが、ありますでしょうか?
また、ない場合にはどのように指定すれば良いでしょうか?
個人的には、なぜ下記でうまく動くのかが不思議なのですが、
下記のように設定するとうまく動きました。
上図のようになるように、うまく「基準を追加」します。
なお、基準を追加する際、下図の点にご注意ください。
他の項目から、metafiledsを使おうとすると、私の場合は、internal errorが発生し、ワークフローをスタートできませんでした。
(最初の基準追加時は、order > lineitems > product > metafiledから設定し、残りの基準追加は、matefileds_itemから行ってください。)
なお、
> 個人的には、なぜ下記でうまく動くのかが不思議なのですが、
について、補足しておきますと、
上図の設定ですと、
メタフィールドの
namespaceがhogeで、
keyがfugaで、
valueがpiyo
の商品がある場合に、アクションを実行することになりますが、
Flowのログの条件一致のさせ方を見るに、
下記のような場合でも一致してしまうように見えるのに、
うまくShopify側が処理してくれているのか、
問題が起きなかったのが不思議でした。
hoge.fuga = pipiのメタフィールドと
hoge.fufu = piyoのメタフィールドを
持つ商品にも一致してしまうように見える。
この点、個人的には腑に落ちておらず、
質問者さまにおかれまして、Flow設定後に十分にテストいただくのが良いかと思います。
ご参考まで。
(キュー田辺)
株式会社Q
田辺様
いつもお世話になっております。
1. metafieldDefinitionsは、定義情報なのですね。
確認してみたところ、確かにvalueの選択項目がありませんでした。
両者の違い、理解できました。
ありがとうございます。
2.メタフィールドの条件の設定方法につきましても、教えていただいた通りに設定したところ、オーダーにタグをつけることができました。
私も
hoge.fuga = pipiのメタフィールドと
hoge.fufu = piyoのメタフィールドを
持つ商品にも一致してしまうように見える。
こちらは一致してしまうように思いましたが、テストしてみたところ
hoge.fuga = piyo
の商品を購入した場合のみ、オーダーにタグをつけることができました。
個人的にはandのかかっている位置によって、うまく処理されているのかなと思いました。
今回も大変わかりやすく教えていただき、ありがとうございました。
とても助かりました。
田辺様
お世話になります。リワイア加藤です。
メタフィールドの
namespaceがhogeで、
keyがfugaで、
valueがpiyo
の商品がある場合に、アクションを実行することになりますが、
Flowのログの条件一致のさせ方を見るに、
下記のような場合でも一致してしまうように見えるのに、
うまくShopify側が処理してくれているのか、
問題が起きなかったのが不思議でした。
hoge.fuga = pipiのメタフィールドと
hoge.fufu = piyoのメタフィールドを
持つ商品にも一致してしまうように見える。
こちらですが、回答されていた設定ですと、Order /Productに含まれる「metafield_item(namespace, key, value, idなどのセット)」を複数持ってきた状態で、「metafield_item」ごとのループで3つの条件を評価しています。
評価単位が商品ではなく「metafield_item(namespace, key, value, idなどのセット)」のため、
namespace = hogeを持つメタフィールドあるか→TRUE
key = fugaのメタフィールドあるか→TRUE
value = piyoのメタフィールドあるか→TRUE
ではなく
metafield_item[0] hoge.fuga = pipi は
namespace = hogeか→TRUE
key = fugaか→TRUE
value = piyoか→FALSE
ということはAND条件成り立たないのでFALSE
metafield_item[1] hoge.fufu = piyo は
namespace = hogeか→TRUE
key = fugaか→FALSE
value = piyoか→TRUE
ということはAND条件成り立たないのでFALSE ...
みたいな感じかなと思いました。(metafieldの「同一のリストアイテム」ではなく、Productの方の「同一のリストアイテム」にANDで追加するとhoge.fuga = pipiのメタフィールドとhoge.fufu = piyoのメタフィールドでTRUEにすることも可能かと思います。)
@rewire_kato さま
ご返信ありがとうございます。
はい、おっしゃる通りの動作を期待しますし、事実、そのように動いているのですが、
ログ画面を見ると、下図のようになっており、
このログの記載のされ方だけ見ると、
hoge.fuga = pipiのメタフィールドと
hoge.fufu = piyoのメタフィールドを
両方同時に持つ商品にも一致してしまうように見える、
と言ったところでした。
1つのメタフィールドに対して、ANDされているように見えないのですが、
実際にはそうなっているということなのでしょうね。
アドバイスありがとうございます。
(キュー田辺)
リエンゲージメントの自動化で売り上げ向上へ!素敵なオンラインストアを作成し、見込み顧客の携帯へ広告を直接に送信する、またはSNSなどで宣伝すると、お客様がストアに行き着...
By Mirai Mar 24, 2024Shopifyは世界で最も革新的なブランドと起業家をサポートしています。個人起業家やあらゆる規模のビジネスの成長を後押しするために、Shopify アカデミーではShopif...
By SarahF_Shopify Mar 22, 2024オンラインストア運営はとてもやりがいのある活動です。新しい注文が入った時の喜びや世界中のお客様とやりとりできる可能性、商品に対して最高のレビューをもらった時の満足感は、毎日の...
By Mina Mar 13, 2024