【簡単】Shopifyでカスタムフィールドを設定して商品ページに関連商品を表示する

カスタムフィールドを利用して商品ページに簡単に関連商品を表示したい方
※本ページはプロモーションが含まれています

概要

Shopifyで商品ページに関連商品を表示させる方法はいくつかありますが、今回はカスタムフィールドをアプリで作成し、簡単なコードで実現する方法をご紹介します。

関連商品を設定する方法は様々で、細かい設定ができるものもありますが、今回は設定が簡単にできる点を優先しています。

前提

・今回は「Metafields Guru」というアプリを使います。詳細は省きますが、ユーザー独自の項目を設定できるもので、wordpressのカスタムフィールドのようなものだと思っていただければいいと思います。無料プランもあるので、最初はそれで十分だと思います。

metafields

Metafields GuruShopifyアプリストア)

・また関連商品ですが、その商品が属しているコレクションの他の商品を関連商品として表示するという内容にします。

・今回はコードを直接修正するため、ファイルは予めバックアップしておいてください。

手順

  1. Metafields Guruの導入
  2. コードの実装
  3. まとめ

Metafields Guruの導入

Metafields Guruをインストールします。Shopifyアプリストアから「Metafields Guru」を検索してください。

metafields-gutru_image

Metafields Guruをインストールして、アプリを開いてください。
metafields-gutru_image

メニューから「Metafields Guru」→「Products」を選んでください。

metafields-gutru_image

該当する商品を選択してください。
metafields-gutru_image

新規登録の場合は「Create metafields」を押してください。
metafields-gutru_image

ここで詳細を設定します

①Type:今回は”Collection“を選択

②Namespace:任意のテキストを入力(今回はglobalと記入

③key:任意のテキストを入力(今回はcollectionと記入

④Value:その商品の関連商品として表示させたいコレクション(Collection)を選択

metafields-gutru_image

これでアプリの設定はひとまず完了です。続いてコードの編集をしていきます。

コードの実装

“main-product.liquid”を開き、任意の場所に以下のコードを入力してください。

※下記はTailwindcssを使用しています。Tailwindをインストールしていないがスタイルも正確に当てたい方はCDNをご利用ください。

<script src="https://cdn.tailwindcss.com"></script>// <head>内に記述

※そのコレクションにアイテムがその商品以外に1つ以上あることを前提にしています。また商品がなかった場合の処理はここでは記述していません。

<div>
    {% assign collection = product.metafields.global.collection.value %} //ここで所属するコレクションを取得
    <ul>
        {% for product in collection.products limit: 4 %} //コレクションのアイテム(関連商品)を4件まで表示
        <li class="border p-2 relative hover:opacity-80 shadow-md card-js">
            <a href="{{ product.url }}" class="block">
                <figure>
                    <div class="overflow-hidden">
                        <img src="{{ product.featured_image.src | img_url: '1000x' }}" alt="{{ product.title }}"
                             class="w-9/12 mx-auto my-2 mb-1 hover:scale-125 transition duration-300">
                    </div>
                    <figcaption class="px-2 text-xs mb-1">
                        {{ product.title }}
                    </figcaption>
                </figure>
            </a>
        </li>
        {% endfor %}
    </ul>
</div>

細かく説明していきます。

{% assign collection = product.metafields.global.collection.value %} //ここで所属するコレクションを取得

ここで上記の③④で設定した値を記述します。

“product.medafields”に続けて③(global)(collection)を設定します。今回ですと上記で該当するコレクションを取得できます。

{% for product in collection.products limit: 4 %} //コレクションのアイテム(関連商品)を4件まで表示

あとはループでそのコレクションに属している商品(products)を表示していきます。上記の例ですと4件まで取得するようにしています。

以上でコードの実装は完了です。

まとめ

標準の項目だけでは足りない場合や、今回のようにちょっとした工夫で関連商品の表示をする際に「meta fields」は大いに活躍します。

使い方もシンプルで、料金も無料プランが充実しているので是非使ってみてください。

ここまで読んでいただきましたありがとうございました。