EコマースやShopifyの初学者にとって、できるだけ “やさしく” “わかりやすく” “正確に” 難しいコマース用語やマーケティング用語、ストア構築から販売までの仕組み・ノウハウを伝えることを心がけて、記事コンテンツを作成しています。

「RuffRuff 予約販売」は在庫切れや新商品販売前、入荷待ちなどタイミングで発生する機会損失の削減をサポートします。
ノーコードかつ3ステップで簡単にセットアップでき、日本語に対応しています。
無制限で予約商品を登録および無制限で予約注文を受け付けることが可能です。引用元: RuffRuff 予約販売
Tsun Inc.の小笠原です!
Shopifyアプリ開発をしていく中で、テーマ拡張機能を開発する際にLiquidを書くことがよくあります。
今回はLiquidを書く上でかかせない変数を扱う際に、変数の初期値を設定する方法をご紹介します。
Shopify Liquidではassignタグを使うことで変数を生成することができます。
変数の用途としては、他のプログラミング言語と同様です。
JavaScript経験者の方にはvarやletにあたるものと考えてもらうとわかりやすいと思います。
Liquidオブジェクトと同名の変数を生成した場合、上書きされてしまうので、Liquidオブジェクトと同名の変数は生成しないように気をつけましょう。
assignの基本的な使い方は公式のリファレンスを参照してください。 https://shopify.dev/docs/api/liquid/tags/assign
変数を扱う際に初期値を設定しなくても基本的に問題はありませんが、なにかしらの値が設定されていることが明確になることはコードを書く上でとてもメリットがあります。
例えば、LiquidオブジェクトやJSONのnullableな数値を扱いたい場合、値がnilでないことを確認した上で、比較をする必要がありますが、初期値を設定しておけば、nilでないことの確認が不要になり、コードをシンプルにすることができます。
defaultフィルターを使います。
使い方はシンプルで、初期値を設定したい変数に対して、初期値と一緒にフィルターを使用するだけです。
empty、false、nilの値に対して初期値を設定することができます。 https://shopify.dev/docs/api/liquid/filters/default
defaultフィルターの基本的な使い方です。
{%- liquid
assign your_message = your_json.message | default: 'default message'
-%}
数値の初期値を設定する場合、強制的に数値型に変換させておくと安心です。
Liquidには数値型に変換するフィルターはありませんが、0を足すことで数値型に変換することが可能です。 (1をかける等でも同様)
{%- liquid
assign your_price = your_json.price | default: 1000 | plus: 0
-%}
ブーリアンの場合は注意が必要です。
defaultフィルターは変数がfalseの場合に初期値が設定される挙動のため、初期値をtrueに設定すると変数の値がfalseであっても必ずtrueになってしまいます。
そのため、初期値にtrueを設定する場合は、allow_falseオプションを設定します。
https://shopify.dev/docs/api/liquid/filters/default#default-allow_false
{%- liquid
assign has_product = your_json.has_product | default: true, allow_false: true
-%}
今回はShopifyのLiquidで変数に初期値を設定する方法とそのメリットをご紹介しました。
小ネタですが、Liquidを書いているときによく使うと思いますので、お役に立ったら嬉しいです。
Tsun Inc.ではShopifyを使ったストア構築やアプリ開発を行っています。
もし、ストア構築やアプリ開発をしたい方は、Tsun Inc.へお問い合わせください。
Tsun Inc. CTOの小笠原です!今回はShopify APIをPostmanで簡単に実行するノウハウをまとめました。 Shopify APIに限...
EコマースやShopifyの初学者にとって、できるだけ “やさしく” “わかりやすく” “正確に” 難しいコマース用語やマーケティング用語、ストア構築から販売までの仕組み・ノウハウを伝えることを心がけて、記事コンテンツを作成しています。
掲載している各種情報は、株式会社Tsunが経験および、調査した情報をもとにしています。できるだけ“最新“かつ“正確“な情報の掲載に努めておりますが、内容を完全に保証するものではありません。当サイトによって生じた損害について、株式会社Tsunではその賠償の責任を一切負わないものとします。掲載情報に誤りがある場合には、お手数ですが株式会社Tsunまでご連絡をいただけますようお願いいたします。