Limit Free Samples Per Customer Automatically

We offer free samples to customers to try our product before they make a larger purchase. We require the customer to pay S&H fees that are setup on Shopify. We also want to limit the amount of times a customer can redeem the free sample as some customers are purchasing multiple times and our fulfillment doesn’t catch it. Here’s some qualifiers:

  • I want it to be an automatic discount (no codes needed)
  • I want it to be limited to 1 per customer (not just one order, but all time)
  • I want to be able to charge custom S&H

How do we go about this? I haven’t found an app that will work. I’d be willing to pay for this help.

Hi @CandiGraves13

This is Ellie from** BOGOS app**! BOGOS can help you achieve exactly what you want. To be more specific, you can:

  1. Set an automatic gift offer: The gift can be automatically added to cart when they make the larger purchase. Customers no need to use any code to redeem it.

  2. Limit the offer to 1 per customers. See my screenshot below.

  1. Charge custom S&H: This is also possible, since you can customize the shippings rates for the gift products.

Install BOGOS to try on your end! (4.9 overall rating, 2400+ reviews)

Hi @CandiGraves13,

You’ve basically nailed the core problem already: Shopify’s idea of “one per customer” is really “one per email/customer record”, which breaks down quickly when people are motivated enough to use multiple addresses or accounts.

What you’re trying to do has three pieces:

  1. Automatic redemption (no code)
  2. Custom S&H for the sample
  3. A true “one-time only, for all time” rule per real customer

(1) and (3) are where Shopify’s native tools and most apps start to show their limits.


A more realistic way to think about this is:

  • Let something like BOGOS handle the “how do we add the free sample / discount automatically?” part
  • Add a checkout-validation layer whose only job is “should this household be allowed to get another free sample?”

That validation layer can:

  • Watch for the sample SKU in the cart
  • Look up prior orders using multiple identifiers, for example:
    • same normalized shipping address (street + ZIP/postal code)
    • OR same phone number
    • OR same full name + postal code
    • OR the same Shopify customer account
  • If it finds a match, block checkout and show a clear message like:

“It looks like you’ve already redeemed a free sample.
This offer is limited to one per customer, but you can still order the full size with your chosen shipping here: [link].”

Your custom S&H settings stay exactly as they are in Shopify – the validation doesn’t touch shipping pricing, it just decides whether a second free sample checkout should be allowed at all.


This approach isn’t a perfect anti-abuse system (nothing is, short of hard KYC), but in practice it’s a big step up from “one per email” and is usually enough to stop the majority of repeat sample takers without punishing legitimate customers.

Full disclosure: I work on a Shopify app that does exactly this kind of “one-time per person/household” rule for specific SKUs using Shopify’s Cart and Checkout Validation. You’d mark your free sample product as one-time-only, keep your automatic discount and custom S&H as-is, and the app focuses purely on blocking any repeat sample checkouts while still letting those customers buy your paid products normally.

If you share which Shopify plan you’re on and how strict you want the rule to be (hard block vs just tagging), folks here can probably suggest a concrete setup that fits your stack.

I noticed your question about limiting free sample redemptions. In DC Order Limits, Customer Purchase Limits track purchases across all orders, so the same customer cannot redeem the same sample multiple times.

Setup:

  1. Create a Customer Purchase Limit rule

  2. Set max quantity to 1

  3. Apply it to your sample product

  4. Save and activate

After that, checkout is blocked for customers who have already purchased the sample. This works regardless of price, including $0 samples. For reliable tracking, require customer login by disabling guest checkout.