アプリを使わずに購入個数制限をかけたい

ほとんどの商品が受注生産品のため、商品ごと(又は全ての商品)に購入個数の制限をかけたいです。

例)カートの数量セレクターの数値が「3」に達したら+キーが動かないようにする。

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

ご質問いただいている購入数の制限の件ですが、ご質問内容より商品にオプション(バリエーション)があるかどうか不明ですので、商品はオプションが無い前提で返答させていただきます。

下記設定で、商品に購入数を設定した場合は商品の購入数を優先、入力されていない場合は共通の購入数に制限することが可能となります。

オプションが存在する場合は、動かない場合もありますのでご了承ください。

設定方法

**1.**管理画面左下の設定をクリック。

**2.**カスタムデータをクリック。

**3.**商品をクリック。

**4.『**定義を追加する』ボタンをクリック。

**5.**商品のメタフィールドを設定。

タイプは『整数』を選択

※ネームスペースとキーは『custom.order_limit』としていますが、任意に変更ください。

ネームスペースとキーを変更した場合は、下記8,9の『custom.order_limit』部分を変更した名前に変更してください。

**6.**管理画面 > オンラインストア『・・・』をクリックし、『コードを編集』を選択。

**7.**左上の検索窓に『main-product.liquid』『cart-drawer.liquid』『main-cart-items.liquid』と入力しファイルを検索し、それぞれファイルを開く。

『cart-drawer.liquid』はスニペット側のファイルを開いてください。

**8.**main-product.liquid内で『min=“1”』を検索し、次の行に下記を挿入。

※『{% else %}5{% endif %}』の『5』部分が共通の購入制限数となりますので、任意の数字に変更してください。

max="{% if product.metafields.custom.order_limit.value %}{{ product.metafields.custom.order_limit.value }}{% else %}5{% endif %}"

**9.**cart-drawer.liquid、main-cart-items.liquid内で『min=“0”』を検索し、次の行に下記を挿入。

※『{% else %}5{% endif %}』の『5』部分が共通の購入制限数となりますので、前項で入力した数字と同じ数字に変更してください。

max="{% if item.product.metafields.custom.order_limit.value %}{{ item.product.metafields.custom.order_limit.value }}{% else %}5{% endif %}"

※挿入するコードは前項と微妙に異なっていますのでお気をつけください。

cart-drawer.liquid

main-cart-items.liquid

**10.**商品管理よりメタフィールドに購入数制限をする商品を選択。

ご参考まで。

(キュー小坂)

この度はお世話になります。

質問したものではないのですが、こちらを利用し購入制限をかけた者です。

貴社の通りにコードを編集し、1個しか購入できない設定にしたのですが、全商品に1個という購入制限がかかってしまいました。

こちらを一部商品に対して1個という購入制限はできますでしょうか?

よろしくお願いいたします。

@TrustKikaku

前述していた下記コードについてですが、**{% else %}5{% endif %}の部分が{% else %}1{% endif %}**となっていたりしませんでしょうか。

max="{% if product.metafields.custom.order_limit.value %}{{ product.metafields.custom.order_limit.value }}{% else %}5{% endif %}
max="{% if item.product.metafields.custom.order_limit.value %}{{ item.product.metafields.custom.order_limit.value }}{% else %}5{% endif %}"

**{% else %}1{% endif %}**となっていると場合は共通で1個の数量制限となってしましますので、お気をつけください。

また、ご質問者の方と同じテーマをお使いでしょうか?

ご使用のバージョンによりコードが異なる場合がありますでの、記載したコードではうまく動かない可能性もございます。

ご参考まで。

(キュー小坂)

教えていただけますと幸いです。

もし可能でしたら以下の購入制限のかけ方も教えていただけないでしょうか。
予約注文ページを作っていまして、一つのページで10:00~、11:00~、12:00~と購入できるようなページを作っています。

この時間はバリエーションで作っています。

おひとりさま1枠しか予約をできないようにしたいのですが、アプリなどを使わずにできますでしょうか?

使用しているテーマはDawnとなります。
よろしくお願いいたします。

@mel1212

ご質問いただいているバリエーションを考慮した購入制限となりますと、以下のような制御が必要かと思われます。
1.商品を1つしか購入できないようにする。
2.商品詳細ページのliquid内で「カートに追加する」ボタンを押した際、カートにある商品を見て、同商品がカートに含まれていたら購入できないように制御。

コードの修正箇所につきましては、修正範囲が多いですのでコードをお伝えすることができかねます。
有償となってしまいますが、ご相談いただけますと修正対応を行うことも可能です。

明確な回答とならず恐縮です。

(キュー小坂)

ご返信ありがとうございます!
そうなのですね、バリエーションがあるとコードが複雑になってしまうのですね。

少しやり方を考えてみたいと思います。
ご相談させていただくことがあるかもしれませんのでその際はどうぞよろしくお願いいたします。