FROM CACHE - jp_header
このコミュニティはピアツーピアサポートに移行しました。Shopify サポートは今後、このコミュニティへのサービスを提供いたしません。これからもぜひ、他のマーチャントやパートナーとつながり、サポートし合い、経験を共有してください。 当社の行動規範に違反する行動や削除を希望するコンテンツがありましたら、引き続きご報告ください

ShopifyFLOWを使用して、会員登録時に取得した複数項目を顧客メタフィールドの単一行のテキスト(リスト)にそれぞれ反映させる方法

ShopifyFLOWを使用して、会員登録時に取得した複数項目を顧客メタフィールドの単一行のテキスト(リスト)にそれぞれ反映させる方法

Kiichi
観光客
4 0 1

会員登録画面にチェックボックスで複数選択可能な項目を作りました。
項目内容は、好きなアーティストを複数選んでくださいというものです。

会員登録画面のコードは以下の通りです。(アーティスト名は伏せています)

</div>
<div style="flex: 0 0 50%; padding-left: 10px;">

<input type="checkbox" name="customer[note][好きなアーティスト 1]" value="Aさん" />Aさん

</div>
<div style="flex: 0 0 50%; padding-left: 10px;">
<input type="checkbox" name="customer[note][好きなアーティスト 2]" value="Bさん" />Bさん
</div>

上記のコードでお客様アカウントのメモに、
好きなアーティスト 1: Aさん
好きなアーティスト 2: Bさん

と表示されます。

この情報を顧客メタフィールドの単一行のテキストのリストに追加していきたいのですが方法がわかりません。
顧客メタフィールドは、「好きなアーティスト」としており、リストなのでAさん・Bさんそれぞれ分けて自動振り分けしたいです。
好きなアーティストは1,2以外にも9まであり今後も追加予定です。

AIを使用してFLOWのコードを出してもらったのですが上手くいきません。

{%- assign notes = customer.note | strip | newline_to_br | split: '<br />' -%}

{%- for note in notes -%}
  {%- assign prefix = "好きなアーティスト" -%}
  
  {%- assign index_start = note | split: prefix | last | strip | slice: 0, 1 | default: "" | plus: 0 -%}
  
  {%- if index_start != blank -%}
    {%- for i in (1..index_start) -%}
      {{ prefix }}{{ i }}: {{ note | split: prefix | last | strip }}
    {%- endfor -%}
  {%- endif -%}
{%- endfor -%}

どうやら顧客メモの「好きなアーティスト 1: Aさん」の1の部分が1以外でも出力可能としているようなのですが、上手くいきません。

顧客メタフィールドの単一行のテキスト(リスト)にお客様アカウントのメモの複数情報をそれぞれ自動振り分けするFLOWのコードと設定を教えていただきたいです。

説明が下手くそで大変申し訳ございません。



補足)単一行のテキスト(リストではない)の場合は、以下のコードで出力できています。
(誕生日を顧客メタフィールドに出力する)

{%- assign notes = customer.note | strip | newline_to_br | split: '<br />' -%}
{%- for note in notes -%}
  {%- if note contains "Day: " -%}
    {{ note | split: 'Day: ' | last | strip }}
  {%- endif -%}
{%- endfor -%}

 

2件の返信2

Qcoltd
Shopify Partner
1098 449 444

@Kiichi 様

 

テキストのリストには、

シンプルに、

好きなアーティスト 1: Aさん
好きなアーティスト 2: Bさん

と入力されれば良いでしょうか?

 

上記でよろしければ、下記ではどうでしょうか?

{%- capture value -%}
{%- assign notes = customer.note | strip | newline_to_br | split: '<br />'  -%}
{%- for note in notes -%}"{{ note | strip }}",{%- endfor -%}
{%- endcapture -%}
[{{value | remove_last: ","}}]

 

顧客メモに、好きなアーティストの情報以外も含まれている場合は、条件分岐が必要になります。

 

なお、

<input type="checkbox" name="customer[note][好きなアーティスト 1]" value="Aさん" />Aさん

は、

<input type="checkbox" name="customer[note][好きなアーティスト 1]" value="Aさん" />Aさん

とされた方が表示が整います。

(1を半角から全角にしました。逆に2の方を半角にしても良いです。)

 

ご参考まで。

(キュー田辺)

株式会社Q (キュー)
グラフィックデザイン、アパレル事業、Web制作など色々やっている渋谷区代々木の会社です。ShopifyでのECサイトの運営・開発も行なっています。
私たちについて: https://web.q-co.jp/ テックブログ: https://techlab.q-co.jp/
Kiichi
観光客
4 0 1

田辺様

 

返信していただきありがとうございます。

無事実装することができました!

ありがとうございます。