FROM CACHE - jp_header
このコミュニティはピアツーピアサポートに移行しました。Shopify サポートは今後、このコミュニティへのサービスを提供いたしません。これからもぜひ、他のマーチャントやパートナーとつながり、サポートし合い、経験を共有してください。 当社の行動規範に違反する行動や削除を希望するコンテンツがありましたら、引き続きご報告ください

Re: コレクションページにバリエーションを表示する方法

コレクションページにバリエーションを表示する方法

nayao
観光客
11 0 1

テーマはDawnを使用しています。

コレクションページの商品価格の上に、オプション「入数」のバリエーションを表示して、

「この商品には1個、5個、10個入りがある」ということを示したいです。

 

card-product.liquidの {% render 'price' %}の上あたりに追記が必要だと思うのですが、

下記のディスカッションを参考に試してみましたが、全く表示されません。

 

https://community.shopify.com/c/shopify-design/adding-size-variations-to-collection-page/m-p/1241482

https://community.shopify.com/c/technical-q-a/product-variations-display/m-p/537977

 

ちなみに、一つ目のリンクのコードでは売り切れのバリエーションは表示しない条件分岐がありますが(多分・・)、在庫状況にかかわらず表示は出したいです。

アドバイスいただけると助かります。よろしくお願いいたします。

4件の返信4

st_mh
探検家
40 13 11

商品情報からオプションを参照し、表示させる方法は「options_by_name」が合致するものと思います。

(参考)https://shopify.dev/api/liquid/objects#product

 

[例文]

例えば、私の管理サイトでは、商品にオプション「カラー」を設定しています。

出力方法はいくつかあり、簡単な方法は以下です。

 

{% for value in product.options_by_name['カラー'].values %}
    {{ value }}
{% endfor %}
または
{{ product.options_by_name['カラー'].values }}
↓↓

ブラック ホワイト グリーン etc

 

(例はテキストを並べるだけ)

 

おそらく、オプション「入数」にも複数の値が設定されるかと思います。

 

また表示結果の文字列に手を加える必要もあります。

  • (表示結果)1個、5個、10
    • 個数の間に「個、」という文字を追加
    • かつ最後の個数の後は「個」と表記

 

[対処法]

 

この商品には{{ product.options_by_name['入数'].values | join: '個、' }}個入りがある

 

  1. 簡潔に、目的のオプションの配列をフィルタ付きで出力します。
  2. フィルタ「| join: '文字列'」で、値の間に任意の文字列を追加します。
  3. 最後の要素の後には何も追加されませんので、別途記述しておきます。
nayao
観光客
11 0 1

早速のご返信ありがとうございます。

挿入する場所としては、card-product.liquid でいいのでしょうか。

st_mh
探検家
40 13 11

同じ状況にないもので、確実なことが言えまないのですが、少なくとも{% render 'price' %}と同じ場所で大丈夫です。

つまりcard-product.liquidですね。

nayao
観光客
11 0 1

ありがとうございます!やってみます。