Liquid、JavaScriptなどに関する質問
当方初心者レベルとなりますため、以下ご教授いただければ幸いです。
特定の顧客タグを持つユーザーからの発注に対し、"b2b"という注文タグを自動で付与する、という設定をしています。
この"b2b"という文言を含む(今後b2bの別バリエーションタグを設定する可能性があるため「含む」となります)注文タグを持つ場合に注文確認メールで表示の出し分けを行いたいと考えています。
そこで注文確認メールに
{% if order.tags contains "b2b" %}
タグを含む場合の文言
{% else %}
タグを含まない場合の文言
{% endif %}
という形で記載しているのですが、出し分けがされません。
検索をしても原因が掴めず難儀しております。
よろしくお願いいたします。
解決済! ベストソリューションを見る。
成功
ご質問いただいている、注文確認メールでの振り分けの件ですが、オーダーへ[b2b]タグの追加はどのように行われていますでしょうか。
もし、Shopify Flowやタグを追加する機能を持つアプリでタグを追加されている場合、
おそらく、Shopify Flowやアプリが注文にタグを追加する処理が完了する前に、メールが送信されてしまっているのではないかと思います、
そのため、メール内のliquidで判定できない、のだと推測します。
弊社ではShopify Flowで購入時にオーダーへ[b2b]タグを追加しテストしましたが、
ご質問者様同様に注文確認メールでの分岐は出来ませんでした。
そこで別案となりますが、ご質問の中に特定のユーザーが購入した際にオーダーにタグを追加するということでしたが、
逆にオーダーをしたユーザーに特定のタグが付いていた場合に出しわけする方法でも同様の動きになるかと思われますが、いかがでしょうか。
下記コードですとユーザーに付いているタグが[b2b]の他[b2bdata][b2b_sample]などのb2b含むタグでも「b2bタグを含む場合の文言」の方へ分岐されます。
{% assign c_b2btag = '' %}
{% for c_tag in customer.tags %}
{% if c_tag contains 'b2b' %}
{% assign c_b2btag = 'Y' %}
{% break %}
{% endif %}
{% endfor %}
{% if c_b2btag == 'Y' %}
b2bタグを含む場合の文言<br>
{% else %}
b2bタグを含まない場合の<br>
{% endif %}
ご参考まで。
(キュー小坂)
Pebble_web_team 様
お世話になっております。
フルバランスの道家と申します。
ご質問確認しました。
可能性の話ですが、配列内(order.tags)をcontainsで調べるとき、部分一致ができないのではないでしょうか。
例えば、
order.tags = ["b2b"]だとcontains "b2b" でtrueになるかと思いますが、
order.tags = ["b2b-sample"]だと、contains "b2b"ではなく、contains "b2b-sample"にしないとtrueにならないのかもしれません。
もし、"b2b"のみの形でタグ付けされていれば、申し訳ありません。
なにかヒントになれば幸いです。
私たちの励みにもなりますので、
お役に立てていればBest Answerボタンを押して頂ければ嬉しいです。
フルバランス 道家
株式会社フルバランス
道家様
ご返答ありがとうございます。
> order.tags = ["b2b"]だとcontains "b2b" でtrueになるかと思いますが、
>もし、"b2b"のみの形でタグ付けされていれば、
ご記載いただいている通り、現在は"b2b"のみの形でタグ付けを行っております。
その上で出し分けが機能しないため、現在行き詰ってしまっております…
よろしくお願い申し上げます。
成功
ご質問いただいている、注文確認メールでの振り分けの件ですが、オーダーへ[b2b]タグの追加はどのように行われていますでしょうか。
もし、Shopify Flowやタグを追加する機能を持つアプリでタグを追加されている場合、
おそらく、Shopify Flowやアプリが注文にタグを追加する処理が完了する前に、メールが送信されてしまっているのではないかと思います、
そのため、メール内のliquidで判定できない、のだと推測します。
弊社ではShopify Flowで購入時にオーダーへ[b2b]タグを追加しテストしましたが、
ご質問者様同様に注文確認メールでの分岐は出来ませんでした。
そこで別案となりますが、ご質問の中に特定のユーザーが購入した際にオーダーにタグを追加するということでしたが、
逆にオーダーをしたユーザーに特定のタグが付いていた場合に出しわけする方法でも同様の動きになるかと思われますが、いかがでしょうか。
下記コードですとユーザーに付いているタグが[b2b]の他[b2bdata][b2b_sample]などのb2b含むタグでも「b2bタグを含む場合の文言」の方へ分岐されます。
{% assign c_b2btag = '' %}
{% for c_tag in customer.tags %}
{% if c_tag contains 'b2b' %}
{% assign c_b2btag = 'Y' %}
{% break %}
{% endif %}
{% endfor %}
{% if c_b2btag == 'Y' %}
b2bタグを含む場合の文言<br>
{% else %}
b2bタグを含まない場合の<br>
{% endif %}
ご参考まで。
(キュー小坂)
株式会社Q
小坂様
ご返答ありがとうございます。
> もし、Shopify Flowやタグを追加する機能を持つアプリでタグを追加されている場合、おそらく、Shopify Flowやアプリが注文にタグを追加する処理が完了する前に、メールが送信されてしまっているのではないかと思います
現在確認しておりますが、恐らくこの状況が該当するものと思われます。
そして顧客タグでの出し分けについてもありがとうございます。
こちらは機能すること、確認しております。
よって、クライアントには顧客タグによる出し分けを提案してみようと思います。
ありがとうございました。
Shopifyの請求書の支払いが失敗したという通知を受け取って驚いたことはありますか。初めての支払いでエラーが発生したり、これまで何の問題もなく支払いできていたのに突然失敗し...
By Minami_ Sep 8, 20242023年2月、Shopifyはcheckout.liquidを廃止し、Checkout Extensibilityに移行することを発表いたしました。この新しいチェックアウト...
By JasonH Aug 15, 2024「味噌の可能性を、とき放つ」をコンセプトに、豊かな自然に恵まれた信州で味噌の製造販売を行う新田醸造。江戸末期に創業した老舗のみそ屋さんですが、2024年春、顧客層や販売範囲の...
By Minami_ Jul 30, 2024