Liquid、JavaScriptなどに関する質問
どなたかご教示ください。
使用テーマ:Dawn 14.0.0
参考にした質問
上記質問の方と同様に、特定の商品にだけ個数制限を設けたいと思っています。
ここに記載のあった回答を参考に、各liquidファイルに以下の内容を追記しております。
main-product.liquid 「class="quantity__input"」部分
260行目に以下を挿入し保存
max="{% if product.metafields.custom.order_limit.value %}{{ product.metafields.custom.order_limit.value }}{% else %}99{% endif %}"
cart-drawer.liquid(スニペットの方)「class="quantity__input"」部分
303行目に以下を挿入し保存(302行目は元々あったmax以下をコメントアウトしたものです)
max="{% if item.product.metafields.custom.order_limit.value %}{{ item.product.metafields.custom.order_limit.value }}{% else %}99{% endif %}"
main-cart-items.liquid「class="quantity__input"」部分
264行目(261~263行目は元からあった部分をコメントアウトしたもの)
max="{% if item.product.metafields.custom.order_limit.value %}{{ item.product.metafields.custom.order_limit.value }}{% else %}99{% endif %}"
カスタムしたメタフィールドの設定は以下の通りです。
特に保存の際にエラーなどは出ず、商品管理画面で購入数制限のメタフィールドの設定はできるのですが
設定した個数以上をカートにいれることも、チェックアウト画面まで進むことも可能です。
そのため、個数制限がうまく機能していないと判断しました。
他に編集するべき項目があればご教示ください。
よろしくお願いいたします。
あくまでコードを見ただけで推測した回答になりますので、あらかじめご了承ください。
テーマのアップデートにより、参考にした回答からコードが変わっているように見えます。cart-drawer.liquidに以下の条件が追加されています。
{% if item.variant.quantity_rule.max != null %}
つまり、item.variant.quantity_rule.max に有効な値があるときにのみ個数制限が適用される、という設定になっています。
解決策としては、
・今回追加したコードの上下にあるコードを削除する(ifとendifの行)
・item.variant.quantity_rule.max != nullをitem.variant.quantity_rule.max == nullにしてしまう
などがあると思いますが、他の機能に影響する可能性もあるので、もし試す場合は自己責任で慎重に行ってください。
ご提案ありがとうございます。
追加したコードの上にあった!=となっているif文を削除し、==に変更をしてみましたが、個数制限が実装されませんでした。
同様のコードが存在したmain-cart-items.liquidの方も変更をしております。
そもそも変更の内容に誤りがありますでしょうか?
お忙しいところ恐縮ですがご教示いただけますと幸いです。
サポートの選択肢が増えていく中、最適となる選択の判断が難しくなっているかと存じます。今回は問題の解決に最適となるサポートの選択方法を、紹介させて頂きます。 選択肢のご紹介...
By Mirai Oct 6, 20242023年初頭、Shopifyペイメントアカウント、及びShopifyアカウント全体のセキュリティを強化する為の変更が適用されました。ユーザーのアカウントセキュリティを強化す...
By Mirai Sep 29, 2024概要: 年末/年明けは、消費者が最もショッピングを行う時期の一つです。特に、ブラックフライデー・サイバーマンデー(BFCM)は、世界中で注目される大規模なセールイベントであ...
By JapanGuru Sep 25, 2024