BBonafanBETA

Anti-scalping methods for ecommerce, compared

Published:

"Anti-scalping" covers measures that work in completely different situations. That is why copying what worked for another store often does nothing for yours. This article compares four common measures by when they work, what they cost and what they break.

What scalping actually requires

Reselling only works when all three of these hold. Every countermeasure is an attempt to break one of them.

  1. A gap between retail and resale price (there is margin)
  2. Securing stock favours resellers over buyers (speed, automation, multiple accounts)
  3. Somewhere to resell it

You cannot touch the third. You can narrow the first by raising prices, but that charges your actual fans for the problem. The one you can genuinely act on is the second, and every measure below works there.

The four measures

MeasureWorks whenMain side effectEffort
Purchase limitsOne person buys many unitsMultiple accounts and addresses walk straight throughLow (app or theme change)
Members-only / early accessSupply roughly meets demandIf supply is short, it is first-come inside the gateMedium (needs a membership base)
Raffle saleSupply falls short of demandAdds operations: winner contact, deadlines, re-drawsMedium (an app automates most of it)
Fraud detection / blocklistsThe same people buy repeatedlyFalse positives cost real customers; evasion gets learnedHigh (the criteria need ongoing work)

Purchase limits

A one-per-customer limit is the cheapest measure and the first one to add. On its own it is easily evaded, so apply it on several axes at once:

Address-level limits work, but they also catch households. Flag those for a human to review rather than cancelling automatically.

Members-only and early access

Only members can buy, or members buy first. Loyalty and VIP apps already deliver this, and many stores run it.

The thing to notice is that this is a gate — it decides who may race. It is not an allocation mechanism for when there is not enough to go round. With 100 units and 1,000 members, you get a first-come race inside the membership, and the 900 who miss out are just as unhappy. Sometimes more so, because signing up implied they would get one.

Member gates fit when supply is adequate but you do not want the product open to everyone. When supply is clearly short of demand, a raffle is the more honest answer.

Raffle sales

Entries are collected, winners are drawn, and only winners can buy. Speed stops being an advantage, so bots aimed at grabbing stock lose their purpose.

A raffle still has to stop one person entering from many accounts, or they simply buy probability. Always pair it with identity matching: store account, normalised email address, shipping address.

Weighting the odds by purchase history goes further: it makes the multi-account strategy itself inefficient, because a fresh account carries no history. That is not a blocking measure but a favouring one — and it carries no risk of losing a genuine customer to a false positive.

Fraud detection and blocklists

Excluding accounts you judge to be resellers, based on order history or entry patterns. Effective, and the hardest to operate.

Exclude at draw time, not at entry time. If an entry is visibly rejected, people experiment until they find what triggered it. Accept the entry and leave it out of the draw, and no such signal comes back.

How to combine them

Nothing here is sufficient alone. Build in this order, based on how supply compares to demand:

  1. Add purchase limits first — cheap, and never wasted
  2. If supply is adequate, use members-only or early access to shape who buys
  3. If supply is short, switch to a raffle and stop selling first-come
  4. Pair the raffle with identity matching and history-weighted odds
  5. Only for confirmed abuse, add accounts to a draw-time exclusion list

Measuring whether it worked

Anti-scalping work easily ends at "we did something". Compare these before and after. If nothing moves, one of the three conditions is still intact.

MetricWhat to look for
Share of first-time buyersWhether the same names still take the stock
Distribution of units per customerWhether a handful of accounts dominate
Resale listings and pricesWhether listings right after the drop fall
Buyer return and repeat rateAn indirect signal that real fans got one
Support volumeWhether "I could not buy it" messages drop

Bonafan is a Shopify app that combines raffle sales with history-weighted odds — an allocation mechanism for getting limited stock to real fans at retail, rather than a filter aimed at resellers.

See the install steps

Frequently asked questions

Are purchase limits enough on their own?
They are cheap and they help, but multiple accounts and multiple shipping addresses walk straight through them. Apply limits per account, per address and per payment method together — and if stock still disappears in minutes, the problem is first-come selling itself.
Will a members-only sale stop reselling?
It helps when supply roughly meets demand. When it does not, you get a first-come race inside the membership and the people who miss out are still unhappy — sometimes more so, because joining implied they would get one.
Are reseller blocklists worth running?
For confirmed cases, yes. But false positives are very expensive (losing one genuine customer costs the whole relationship) and you cannot publish the criteria, which makes them hard to operate. Apply exclusions at draw time rather than at entry time so evasion is not learned.
Does a raffle remove the need for bot protection?
It removes the point of bots that race for stock, but not bots that mass-produce entries. Keep CAPTCHA-style protection on the entry form, and identity matching on the draw.

← Back to all guides