Liquid、JavaScriptなどに関する質問
商品詳細ページに、関連商品を表示しようとしています。
直前のURLから属するコレクションを取得して、そのコレクション内の他の商品を表示します。
javascriptのdocument.referrerで直前のURLを取得し、コレクションは取得できましたが、そのjavascriptの値をliquidに渡したいのですが、うまくいきません。
そもそもjavascriptの値はliquidに渡せないのでしょうか?
その場合、直前のURLから属するコレクションを取得し、そのコレクション他の商品を表示する為の代替案はありますでしょうか?
解決済! ベストソリューションを見る。
成功
ご投稿いただきありがとうございます。
Javascriptは、高度な専門知識が必要であるためShopifyサポートの対象外となっております。英語ではありますが、開発者様用の資料はご用意しておりますので、少しでもご参考になりますと幸いです。
なお、代替案としてアプリを使いこちら実装できる可能性がございます。
外部アプリは弊社開発ではなく、各アプリ開発元が運営・管理をしておりますので弊社でも機能性の詳細などを把握しておりません。まずは、各アプリのアプリストアのページにて機能説明をご確認ください。詳細な機能については実際にご利用いただくことを推奨しておりますので、1−2つほどご興味のあるアプリをご選択のうえ、無料トライアルにて仕様や動作確認をして頂ければと存じます。
実際にアプリをご利用いただく中でご質問等出てくるかと存じますが、その場合はアプリストアに記載されているお問合せ先へ貴社より直接お問い合わせいただくようお願いいたします。
Rinaflora | Shopify
- 回答は役に立ちましたか?いいね! ボタンをクリックして教えてください。
- 質問に対する答えは得られましたか? 回答に満足いただけたら、ベストソリューションとして承認
- を選択してください。 - Shopify Help Center と Shopify Blogも是非ご参照ください。
成功
@seezoo 様
初めまして。新垣です。
JavaScriptはクライアントサイドで実行され、Liquidはサーバーサイドで実行されるため、JS→Liquidへ値を渡すことはできません。
代替案としては、{{ product.collections }}でその商品が属しているコレクションを全て取得することができます。
具体的な実装は要求によるのですが、「商品の属する全コレクションを取得し、そのコレクションの他の商品を全て関連商品として表示する」には、下記のコードを参考ください。
{% for collection in product.collections %}
<h3>関連商品({{ collection.title }})</h3>
<div class="related-products">
{% for item in collection.products %}
{% unless item.id == product.id %} // 現在の商品と一致しない場合関連商品を出力
<div class="related-product">
<a href="{{ item.url }}">
<img src="{{ item.featured_image | img_url: '300x300' }}" alt="{{ item.title }}">
<p>{{ item.title }}</p>
<p>{{ item.price | money_with_currency }}</p>
</a>
</div>
{% endunless %}
{% endfor %}
</div>
{% endfor %}
表示したい属してるコレクション数や商品数を制御したい場合は、追加の制御構文が必要になります。
以上、参考になりましたら幸いです。
成功
ご投稿いただきありがとうございます。
Javascriptは、高度な専門知識が必要であるためShopifyサポートの対象外となっております。英語ではありますが、開発者様用の資料はご用意しておりますので、少しでもご参考になりますと幸いです。
なお、代替案としてアプリを使いこちら実装できる可能性がございます。
外部アプリは弊社開発ではなく、各アプリ開発元が運営・管理をしておりますので弊社でも機能性の詳細などを把握しておりません。まずは、各アプリのアプリストアのページにて機能説明をご確認ください。詳細な機能については実際にご利用いただくことを推奨しておりますので、1−2つほどご興味のあるアプリをご選択のうえ、無料トライアルにて仕様や動作確認をして頂ければと存じます。
実際にアプリをご利用いただく中でご質問等出てくるかと存じますが、その場合はアプリストアに記載されているお問合せ先へ貴社より直接お問い合わせいただくようお願いいたします。
Rinaflora | Shopify
- 回答は役に立ちましたか?いいね! ボタンをクリックして教えてください。
- 質問に対する答えは得られましたか? 回答に満足いただけたら、ベストソリューションとして承認
- を選択してください。 - Shopify Help Center と Shopify Blogも是非ご参照ください。
外部アプリのご提案、どうもありがとうございます。
一度、検討してみたいと思います。
成功
@seezoo 様
初めまして。新垣です。
JavaScriptはクライアントサイドで実行され、Liquidはサーバーサイドで実行されるため、JS→Liquidへ値を渡すことはできません。
代替案としては、{{ product.collections }}でその商品が属しているコレクションを全て取得することができます。
具体的な実装は要求によるのですが、「商品の属する全コレクションを取得し、そのコレクションの他の商品を全て関連商品として表示する」には、下記のコードを参考ください。
{% for collection in product.collections %}
<h3>関連商品({{ collection.title }})</h3>
<div class="related-products">
{% for item in collection.products %}
{% unless item.id == product.id %} // 現在の商品と一致しない場合関連商品を出力
<div class="related-product">
<a href="{{ item.url }}">
<img src="{{ item.featured_image | img_url: '300x300' }}" alt="{{ item.title }}">
<p>{{ item.title }}</p>
<p>{{ item.price | money_with_currency }}</p>
</a>
</div>
{% endunless %}
{% endfor %}
</div>
{% endfor %}
表示したい属してるコレクション数や商品数を制御したい場合は、追加の制御構文が必要になります。
以上、参考になりましたら幸いです。
新垣さま
わかりやすくご説明いただきありがとうございます。
ご提案頂いた代替案にて検討してみたいと思います。
Shopifyの請求書の支払いが失敗したという通知を受け取って驚いたことはありますか。初めての支払いでエラーが発生したり、これまで何の問題もなく支払いできていたのに突然失敗し...
By Minami_ Sep 8, 20242023年2月、Shopifyはcheckout.liquidを廃止し、Checkout Extensibilityに移行することを発表いたしました。この新しいチェックアウト...
By JasonH Aug 15, 2024「味噌の可能性を、とき放つ」をコンセプトに、豊かな自然に恵まれた信州で味噌の製造販売を行う新田醸造。江戸末期に創業した老舗のみそ屋さんですが、2024年春、顧客層や販売範囲の...
By Minami_ Jul 30, 2024