Liquid、JavaScriptなどに関する質問
現在テーマ開発を行っております。
・やりたいこと
Customerにつけているタグと同じタグを持ったProductのみを/collections/all で表示させたい
(例)
グループAとグループBがあり、Customerはアカウント作成時にどちらかに属し、タグが付与される。
Productも登録時に、どちらのグループに向けた商品かを判別すべくタグを付与する。
グループAのタグが付いたProductはグループAのタグが付いたCustomerにしか表示されない。
グループBについても同様。
・現状
EasyLockdownというアプリでアクセス制限をかけて商品の詳細は閲覧できない状態にはなりました。
このアプリには下記画像のような設定項目があります。
「ロックの掛かったものを検索やコレクションに表示させるかどうか」という項目です。
現在は画像の通りチェックをいれても表示されてしまいます。
・知りたいこと
そもそも「collection.products」を条件に応じてproductの出し分けが可能なのか。
似たようなものを再現する際のベストプラクティスがあれば。
よろしくお願いいたします。
解決済! ベストソリューションを見る。
成功
>そもそも「collection.products」を条件に応じてproductの出し分けが可能なのか。
はい、下記は一例ですが、collectionページにてお客様に付与されたタグと商品に登録されたタグを一致させるなどの方法で商品の出しわけは可能です。
コード例:
{% for tag in customer.tags %}
{% if tag contains "product__" %}
{% assign customerTag = tag | split: "product__" | last %}
{% endif %}
{% endfor %}
{% for product in collection.products %}
{% if product.tags contains customerTag %}
商品を表示
{% endif %}
{% endfor %}
こちらで商品の出しわけ自体は可能ですが、検索に引っかからないようにする、商品の詳細ページを閲覧できないようにする、などの処理が必要な場合は、頂いているようなアプリを利用する形が良いと思います。
成功
>そもそも「collection.products」を条件に応じてproductの出し分けが可能なのか。
はい、下記は一例ですが、collectionページにてお客様に付与されたタグと商品に登録されたタグを一致させるなどの方法で商品の出しわけは可能です。
コード例:
{% for tag in customer.tags %}
{% if tag contains "product__" %}
{% assign customerTag = tag | split: "product__" | last %}
{% endif %}
{% endfor %}
{% for product in collection.products %}
{% if product.tags contains customerTag %}
商品を表示
{% endif %}
{% endfor %}
こちらで商品の出しわけ自体は可能ですが、検索に引っかからないようにする、商品の詳細ページを閲覧できないようにする、などの処理が必要な場合は、頂いているようなアプリを利用する形が良いと思います。
ご返信ありがとうございます。
内容を確認させていただきました。
コード例までありがとうございます。
customer.tagsから該当のtagを抽出し、product.tags contains で商品の出し分けをしていることは理解できました。
その他の方のご意見等があればそちらも拝見した後、ベストソリューションとさせていただければと思います。
Shopify アカデミーの学習パスB2B on Shopify:立ち上げとカスタマイズで卸売販売に進出しましょう。これら3つの無料コースは、ShopifyストアでB2B機能...
By Shopify Jan 31, 2025サポートの選択肢が増えていく中、最適となる選択の判断が難しくなっているかと存じます。今回は問題の解決に最適となるサポートの選択方法を、紹介させて頂きます。 選択肢のご紹介...
By Mirai Oct 6, 20242023年初頭、Shopifyペイメントアカウント、及びShopifyアカウント全体のセキュリティを強化する為の変更が適用されました。ユーザーのアカウントセキュリティを強化す...
By Mirai Sep 29, 2024