Skip to content

チュートリアル:リキッドコードの記述

リキッドの新機能?これらのチュートリアルは、初心者向けのユースケース用のLiquidコードの作成を開始する際に役立ちます。各チュートリアルでは、条件付きロジックや演算子など、学習目標のさまざまな組み合わせについて説明します。

これらのチュートリアルを終了すると、次のことが可能になります。

  • 一般的なユースケースのためのリキッドコードの記述
  • 文字列の組み合わせユーザーデータに基づいてメッセージをパーソナライズするための流動的な条件付きロジック
  • 変数とフィルタを使用して、属性の値を使用する方程式を記述します
  • リキッドコードの基本的なコマンドを認識し、コードの動作についての一般的な理解を形成します
チュートリアル 学習目標
ユーザセグメントのメッセージをカスタマイズする デフォルト値、条件付き論理
放棄されたカートの通知 演算子、条件付き論理
イベントカウントダウン 変数、日付フィルター
月別誕生日メッセージ 変数、日付フィルター、演算子
好きな商品を宣伝する 変数、日付フィルター、方程式、演算子

ユーザセグメントの個別メッセージ

VIP の顧客や新規契約者など、さまざまなユーザセグメントのメッセージをカスタマイズしましょう。

  1. ユーザのファーストネームを持っていて、持っていないときに送信するパーソナライズされた挨拶でメッセージを開きます。これを行うには、属性first_namefirst_name が空白の場合に使用するデフォルト値を含むLiquid タグを作成します。このシナリオでは、「トラベラー」をデフォルト値として使用します。
1
Happy summer, {{${first_name} | default: "traveler"}}!

2.では、ユーザーがVIP カスタマーである場合に送信するメッセージを提供しましょう。ここでは、if という条件付きロジックタグを使用する必要があります。このタグは、vip_status カスタム属性がVIP と等しい場合、次の液体が実行されることを示します。この場合、特定のメッセージが送信されます。

1
2
{% if {{custom_attribute.${vip_status}}} == 'VIP' %}
Thank you for being a VIP customer! Enjoy your exclusive discount code: VIPSUMMR464.

3.新しい契約者であるユーザーにカスタマイズされたメッセージを送りましょう。条件付きロジックタグelsif を使用して、ユーザのvip_statusnew の場合、次のメッセージが送信されることを指定します。

1
2
{% elsif {{custom_attribute.${vip_status}}} == 'new' %}
Thank you for subscribing! Enjoy your welcome discount code: NEWTRAVEL257.
  1. VIPや新規でないユーザーはどうでしょうか。else タグを持つ他のすべてのユーザーにメッセージを送信できます。これは、前の条件が満たされない場合に、次のメッセージを送信することを指定します。次に、endif タグを使用して条件付きロジックを閉じることができます。これは、これ以上考慮するVIP ステータスがないためです。
1
2
3
{% else %}
Thanks for traveling with us! Enjoy your unique discount code: SUMMRTRVLS240.
{% endif %}
フルリキッドコード
1
2
3
4
5
6
7
8
Happy summer, {{${first_name} | default: "traveler"}}!
{% if {{custom_attribute.${vip_status}}} == 'VIP' %}
Thank you for being a VIP customer! Enjoy your exclusive discount code: VIPSUMMR464.
{% elsif {{custom_attribute.${vip_status}}} == 'new' %}
Thank you for subscribing! Enjoy your welcome discount code: NEWTRAVEL257.
{% else %}
Thanks for traveling with us! Enjoy your unique discount code: SUMMRTRVLS240.
{% endif %}

放棄されたカートの通知

パーソナライズされたメッセージを送信して、ユーザーにカートに残されたアイテムを思い出させましょう。さらに、カートに入っているアイテムの数に基づいて送信するようにカスタマイズします。3 つ以上のアイテムがある場合は、すべてのアイテムを一覧表示します。3つ以上の商品があれば、もっと簡潔なメッセージを送ります。

  1. オペレータ!= で液体条件付きロジックを開き、ユーザのカートが空かどうかを確認してみましょう。これは”not equal” を意味します。この場合、空白値に等しくないカスタム属性cart_items に条件を設定します。
1
{% if {{custom_attribute.${cart_items}}} != blank %}

2.次に、焦点を絞り込み、オペレータ`>’ (「より大きい」を意味する) を使用してカートに3 つ以上の項目があるかどうかを確認する必要があります。

1
{% if {{custom_attribute.${cart_items}}} | size > 3 %}

3.最初の名前でユーザを挨拶するメッセージを記述するか、それが利用できない場合はデフォルト値として”there” を使用します。カートに3つ以上の項目がある場合は、何を記載すべきかを含める。完全なリストでユーザを圧倒したくないので、最初の3 つのcart_items をリストしましょう。

1
Hi {{${first_name} | default: 'there'}}, don't forget to complete your purchase! Your items {{custom_attribute.${cart_items[0]}}}, {{custom_attribute.${cart_items[1]}}}, {{custom_attribute.${cart_items[2]}}}, and others are waiting for you.
  1. else タグを使用して、前の条件が満たされていない場合(つまり、cart_items が空白または3 未満の場合) の処理を指定し、送信するメッセージを指定します。3つのアイテムはあまりスペースを取らないので、全部出品できます。Liquid 演算子join および, を使用して、項目をカンマで区切ってリストすることを指定します。endif でロジックを閉じます。
1
2
3
{% else %}
Hi {{${first_name} | default: 'there'}}, don't forget to complete your purchase! Your items: {{{custom_attribute.${cart_items}}} | join: ', '}  are waiting for you. 
{% endif %}
  1. elseabort_message を使用して、カートが前の条件のいずれにも一致しない場合にメッセージを送信しないように、Liquid コードに指示します。つまり、カートが空の場合です。endif でロジックを閉じます。
1
2
3
{% else %}
{% abort_message('No items in cart') %}
{% endif %}
フルリキッドコード
1
2
3
4
5
6
7
8
9
{% if {{custom_attribute.${cart_items}}} != blank %}
{% if {{custom_attribute.${cart_items}}} | size > 3 %}
Hi {{${first_name} | default: 'there'}}, don't forget to complete your purchase! Your items {{custom_attribute.${cart_items[0]}}}, {{custom_attribute.${cart_items[1]}}}, {{custom_attribute.${cart_items[2]}}}, and others are waiting for you.
{% else %}
Hi {{${first_name} | default: 'there'}}, don't forget to complete your purchase! Your items: {{{custom_attribute.${cart_items}}} | join: ', '}  are waiting for you.
{% endif %}
{% else %}
{% abort_message('No items in cart') %}
{% endif %}

イベントカウントダウン

記念セールまでの残り日数を記載したメッセージをユーザーに送りましょう。これを行うには、変数を使用して、属性の値を操作する方程式を作成します。

  1. まず、変数sale_date をカスタム属性anniversary_date に割り当て、date: "s" フィルタを適用します。これにより、anniversary_date が秒単位のタイムスタンプ形式に変換され、その値がsale_date に割り当てられます。
1
{% assign sale_date = {{custom_attribute.${anniversary_date}}} | date: "%s" %}

2.また、今日のタイムスタンプをキャプチャする変数を割り当てる必要があります。変数todaynow (現在の日付と時刻) に割り当て、date: "%s" フィルタを適用します。

1
{% assign today =  'now' | date: "%s"  %}

3.ここで、現在(today)とAnniversary Sale(sale_date)の間の秒数を計算します。これを行うには、変数differencesale_date からtoday を引いた値に割り当てます。

1
{% assign difference =  event_date | minus: today %}
  1. ここで、difference をメッセージで参照できる値に変換する必要があります。これは、セールまでに何秒あるかをユーザに伝えるのが理想的ではないためです。difference_daysevent_date に割り当て、86400 で割り、日数を取得します。
1
{% assign difference_days = difference | divided_by: 86400 %}
  1. 最後に、送信するメッセージを作成しましょう。
1
Get ready! Our Anniversary Sale is in {{ difference_days }} days!
フルリキッドコード
1
2
3
4
5
{% assign sale_date = {{custom_attribute.${anniversary_date}}} | date: "%s" %}
{% assign today =  'now' | date: "%s"  %}
{% assign difference =  event_date | minus: today %}
{% assign difference_days = difference | divided_by: 86400 %}
Get ready! Our Anniversary Sale is in {{ difference_days }} days!

月別誕生日メッセージ

今日の月内に誕生日を迎えるすべてのユーザーに特別なプロモーションを送りましょう。今月は誕生日のないユーザーはメッセージを受け取りません。

  1. まず、今日の月を引きましょう。変数this_monthnow (現在の日付と時刻) に割り当て、date: "%B" フィルタを使用して変数が月に等しくなるように指定します。
1
{% assign this_month = 'now' | date: "%B" %}

2.では、ユーザのdate_of_birth から誕生月を引き出しましょう。変数birth_monthdate_of_birth に割り当て、date: "%B" フィルタを使用します。

1
{% assign birth_month = {{${date_of_birth}}} | date: "%B" %}

3.ここで、月を値として持つ2 つの変数があるので、それらを条件付きロジックと比較できます。条件をdate_of_birth に設定して、ユーザーのbirth_month と等しくします。

1
{% if {{this_month}} == {{birth_month}} %}
  1. 今月もユーザーの誕生月であれば、送信するメッセージを作成してみましょう。
1
We heard {{this_month}} is a special month! Enjoy a 50% discount on your purchase with code BIRTHDAY50 until the end of {{this_month}}.
  1. else タグを使用して、条件が満たされない場合の動作を指定します(この月はユーザの誕生月ではないため)。
1
{% else %} 
  1. ユーザの誕生月が今月でない場合はメッセージを送信したくないので、abort_message を使用してメッセージをキャンセルし、endif で条件付きロジックを閉じます。
1
2
{% abort_message("Not their birthday month") %}
{% endif %}
フルリキッドコード
1
2
3
4
5
6
7
{% assign this_month = 'now' | date: "%B" %}
{% assign birth_month = {{${date_of_birth}}} | date: "%B" %}
{% if {{this_month}} == {{birth_month}} %}
We heard {{this_month}} is a special month! Enjoy a 50% discount on your purchase with code BIRTHDAY50 until the end of {{this_month}}.
{% else %} 
{% abort_message("Not their birthday month") %}
{% endif %}

お気に入りプロモーション

最終購入日が6ヶ月以上前であれば、ユーザーのお気に入りの商品をプロモートしましょう。

  1. まず、条件付きロジックを使用して、ユーザーのお気に入りの製品と最終購入日があるかどうかを確認します。
1
{% if {{custom_attribute.${favorite_product}}} == blank or {{custom_attribute.${last_purchase_date}}} == blank %}

2.それから、ユーザーのお気に入りの商品や最終購入日がない場合は、メッセージを送信しないでくださいと記載します。

1
{% abort_message("No favorite product or last purchase date") %}

3.else を使用して、上記の条件が満たされない場合の動作を指定します(do にはユーザのお気に入りの製品と最終購入日が含まれているため)。

1
{% else %}
  1. 購入日がある場合は、変数に割り当てる必要があります。これにより、今日の日付と比較できます。まず、変数todaynow (現在の日付と時刻) に割り当て、date: "%s" フィルタを使用して値を秒で表されるタイムスタンプ形式に変換することによって、今日の日付の値を作成します。plus: 0 フィルタを追加して、”0” をタイムスタンプに追加します。これはタイムスタンプの値を変更しませんが、将来の方程式でタイムスタンプを使用する場合に役立ちます。
1
{% assign today = 'now' | date: "%s" | plus: 0 %}
  1. 次に、変数last_purchase_date をカスタム属性last_purchase_date に割り当て、date: "s" フィルタを使用して、最後の購入日を秒単位でキャプチャします。plus: 0 フィルタを再度追加します。
1
{% assign last_purchase_date = {{custom_attribute.${last_purchase_date}}} | date: "%s" | plus: 0 %}
  1. 最終購入日と本日の日付は秒単位であるため、6か月の秒数を計算する必要があります。式(約6ヶ月×30.44日×24時間×60分×60秒)を作成し、変数six_monthsに代入します。times を使用して、時間単位の乗算を指定します。
1
{% assign six_months = 6 | times: 30.44 | times: 24 | times: 60 | times: 60 %}
  1. すべての時間値が秒単位になったので、方程式でそれらの値を使用できます。today_minus_last_purchase_date という変数を割り当てて、今日の値を取り、last_purchase_date から減算します。これにより、前回の購入から何秒経過したかがわかります。
1
{% assign today_minus_last_purchase_date = {{today | minus: last_purchase_date}} %}
  1. 次に、条件付きロジックで時間値を直接比較します。条件をtoday_minus_last_purchase_date が6 か月以上である(>=) と定義します。つまり、最後の購入日は、少なくとも6ヶ月前でした。
1
{% if today_minus_last_purchase_date >= six_months %}

9.最後の購入が少なくとも6ヶ月前だった場合に送信するメッセージを作成してみましょう。

1
We noticed it’s been a while since you last purchased {{custom_attribute.${favorite_product}}}. Have you checked out our latest offerings?

10.else タグを使用して、条件が満たされていない場合にどうなるかを指定します(購入が少なくとも6 か月前ではなかったため)。

1
{% else %}

11.メッセージをキャンセルするには、abort_message を含めます。

1
{% abort_message("No favorite product or last purchase date") %}

12.最後に、2 つのendif タグでLiquid を終了します。最初のendif は、お気に入りの製品または最終購入日の条件付きチェックを閉じ、2 番目のendif は、少なくとも6 か月前の最終購入日の条件付きチェックを閉じます。

1
2
{% endif %}
{% endif %}
フルリキッドコード
1
2
3
4
5
6
7
8
9
10
11
12
13
{% if {{custom_attribute.${favorite_product}}} == blank or {{custom_attribute.${last_purchase_date}}} == blank %}
{% abort_message("No favorite product or last purchase date") %}
{% else %}
{% assign today = 'now' | date: "%s" | plus: 0 %}
{% assign last_purchase_date = {{custom_attribute.${last_purchase_date}}} | date: "%s" | plus: 0 %}
{% assign six_months = 6 | times: 30.44 | times: 24 | times: 60 | times: 60 %}
{% assign today_minus_last_purchase_date = {{today | minus: last_purchase_date}} %}
{% if today_minus_last_purchase_date >= six_months %}
We noticed it’s been a while since you last purchased {{custom_attribute.${favorite_product}}}. Have you checked out our latest offerings?
{% else %}
{% abort_message("Last purchase was less than six months ago") %}
{% endif %}
{% endif %}
「このページはどの程度役に立ちましたか?」
New Stuff!