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?
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:
Create a new customer limit rule
Set the maximum quantity to 1 (or whatever number you want)
Keep the tracking period set to lifetime (so it never resets)
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.
@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.