How to Limit a Customer to Purchasing a Product Only Once (Lifetime Limit)?

Hi everyone,

I’m looking for a way to prevent any single customer from purchasing a specific product more than once—ever. I want to ensure that once a customer buys a certain product (in my case, a certain tee shirt design), they are never able to purchase it again in future orders.

I’ve seen apps that allow per-order limits, but I need a true lifetime purchase limit per customer for this product. Ideally, the solution should:

  • Work across multiple orders (not just limit purchases within a single transaction).
  • Identify customers based on email, phone number, or account if they have one.
  • Prevent checkout if they’ve already bought the restricted product before.
  • Work for both guest checkouts and customer accounts if possible.

Does anyone know of an app that can handle this, or is there a way to achieve it through Shopify Scripts, Flow (I’m not on Plus), or another workaround?

Thanks in advance for any help!

Hi @thankgodusa ,

Shopify doesn’t have a built-in way to enforce lifetime purchase limits, but here are some options:

Shopify Flow (Advanced Plan & Above) – Tag customers after purchase and block future orders, but only works for logged-in users.

Third-Party Apps – Apps like Mechanic or CustomerHub can track purchase history and restrict repeat orders.

Hi @thankgodusa,

I saw your question about setting lifetime purchase limits. With DC Order Limits, you can track customer purchases over their entire order history, so lifetime limits work well.

Basically, you’d do this:

  1. Create a new customer limit rule

  2. Set the maximum quantity to 1 (or whatever number you want)

  3. Keep the tracking period set to lifetime (so it never resets)

  4. Choose the specific product you want to limit

For guest checkout, you get a couple of choices: either let guests buy without any restrictions, or require everyone to log in so the limit applies to all customers.

Let me know if you run into any questions while setting it up — happy to help!

There is no built-in Shopify feature that enforces a true lifetime “only once ever” purchase per customer across all orders. But you can use third-party apps that track customer history and block repeat purchases, like Limit Once which lets you mark specific products as “one per customer” and prevents a second purchase at checkout.

Other order limit apps (e.g., Pareto or DC Order Limits) may offer lifetime purchase caps or can be combined with customer-tagging automations to block repeat purchases, although truly enforcing it for guest checkout users without accounts is hard without custom solutions.

Shopify Flow or Scripts won’t solve this on non-Plus plans alone because Shopify doesn’t natively check past orders before checkout.

Best practical option: use a dedicated app like Limit Once.

Yes, this is possible, but the guest-checkout part is where most lifetime-limit solutions fall short.

Shopify’s native quantity limit only applies to the current cart. Flow can react after an order has been created, while account-based rules can miss guests or customers using a different email address.

Full disclosure: I built OfferGuard to handle this exact use case. You can select the T-shirt, set the lifetime purchase limit to one, and enforce it across multiple orders for both guest and logged-in customers. It compares the checkout against previous buyers using signals such as email, phone and normalized address, with IP and device detection available for stronger matching.

If a returning buyer attempts to purchase the protected product again, the rule can stop them during checkout while leaving the rest of the store available.

You can try the basic setup on the free plan: OfferGuard Loyalty & Referrals - Offer protection with loyalty and referrals built in. | Shopify App Store

If you’re still looking for a solution, feel free to message me and I’ll help you configure the rule.

@thankgodusa you can probably achieve this with Shopify Flow by tagging customers when they place orders and then blocking product pages if a specific tag is present.

I am curious what’s the use case for this setup? I’ve never encountered this kind of requirement before.