購入上限数をコーディングで設定する方法

Topic summary

商品ごとに購入上限数を設定する方法についての質問です。質問者はDawnテーマを使用しており、商品メタフィールドでの設定を試みましたが、カートの数量セレクターで「3」に達してもキーが動作しないという問題が発生しています。

解決方法(Dawn 11.0.0の場合):

  • main-product.liquid内のquantity_selector部分にある<input>タグを編集
  • デフォルトではproduct.selected_or_first_available_variant.quantity_rule.maxで最大注文数を出力
  • メタフィールドを使用して任意の数値を設定するには、Liquidコードで条件分岐を追加
  • メタフィールドに整数が入力されていれば指定上限数が出力され、未入力の場合はquantity_rule.maxの値が出力される

注意点:

  • 商品メタフィールドのネームスペースとキーは設定に合わせて変更が必要
  • カートページの数量セレクターを編集する場合はアイテムライン構造に注意
Summarized with AI on November 15. AI used: claude-sonnet-4-5-20250929.

件名のに記載した商品ごとで購入の上限数を設定する方法を知りたいです。

商品メタフィールドの設定などを試みたのですが、上手く反映されず困っています。

具体的には以下のような挙動をイメージしております。

・商品ごと(又は全ての商品)に購入個数の制限をかける。

・カートの数量セレクターの数値が「3」に達したら+キーが動かない

利用しているテーマは[Dawn]です。

初心者のため、コードの編集方法、編集場所などご教示いただけますと幸いです。

Dawn(11.0.0)の場合は「main-product.liquid」内にある数量セレクターを出力する「

quantity_selector」部分のタグ内に以下のコードがあります。

{% if product.selected_or_first_available_variant.quantity_rule.max != null %}
 data-max="{{ product.selected_or_first_available_variant.quantity_rule.max }}"
 max="{{ product.selected_or_first_available_variant.quantity_rule.max }}"
{% endif %}

ここで最大注文数を出力しているので、メタフィールドを使って任意の数値にするには以下の様に編集します。

{%- liquid
assign quantity_meta_max = product.metafields.xxx.xxxx
if quantity_meta_max
 assign quantity_max = quantity_meta_max.value
else 
 assign quantity_max = product.selected_or_first_available_variant.quantity_rule.max
endif
-%}
{% if product.selected_or_first_available_variant.quantity_rule.max != null or quantity_meta_max %}
 data-max="{{ quantity_max }}"
 max="{{ quantity_max }}"
{% endif %}

商品メタフィールドのネームスペースとキーは設定に合わせて変更してください。

メタフィールドに整数が入力されていれば指定した上限数が出力され、未入力の場合はquantity_rule.maxの値が出力されます。

また、カートページの数量セレクターも編集する場合はラインアイテムの構造にご注意ください。