Shopifyのcollectionに関するオブジェクトに関するメモ。
概要
collectionオブジェクトは、collection.liquidテンプレート内に記載することで、コレクションに入れた商品の情報を取得できます。
対して、ドキュメントでは見つけられていませんが以下の記述を使えば、どのページでも特定のコレクションの画像や説明文が取得できます。
{{ collections['指定コレクションのハンドル'].title }}
該当コレクションのHandleを指定することで、collectionsオブジェクトは対象のコレクションを特定できます。
サンプル
{% comment %}HandleがtestCollectionの場合で、collectionテンプレート以外のliquidファイルに記述する場合{% endcomment %}
{% comment %}Handleを直接記載することで、そのHandleのタイトルが表示される{% endcomment %}
{{ collections.testCollection.title }}
{{ collections.testCollection.metafields.hoge.fuga }}
{% comment %}以下の書き方であればハンドルに変数の代入が可能なので、assingなどで動的に動作させることが可能{% endcomment %}
{{ collections['testCollection'].title }}
{{ collections['testCollection'].metafields.hoge.fuga }}
上記はシンプルな方法ですが、以下のように無駄が多いもののループで回して条件に合えば表示という作り方もできます。
{% for collection in collections %}
{% if collection.title == 'コレクション名' %}
{{ collection.title }}
{{ collection.description }}
{{ collection.id }}
{{ collection.metafields.hoge.fuga }}
{% endif %}
{% endfor %}
通常は上記のようなif文は使わずに、複数のコレクションの値(タイトルやURLなど)を出力するために使うかなとは思いますが。
結び
Shiopifyのループに用いられる大元のオブジェクトにハンドルを指定して用いることで、簡単に任意のコレクションの値が取れます。
7人がこの記事を評価
役に立ったよという方は上の「記事を評価する」ボタンをクリックしてもらえると嬉しいです。
連投防止のためにCookie使用。SNSへの投稿など他サービスとの連動は一切ありません。