特定の商品を1人1回のみ購入できる制限を付けるか、商品にのみ使用できる、選んだオプションによって割引額が変わるクーポンを作成したい

とある商品を、1人1回しか購入できないようにするか、もしくはその商品にも1度のみ使用できる、注文個数によって割引額が変わるクーポンを発行するか、どちらかを実現させたいのですが、有料アプリを入れずに実現させることは可能でしょうか。

つまり特定の方のみ割引価格で購入できるが、その割引価格での購入は1度きりにしたい、ということです。

前者は、限定ページを作る事自体は既にできますが、1顧客につき1回しか購入できないという仕様の作り方が分かりません。(1顧客というのは会員・非会員問わずです)

後者は、限定ページを作らず商品ページは共通で、クーポンコードを知っている人のみ割引が適用できれば、同じようなことが出来そうだと思ったのですが、
割引額が少し複雑で、オプション項目でAを選んだら300円引き、Bを選んだら500円引き、Cを選んだら800円引き、Dを選んだら1000円引きが適用されるクーポン、という感じにしたいんです。

おそらく一番楽そうなのは前者の方なのですが、実現可能かどうかご教授いただけますと幸いです。
よろしくお願いいたします。

Hi @sed0481

We can use customer tags to handle this without relying on a paid app. We can identify eligible customers using a specific tag and apply the special pricing/discount only to those customers. After the customer completes the purchase, we can update their tag so the offer cannot be used again.

For the different discounts based on the selected option (A = $300, B = $500, C = $800, D = $1,000), we can also handle this with custom logic.

The main limitation is guest customers, because Shopify cannot reliably identify the same guest customer across multiple orders. If the “one-time purchase” rule needs to work reliably, I would recommend requiring customers to log in or otherwise use a customer account.

Best regards,
Devcoder :laptop:

Turn the options into variants and price them so one percentage gives your amounts

  • A discount code only carries one value, so it cannot hand out 300 / 500 / 800 / 1000 by option on its own.
  • So, set the variant prices so a single percentage lands on those numbers. Price A 3,000, B 5,000, C 8,000, D 10,000. Then a 10% code takes off exactly 300 / 500 / 800 / 1000.

Create one discount code

  • Discounts, then Create discount, then Amount off products.
  • Discount value: Percentage, 10%. Applies to: Specific products, and pick this product.

Make it usable only once

  • Under Maximum discount uses, tick Limit to one use per customer.

  • This counts logged in customers only. A guest can reuse it. If “once” must be strict, require login under Settings, then Customer accounts.

If your four amounts are not proportional, so no single percentage can hit them, the only no app ways to vary a fixed amount by option are a custom Shopify Function (free, but it needs code) or splitting the options into separate products with one code each.

Block the product from being bought more than once ever:

  • There is no built in “buy only once” setting.
  • Require customer accounts.
  • Shopify Flow: Order created, then if the product is this one, add a customer tag like bought-x.
  • In your Rise theme, add a little Liquid to the product template that hides the buy button when customer.tags contains ‘bought-x’.
  • Guests still cannot be blocked.

Some apps: Order Limits, MinMaxify or tiered discount apps

Regards,
Ploqo

こんにちは、

Ploqo さんがネイティブのShopify機能を使った方法をしっかり解説してくれていますね。あなたのケースに対する制限事項をいくつか補足させてください:

  • Shopifyの「1顧客あたりの使用回数を制限」は、お客様がログインしていないと割引コードを使用できません - ゲストはそもそも適用できません
  • パーセンテージのトリックは、計算が合うようにバリアント価格を調整する必要があります(すでに価格が決まっている場合、現実的ではないことも)
  • 非会員の重複購入をブロックする機能は標準では存在せず、Shopify Flow + Liquidの回避策でもゲストはカバーできません

会員・非会員を問わず制限をかけたい、かつバリアントごとに異なる割引額を設定したい場合 — ネイティブのShopify機能だけでスムーズに実現するのはかなり難しいです。

もう一つの方法として、以下のような機能をサポートする割引アプリを使うアプローチがあります:

  1. Product Discountの「1顧客あたりの使用回数を制限」設定 - ログイン済みのお客様はアカウントで確認し、ゲストのお客様はチェックアウト時にメールアドレスを確認して、そのメールが既に使用済みの場合は割引を自動的に解除します
  2. 特定リンクアドレス条件 - 特定のリンクからアクセスしたお客様のみが割引価格を見ることができます
  3. 固定額割引 - 商品価格を調整せずに、バリアントごとに¥300、¥500、¥800、¥1000を直接設定できます

一点ご注意ですが、ゲストのお客様は別のメールアドレスを使えば再度割引を利用できるため、100%厳密ではありません。最も安全な方法はやはりログインを必須にすることです。ただし、メールチェックはネイティブのShopifyと比べて追加の保護レイヤーになります。

これらの機能は有料アプリが必要ですが、回避策なしでスムーズに実装したい場合は検討する価値があります。詳しい情報やガイダンスが必要でしたら、お気軽にどうぞ。

お役に立てれば幸いです!:blush:

Hi @sed0481 :raising_hands:

ご相談の内容であれば、いくつかの方法を組み合わせて実現できると思います。

特にA〜Dのように、お客様が選択したオプションによって割引額を変えたい場合は、まず商品ページ側でそれぞれのオプションを管理する方法が考えられます。

例えば Easify Custom Product Options を使えば、A / B / C / D のようなカスタムオプションを商品ページに追加して、それぞれに異なる料金を設定することができます。オプション選択によって商品の最終価格を変えたいケースにも使いやすいです。

ただし、「特定のお客様がその割引価格を1回だけ利用できる」という部分は少し別の話になります。特に会員・非会員の両方を対象にして、同じ人が再度アクセスした場合にも確実に購入を制限したいのであれば、Shopify側で購入履歴や顧客情報を確認する仕組みが必要になる可能性があります。

そのため、個人的には「限定ページを作る」ことと「1人1回だけ購入できる」ことを分けて考えるのがおすすめです。限定ページはアクセスできる人を絞るためのものですが、それだけでは同じ人が再度購入することまでは防げません。

また、クーポンコード方式にする場合も、Aなら300円、Bなら500円……というように選択したオプションによってShopifyの通常の割引コードの割引額を自動的に変更する部分は、標準機能だけでは少し複雑です。

Easifyでオプションと追加料金・価格調整の部分を作り、1回限りの利用制限についてはShopify側の顧客・注文管理や必要に応じてカスタム処理で分けて考えると、より現実的な構成になると思います。

特に「非会員も対象」「同じ割引価格での購入は1回のみ」という条件が重要なので、ここだけは実際の購入フローを確認してから方法を決めるのが安全です。:heart:

Hi @sed0481 Welcome To Shopify Community So The Both feasible natively without an app. For one-purchase-per-customer, use a discount code (not automatic discount) with “Limit to one use per customer” checked, works via email matching, not airtight but covers most customers. For the variable discount by option, native codes only apply one flat amount each, so you’d create four separate codes (one per variant A/B/C/D), each with its own amount and “one use per customer” checked, more codes to manage but fully native. Hope this helps, and if it does, don’t forget to like and mark it as the solution. Thank you!