今回紹介するのはProduct情報として取得できるデータの一覧です。日本語情報がなかったので、良い機会だと思い、まとめてみることにしました。
例えば、Liquidで商品のタイトルを出力する際は
{{ product.title }}
という形で取得できますが、他にもたくさん取得できる情報があるので一覧化してみます。
ちなみにバリアントというのは該当商品の種類のことです。例えば、一つの商品にカラーやサイズ違いがある場合に、商品にバリアントが存在すると言えます。
product.available(在庫の有無)
商品の在庫有無の取得。商品のバリアントが全て在庫ない場合にfalseを返す。購入可能な場合はtrueを返す。
{{ product.available }}
product.collections (商品が属するコレクション)
商品が属するコレクションを取得することが可能。取得の方法は下記Liquid参考。
{% for collection in product.collections %}
<p>{{ collection.title }}</p>
{% endfor %}
例として属しているコレクションのタイトル名を表示する場合。
product.content (商品の詳細・説明テキスト)
管理画面で入力した商品の説明部分を表示。 product.descriptionも同じ。
{{ product.content }}
product.created_at (商品が管理画面で作成された日)
商品が管理画面で作成された日付を取得。product.published_dateとは異なるので注意。
{{ product.created_at }}
【参考】
2021/9/12のように表示したい場合
{{ product.created_at | date: '%Y/%m/%d' }}
2021年9月12日のように表示したい場合
product.featured_img (商品のメイン画像)
商品のメイン画像を表示する。ただ<img>タグ内で使用する際は注意が必要。下記のように記載する。
<img src="{{ product.featured_img | img_url }}">
product.first_available_variant(購入可能な最初のバリアント)
商品の中で最初の購入可能なバリアント。例えば、該当するvariantのタイトルを取得する際は
{{ product.first_available_variant.title }}
と記載する。
product.gift_card? (ギフトカード商品かの判断)
ギフトカード商品の場合にtrueを返す。ギフトカード商品とは、商品管理→ギフトカードから作成する商品のこと。
product.handle (商品のハンドルURL)
商品のハンドルURLのこと。例えば
ec-penguin.com/products/white-shirt
というURLがあったら、最後の"white-shirt"の部分がハンドル名になります。
{{ product.handle }}
product.has_only_default_variant (商品が一つのバリアントしかないか判断)
商品にバリアントが一つしかない場合にtrueを返す。
{{ product.has_only_default_variant }}
product.id (商品ID)
商品のidを返す。商品のIDはユニークで、管理画面から商品にアクセスした際のURLにも含まれている。
{{ product.id }}
product.images (商品の画像一覧)
商品の画像一覧を出力できる。画像は配列として返されるので、下記のように記載が必要。
{% for image in product.images %}
<img src="{{ image.src | img_url }}">
{% endfor %}
product.options (商品オプション)
商品のオプションを表示する。オプションとは、商品の中で複数種類ある項目のこと。
例えば特定の商品に
- カラー → ブルー、パープル
- サイズ → S, M, L
の種類があったとすると「カラー」「サイズ」の部分がオプションになる。
ちなみに、バリエーションは
- ブルー S
- ブルー M
- ブルー L
- パープル S
- パープル M
- パープル L
の6通りになる。
取得方法としては、こちらも配列で返されるので
{% for option in product.options %}
<p>{{ option }}</p>
{% endfor %}
のようにオプション名「カラー」「サイズ」を出力もできるし、もしいくつのオプションがあるかを調べる場合は
{{ product.options.color }}
とオプションの「カラー」に幾つの値があるかも出力可能。
product.options_by_name(商品オプション取得)
オプションの名前を指定して取得できる。
{% for color_option in product.options_by_name["カラー"].values %}
{{ color_option }}
{% endfor %}
とするとオプション名「カラー」の選択肢である「ブルー、パープル」を出力することが可能。
product.options_by_value(商品オプションの値)
商品のオプションの中身を全て取得できる。
- オプションの名前 → 「カラー」「サイズ」
- オプションの値 → 「ブルー、パープル」「S, M, L」
なのでオプション周りはこれを知っていれば事足りる説がある。下記のように記載。
{% for product_option in product.options_with_values %}
<p>オプション名:{{ product_option.name }}</p>
<ul>
{%for value in product_option.values %}
<li>オプション値:{{ value }}</li>
{% endfor %}
</ul>
{% endfor %}
product.price (商品価格)
商品価格。もし複数のバリアント商品があり価格が異なれば最低価格が表示される。
{{ product.price }}
product.price_max (商品内で最も高いバリアント価格)
バリアントの中で、最も高い商品価格。
{{ product.price_max }}
product.price_min (商品内で最も低いバリアント価格)
バリアントの中で、最も低い商品価格。
{{ product.price_min }}
product.published_at (商品が公開された日)
商品の公開日を取得。商品の登録日とは別なので注意。
{{ product.published_at }}
product.selected_variant (選択済みのバリアント)
URL基準で選択されたバリアントを取得し、バリアントオブジェクトを返す。もしURLでバリアントの指定がなかった場合はnilを返す。
例えば、選択されたバリアントのskuを取得したい場合は下記のように記載する。
{{ product.selected_variant.sku }}
product.selected_or_first_available_variant (選択済みor購入可能な最初のバリアント)
product.selected_variant と同じようにURL基準で選択されたバリアントを取得し、もしURL基準で選択されていなければ、在庫がある購入可能なバリアントを返す。
{{ product.selected_or_first_available_variant.sku }}
product.tags (商品のタグ)
商品のタグを取得する。商品タグの配列を返す。Liquidでタグを取得する時は下記のように記載します。
{% for tag in product.tags %}
<p>{{ tag }}</p>
{% endfor %}
product.template_suffix(商品への適用テンプレの名前)
管理画面で選択されている商品テンプレートの名前。デフォルトの商品テンプレートの場合は"nil" となり、カスタムテンプレートが適用されている場合はproduct.custom.liquid だったら custom が出力される。
{{ product.template_suffix }}
product.title (商品タイトル)
最もよく使う商品情報。商品タイトルを返す。
{{ product.title }}
product.type (商品タイプ)
商品のタイプを返す。
{{ product.type }}
product.url (商品URL)
商品のURLを返す。商品URLはハンドル(product.handle)と違い、"/products/white-shirt"のように/products/も込みで出力される。
{{ product.url }}
product.variants (商品バリアント一覧)
商品のバリアント一覧を配列として返す。Liquidの書き方は下記参考。
{% for variant in product.variants %}
{{ variant.sku }}
{% endfor %}
バリアントのskuを取得する場合の例。
product.vendor (商品の販売元)
商品の販売元を返す。
{{ product.vendor }}
[Shopify]Liquidで取得できる商品データ一覧 Product Object 一覧 まとめ
以上、商品情報として取得できる値の一覧でした。商品情報は最も使う情報といっても過言ではありません。一方で英語の情報が主で、日本語情報が少ないように感じたため、今回日本語でまとめてみました。少しでもお役に立てたなら嬉しいです。
それでは最後までお読みいただき、ありがとうございました!本日も良い1日を!