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

**URL:** <https://community.shopify.com/t/topic/203093>\
**Category:** 技術的なQ＆A\
**Created:** [March 27, 2023, 7:33am UTC](https://community.shopify.com/t/topic/203093 "2023-03-27T07:33:11Z")\
**Posts on this page:** 7\
**Page:** 1

## AI-generated summary

受注生産品を扱うストアで、アプリを使わずに商品の購入個数制限を実装する方法についての質問と回答。

**提案された解決策:**
- Shopifyのカスタムメタフィールド機能を使用
- 商品ごとに購入数を設定可能、未設定の場合は共通制限数を適用
- `main-product.liquid`、`cart-drawer.liquid`、`main-cart-items.liquid`にコードを追加
- メタフィールドで整数型の`custom.order_limit`を定義し、各ファイルに`max`属性を挿入

**注意点:**
- バリエーション(オプション)がある商品では動作しない可能性あり
- `{% else %}5{% endif %}`の数値が全商品共通の制限数となるため、誤って`1`に設定すると全商品が1個制限になる

**追加の質問:**
- バリエーションを使った予約システム(時間帯選択)で、1人1枠のみ予約可能にする方法について質問があったが、実装には複雑なコード修正が必要で、有償対応が提案された

議論は継続中で、バリエーション対応については未解決のまま。

<div class="post-metadata">

**Author:** ![a-corns](https://avatars.discourse-cdn.com/v4/letter/a/bc79bd/32.png) [@a-corns](https://community.shopify.com/u/a-corns)\
**Post date:** [March 27, 2023, 7:33am UTC](https://community.shopify.com/t/topic/203093/1 "2023-03-27T07:33:11Z")

</div>

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

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

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

---

<div class="post-metadata">

**Author:** ![Qcoltd](https://yyz1.discourse-cdn.com/shopifyforum/user_avatar/community.shopify.com/qcoltd/32/900_2.png) [@Qcoltd](https://community.shopify.com/u/Qcoltd)\
**Post date:** [April 5, 2023, 11:02am UTC](https://community.shopify.com/t/topic/203093/2 "2023-04-05T11:02:43Z")

</div>

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

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

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

**設定方法**

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

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

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

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

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

タイプは『整数』を選択

 ![Qcoltd_0-1680692489814.png](https://canada1.discourse-cdn.com/shopifyforum/original/3X/a/1/a1a186fd0bbe4e8a6fb69c407d03305df5e6af8b.png)

※ネームスペースとキーは『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』部分が共通の購入制限数となりますので、任意の数字に変更してください。

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

```

 ![Qcoltd_1-1680692490033.png](https://canada1.discourse-cdn.com/shopifyforum/original/3X/6/b/6b32250404c1920daf187f39b9a1ea5c9a83233c.png)

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

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

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

```

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

cart-drawer.liquid

 ![Qcoltd_2-1680692490089.png](https://canada1.discourse-cdn.com/shopifyforum/original/3X/b/7/b7206c6aab7954695badf385ed4966985cf6307e.png)

main-cart-items.liquid

 ![Qcoltd_3-1680692490318.png](https://canada1.discourse-cdn.com/shopifyforum/original/3X/7/3/7396233b09bd966bc7d8aefa947af2ad4fd3dced.png)

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

 ![Qcoltd_4-1680692489380.png](https://canada1.discourse-cdn.com/shopifyforum/original/4X/a/d/3/ad33d2e8feaf39002a1218fba7df2a9db5a082a3.png)

ご参考まで。

(キュー小坂)

---

<div class="post-metadata">

**Author:** ![TrustKikaku](https://avatars.discourse-cdn.com/v4/letter/t/f475e1/32.png) [@TrustKikaku](https://community.shopify.com/u/TrustKikaku)\
**Post date:** [July 24, 2024, 2:46am UTC](https://community.shopify.com/t/topic/203093/3 "2024-07-24T02:46:08Z")

</div>

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

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

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

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

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

---

<div class="post-metadata">

**Author:** ![Qcoltd](https://yyz1.discourse-cdn.com/shopifyforum/user_avatar/community.shopify.com/qcoltd/32/900_2.png) [@Qcoltd](https://community.shopify.com/u/Qcoltd)\
**Post date:** [July 24, 2024, 9:26am UTC](https://community.shopify.com/t/topic/203093/4 "2024-07-24T09:26:44Z")

</div>

@TrustKikaku

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

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

```

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

```

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

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

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

ご参考まで。

(キュー小坂)

---

<div class="post-metadata">

**Author:** ![mel1212](https://avatars.discourse-cdn.com/v4/letter/m/2bfe46/32.png) [@mel1212](https://community.shopify.com/u/mel1212)\
**Post date:** [December 25, 2024, 3:41am UTC](https://community.shopify.com/t/topic/203093/5 "2024-12-25T03:41:59Z")

</div>

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

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

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

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

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

 ![999999.jpg](https://canada1.discourse-cdn.com/shopifyforum/original/3X/7/9/790063f09300cd942e9ea7915e74dba1924adc89.jpeg)

---

<div class="post-metadata">

**Author:** ![Qcoltd](https://yyz1.discourse-cdn.com/shopifyforum/user_avatar/community.shopify.com/qcoltd/32/900_2.png) [@Qcoltd](https://community.shopify.com/u/Qcoltd)\
**Post date:** [December 25, 2024, 8:58am UTC](https://community.shopify.com/t/topic/203093/6 "2024-12-25T08:58:04Z")

</div>

@mel1212 様

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

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

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

（キュー小坂）

---

<div class="post-metadata">

**Author:** ![mel1212](https://avatars.discourse-cdn.com/v4/letter/m/2bfe46/32.png) [@mel1212](https://community.shopify.com/u/mel1212)\
**Post date:** [December 26, 2024, 12:38am UTC](https://community.shopify.com/t/topic/203093/7 "2024-12-26T00:38:45Z")

</div>

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

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