OnceOnly

Questions and answers

Everything merchants ask about discount codes being used more than once. In plain language, no jargon. The first answers explain the problem without mentioning OnceOnly.

Getting started

What does OnceOnly do?

Many shops give a discount on the first order. For example 10 % for new customers. Some customers use that discount more than once. They simply order again with a new email address. To Shopify they are a new customer then. Even if the name and address stay the same. OnceOnly notices this and only lets the discount through the first time.

Shopify has “one use per customer” – isn’t that enough?

That setting exists and it does work. But it only looks at one thing: the email address. If someone uses a new email address, Shopify sees a new customer. Even when the name, the address and the credit card are the same. This is not a bug you can switch off. Shopify simply does not check anything else. That is where OnceOnly comes in: we look at several things at once.

How do customers actually do this?

Usually in one of three ways. None of them is complicated: • They create a second email address. That takes two minutes. • They add a dot to their address. max.smith@ becomes maxsmith@. The mail still arrives in the same inbox. Shopify sees two different customers. • They check out as a guest instead of signing in. In all three cases the name and the shipping address stay the same. That is how OnceOnly recognises them.

How do I stop customers from using a discount code more than once?

There are four ways. You can set up the first three yourself right now, no app needed: • Set a usage limit. In the discount, under “Usage limits”, tick “Limit to one use per customer”. This stops the customer who reuses the same account. • Turn off guest checkout. In checkout settings, switch to “Customer accounts are required”. It makes things less convenient. • Only give the code to people you know. By newsletter rather than in public. All three share one gap: they check the email address. Anyone who creates a new one is a new customer again. That takes two minutes, and it is not hacking - it is ordinary behaviour. So the fourth way is to look at more than the email address: at the name and the shipping address. That is what OnceOnly does. If the first three already solve it for you, you do not need us.

Can I do this without an app?

Partly, yes. And if it is enough, save your money. Shopify can do this on its own: cap a code overall, limit it to one use per customer, tie it to a minimum order value, and let it expire on a date. For many shops that is enough. What Shopify cannot do: spot that two orders come from the same person when the email address differs. It checks the address and nothing else. You can catch up by hand - the duplicates show up in your order list if you sort by name or street. At twenty orders a month that works. At two thousand it does not, and that is exactly when it gets expensive.

Does it help to just make the discount smaller?

That is the most common advice in forums, and it does not solve the problem. It moves it. Do the maths: at 20 % off a $50 order, each reuse costs you $10. Make it 10 % and it is $5. The loss halves - but it stays, on every single order. At the same time the smaller discount also pulls less with every honest new customer. So you pay for the gap twice: once to the people reusing it, and once to the customer who would not have ordered for 10 %. A first-order discount is meant to work. It is better to let it work and make sure it only ever applies the first time.

Do I need Shopify Plus for this?

No. OnceOnly runs on any Shopify plan, including the smallest one. The question comes up a lot because some tools for discount rules really do require Plus. Ours does not. You only need two things: an active shop and at least one discount code you want to protect.

How do I know whether this affects me?

You do not have to guess. OnceOnly works it out from your own orders. We look at the last twelve months. Then you see: this much discount went to customers who had already ordered from you. This costs nothing. You do not have to decide anything. If the number is small, the topic is done for you. If it is large, now you know.

Why is the app not blocking anything?

Usually one of three steps is missing. Go through them in order: 1. The switch in your theme is off. Without it OnceOnly cannot check anything in your shop. You will find it in the theme editor under “App embeds”. 2. You have not picked a discount code yet. In the settings you tell us which codes should only work on a first order. 3. You are on the Audit plan. That one only shows you the numbers. Blocking needs a paid plan.

Setup

How do I switch OnceOnly on in my shop?

It is a switch in your shop’s theme. Here is how to get there: 1. In the Shopify menu click “Online Store”. 2. Then “Themes”, and “Customize” on your current theme. 3. In the sidebar on the left there is a section called “App embeds”. 4. Switch OnceOnly on there and save at the top right. Even easier: inside the app, the setup step takes you straight there with one click. You can see in the app whether it worked. As soon as your shop checks in with us once, the step is done.

Which discount codes should I pick?

Only the ones meant for new customers. For example: • The welcome discount from your popup • The newsletter code for a first order • Campaigns like “10 % off your first order” Leave all the other codes alone. A loyalty code does not belong here. Neither does a summer sale for everyone. We suggest the right codes for you already. Those are the ones you set to “one use per customer” in Shopify anyway.

What are campaigns, and do I need them?

A campaign groups codes that belong together. The difference matters: • Without a campaign, a protected code turns away anyone who has ordered from you before. • With a campaign, only a previous use of a code from the same campaign counts. An example: you send regulars a voucher so they come back. Without a campaign OnceOnly would turn away exactly those customers. After all, they have ordered before. With a campaign of its own for that voucher, this does not happen. You can also give a campaign a code prefix. Any new code starting with it joins automatically. Handy when a tool like Klaviyo creates the codes.

How long does reading my orders take?

It depends on how many orders you have. We read the last twelve months. That is how we work out your numbers and learn who has ordered from you before. For small shops this takes a few minutes. For large ones it runs over one or two nights. You do not have to do anything and you can close the app. It keeps running in the background.

Detection

How do you recognise someone with a new email address?

We look at five things, not just one: • Email address • Phone number • Shipping address • Customer number • An identifier for the device used to order If any one of them matches an earlier order, it is the same person. Even with a new email address. With addresses we are generous: “Main St 5” and “Main Street 5” are the same to us. So are typos. Important: we never store any of this in plain text, only encrypted. We can compare, but we cannot turn it back into a readable address or email.

What happens when someone is recognised?

That is up to you. There are three options: • Block: the discount code is not accepted at checkout. The customer can still order, just without the discount. • Allow and flag: the order goes through. You get a note and decide yourself what to do. • Hold: the order goes through, but shipping waits until you release it. Our tip for the start: “allow and flag”. That way you see for a week what OnceOnly would find. And no customer notices a thing.

Can it hit genuine new customers?

It can happen, but it is rare. We are cautious on purpose. The typical cases: two people live together. Or two colleagues order to the same office. Or both to the same pickup point. That is why a matching address counts for less with us than a matching email or phone number. If you want to be safe, start with “allow and flag”. Then you see every match and nobody is turned away. You can also exempt individual customers permanently.

Can I exempt individual customers?

Yes. The app has an exemption list. Anyone on it is never turned away. No matter how often they use a protected code. It is meant for regulars, for your staff, for your own test orders. And for every case where you say: this one should get the discount.

Plans

What does OnceOnly cost?

There are three plans: • Audit – free. Shows how much discount went to customers in the last twelve months who had ordered from you before. Does not block. • Protect – $49 a month or $468 a year. Blocks. Up to 2,000 orders a month. • Protect Plus – $149 a month or $1,428 a year. No volume limit. Plus export, notes on the order and the exemption list. You can try the paid plans for 14 days. The free plan stays free for as long as you like. So you can look at your numbers first and decide afterwards.

What if I have more orders?

On the Protect plan the limit is 2,000 orders a month. If you get close, we write to you beforehand. Not afterwards. If the limit is passed, protection pauses. Either until the next month starts or until you move to Protect Plus. Protect Plus has no limit. Cancelled orders do not count.

Data and privacy

What data do you store?

As little as possible. And none of it in plain text. From every order we create encrypted checksums of the email, phone number and address. We can compare those. We cannot turn them back. So we do not know anyone’s name or where they live. On top of that: when the order was placed, which discount code was used and how large the discount was. Everything sits on servers in Frankfurt, Germany. After the period you set, we delete it automatically. If a customer requests deletion through Shopify, it happens by itself.

Question not covered?

Write to hey@diallomedia.de. Every question that comes up twice becomes a line on this page.

See OnceOnly on the Shopify App Store