OnceOnlyShopify app

One welcome discount per customer — not one per email address.

A new email address gets your welcome discount all over again, and nothing in your reports says so. OnceOnly measures what that has cost you over the past twelve months, then stops it at the cart.

Enter the .myshopify.com domain of the store you want to install OnceOnly on.

See the bill before you change anything

OnceOnly reads the last twelve months of orders and works out how much of your welcome discount went to people who had already bought from you. That part is free, and it changes nothing in your store.

Recognise the person, not the email address

Shopify enforces “one per customer” by account or email. OnceOnly also compares phone number, street with postcode and surname, customer account and device — so the same buyer is recognised behind a new address.

Decline the code in the cart, in your own words

You mark which discount codes are protected. Those are declined while the customer is still in the cart, with the wording you wrote. Every other code is left alone.

Two things worth knowing before you install

It errs on the side of letting people buy.
If OnceOnly cannot check a cart — the storefront script has not loaded yet, an express checkout skipped it — that cart goes through. Only after five orders have proven the check works does OnceOnly start treating an unverifiable cart as a reason to decline, and you can switch that off entirely.
It never stores who your customers are.
Email addresses, phone numbers, names, postal addresses and IP addresses are turned into irreversible checksums the moment they arrive, with a secret key that lives outside the database. Nothing readable is kept, apart from the customer numbers you choose to put on an allow-list yourself, and the same person produces different checksums in two different stores. Servers are in Frankfurt, Germany.