# 購入数の制限をアプリではなくて開発でかけたいです。

**URL:** <https://community.shopify.com/t/topic/128026>\
**Category:** 技術的なQ＆A\
**Created:** [June 14, 2022, 5:22am UTC](https://community.shopify.com/t/topic/128026 "2022-06-14T05:22:18Z")\
**Posts on this page:** 4\
**Page:** 1

## AI-generated summary

課題: 新商品で「1アイテム・1色につき1つまで」をアプリではなく開発で実現。既存アプリが高負荷（500以上の注文）で遅延し、決済不能が発生。

提案された実装:
- Liquid（Shopifyのテンプレート言語）で数量セレクタを非表示にし、基本1点のみカート投入。
- Cart API（ShopifyのAJAXカートAPI）でカート内容を取得し、同一商品があれば「カートに追加」を阻止。
- 会員限定ならcustomer object（Liquidの顧客情報）から注文状況参照で制御の可能性。ただしサーバーキャッシュの影響懸念。
- 重複購入は事前告知のうえ、出荷前にストア側がキャンセル運用。

実施結果（最新）:
- ボタン押下毎にページリロードしてCart APIを都度読み込むUXに変更。8分で約600件の集中注文でも制限超過なし。
- 複数回の別注文による重複購入は、オペレーターが手動キャンセルで対応。

今後の改善案:
- 会員限定での制御アプローチを検討。
- Shopify Premium/PlusのShopify Flow（自動化ツール）で重複キャンセルの自動化により手作業削減。

ステータス: 高負荷下でも開発側の制限は有効。別注文の重複防止は未解決で、さらなる自動化の検討が継続。

<div class="post-metadata">

**Author:** ![chisayoshi](https://avatars.discourse-cdn.com/v4/letter/c/f4b2a3/32.png) [@chisayoshi](https://community.shopify.com/u/chisayoshi)\
**Post date:** [June 14, 2022, 5:22am UTC](https://community.shopify.com/t/topic/128026/1 "2022-06-14T05:22:18Z")

</div>

新商品が１アイテム３色あります。

「1アイテム1色につき1つまで」という制限をかけたいです。

[Min&Max Limits by Limitsify](https://onlinestore-isehangroup.myshopify.com/admin/apps/limitsify-checkout-limits-done-right)というアプリで制限をかけていたところ、

大量のアクセスと５００以上の注文で、このアプリの処理が遅れ、お客様が決済に進めなくなりました。

よって、個数制限のアプリをこのまま使用していくのは厳しいかと思っております。

開発側の技術で何かできないでしょうか。

ヒントをお持ちの方がいらっしゃいましたらお教えいただけますと助かります。

---

<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:** [June 14, 2022, 11:41am UTC](https://community.shopify.com/t/topic/128026/2 "2022-06-14T11:41:57Z")

</div>

もっとスマートなアイデアがありそうですので、私の回答は参考に留めていただくのが良いかもしれません。

下記ではいかがでしょうか？

1. まず、商品詳細ページの数量セレクタを隠す (Liquidテンプレートで条件分岐)ことで、基本1つしかカートに投入できなくします。
2. 次に、カートに既に同商品が投入されていれば、「カートに追加する」をできなくします。「カートに追加する」をクリック時に、 [Cart API](https://shopify.dev/api/ajax/reference/cart) でカートの内容を取得し、同商品が確認された場合、「カートに追加する」処理を止めます。

しかし、この方法ですと、「カートに入れて → 購入」をいちいち繰り返せば、何個も購入できてしまいます。

会員限定商品であれば、 [customer object](https://shopify.dev/api/liquid/objects/customer) からorder情報を取得して、制御できるかもしれません。(この場合、ShopifyのServerキャッシュが裏目に出るかもしれませんが、それは試してみないとなんとも言えません)

手動でのオペレーションが増えてしまいますが、

商品詳細ページに、「2個以上の購入が確認した場合、その注文をキャンセルさせていただく」旨、記載し、注文を発送する前に、同一ユーザーが複数購入している場合は、ストア側でその注文をキャンセルする、というやり方で切り抜けられるかもしれません。

ご参考まで。

(キュー田辺)

---

<div class="post-metadata">

**Author:** ![chisayoshi](https://avatars.discourse-cdn.com/v4/letter/c/f4b2a3/32.png) [@chisayoshi](https://community.shopify.com/u/chisayoshi)\
**Post date:** [June 23, 2022, 12:38am UTC](https://community.shopify.com/t/topic/128026/3 "2022-06-23T00:38:04Z")

</div>

キュー田辺様

この度は、貴重なアドバイスをいただき、ありがとうございます！

ご返信が遅くなり申し訳ございません。結果も含めてご報告いたします。

エンジニアにアドバイスいただきました内容を伝え、実装してみました。

UX部分も見直し、ボタンを押すたびにリロードが繰り返され、 [Cart API](https://shopify.dev/api/ajax/reference/cart) を読み込むようにいたしました。

結果、８分で600近くの集中的な注文にも耐えることができまして、制限以上の

個数をご購入するお客様はいらっしゃいませんでした。

（複数回、購入を繰り替えすお客様はいらしゃったので、こちらはオペレーターのほうでキャンセル処理対応といたしました）

今回、こちらの内容で行えたことで、とても助かりました。

先日まで使っていたアプリでしたら、絶対落ちて、クレームの嵐だったと思います。

今後は、会員限定に対するアプローチの方向も探ってみたいと思います。

また、何かございましたらご相談させてください。

直接、御社にご連絡させていただきたいです。

どうぞよろしくお願いいたします。

chisayoshi

---

<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:** [June 23, 2022, 1:28am UTC](https://community.shopify.com/t/topic/128026/4 "2022-06-23T01:28:23Z")

</div>

ご報告ありがとうございます。

お役に立てたようで良かったです。

今考えますと、

重複購入時のキャンセル処理については、

Shopify PremiumプランとShopify Plusで使用できるShopify Flowを利用することで、

手動作業を減らせたかもしれません。

> また、何かございましたらご相談させてください。

> 直接、御社にご連絡させていただきたいです。

ありがとうございます。

もし、直接ご相談いただく場合は、こちらからお願いいたします。

[https://techlab.q-co.jp/contact/](https://techlab.q-co.jp/contact/)

(キュー田辺)
