The mechanics of how to run a flash sale on shopify are the easy part. Shopify will schedule a discount for you in about ninety seconds.
What separates a sale that makes money from one that just moves stock at a loss is a handful of decisions made before that, and five things that reliably break during the window. This is the order to do it in.
What do you decide before touching anything?
Four things, and none of them are settings.
- The window. Start and end, to the minute, in a specific timezone. Most flash sales land between 24 and 72 hours.
- The scope. Which products. Discounting the whole catalogue is a clearance, not a flash sale, and it costs margin on everything that would have sold anyway.
- The depth. Enough to be an event relative to what you normally do. If you discount often, your audience has calibrated and a routine level is not news.
- The reason. End of season, a birthday, genuine overstock. An unexplained discount reads as either desperation or as evidence your usual price is inflated.
The reason matters more than merchants expect. It is the difference between "we are having a sale" and "we over-ordered navy in medium and would rather move it than store it", and the second is both more believable and more likely to be forgiven when it ends.
How do you set the discount so it ends itself?
This is the single most important mechanical step, because a discount that requires a human to switch off at 23:59 on a Sunday will not be switched off at 23:59 on a Sunday.
- Create an automatic discount in the Shopify admin rather than a code. No action required from the shopper and no silent failures.
- Set both a start and an end date and time. The end date is the part people skip.
- Check the timezone the admin is interpreting those times in, and write down which one it is.
- Scope it to the collection you decided on, not to all products.
- Check it does not stack with anything already running. Apply your largest existing code on a test order and see what the total becomes.
- Place a draft order at the sale price and confirm the total, the tax and the shipping are what you expect.
- Confirm compare-at prices are set if you are showing a strikethrough, and that they will come off cleanly.
Step five catches the most expensive mistake in this whole exercise. A flash sale that stacks with an existing loyalty code on your highest-volume weekend can halve your margin without anyone noticing until the numbers come in.
How do you match the countdown to the discount?
The timer displays the deadline. The discount enforces it. If they disagree, you either lose money or you look dishonest, and there is no third outcome.
- Set the timer to the same instant as the discount's end time, not approximately.
- Confirm both are interpreting the same timezone. The admin and the app may not agree by default.
- Test the handover on a hidden product with a five-minute window. Watch the timer hit zero and confirm the price reverts in the same moment.
- Decide what the page shows afterwards. The timer should disappear or say the sale ended. It should not freeze at 00:00:00 above a price that has gone back up.
If the timer never appears at all, that is a separate and very common problem with its own short list of causes, and the diagnosis walks down them in order rather than guessing at settings.
What breaks during a flash sale?
Five things, all predictable, none of which announce themselves.
- The promoted item sells out. The busiest hours of your sale then point at a dead end. Decide in advance what that page says and where it sends people.
- The buy button drops below the fold on mobile. Sale badges, banners and a countdown all consume vertical space, and together they can push the button out of view on a phone.
- Discounts stack unexpectedly. See step five above. This is the one that costs real money.
- Shipping cost eats the discount. A shopper who saves £6 and pays £5.95 postage has not been given much. Consider whether free shipping is part of the offer.
- Support goes quiet at the wrong moment. Sale traffic generates questions, and the window is short. An unanswered question during a 48-hour sale is a lost order rather than a delayed one.
How should you announce it?
The sale is only worth what your audience sees, and most stores under-announce badly.
A single email on the morning it starts reaches whoever opens email that morning, which is a fraction of your list. The pattern that consistently works better costs no more:
- A heads-up the day before. Short, no discount code, just the window. It lets people plan and it catches the mornings-only readers.
- A launch message when it opens. This is the one most stores send, and on its own it is the weakest of the three.
- A closing reminder a few hours before the deadline. Reliably the highest-converting of the set, because it reaches everyone who intended to buy and forgot.
Three sends across a 48-hour window is not excessive, because each one has a genuinely different message: it is coming, it is here, it is ending. Sending the same message three times is what people object to, not the frequency.
On site, the announcement bar is the right surface for a sitewide sale. It is the one case where a bar beats a product-page block, because the offer genuinely applies to everything and a shopper landing anywhere should learn about it.
What should you check on the day it launches?
A short pre-flight, run in this order, taking about fifteen minutes.
- Load a discounted product logged out in a private window and confirm the sale price shows on the page, not only in the cart.
- Do the same on a real phone and check the buy button is above the fold.
- Complete a test purchase end to end, including the confirmation email.
- Check a non-discounted product to confirm the scope is correct.
- Check the deadline reads correctly if you sell internationally.
- Confirm stock levels on the promoted items are what you think.
- Have somebody who is not you look at the homepage and tell you what the offer is. If they hesitate, the messaging is not clear enough.
How do you judge whether it worked?
Not on revenue during the window, which will look good almost regardless.
- Margin, not revenue. A sale that moved twice the units at half the margin is flat at best.
- Revenue per session, which catches the case where conversion rose and order value fell further.
- The fortnight afterwards. A strong sale followed by an unusually quiet two weeks means you pulled demand forward rather than creating it.
- Returns, four weeks later. Discounting and pressure both raise the share of purchases somebody regrets, and those land long after anyone stopped watching.
Judge it after a full purchase cycle, not on the Monday. That is slower and less satisfying and it is the only version that tells you whether to run it again.
Where does Edge Timer fit?
Edge Timer is ours and it is new, with no review history, which is worth weighing if the sale you are planning is one you cannot afford to get wrong. Several established options have years of merchants behind them and a free tier that covers a single sale properly.
For this job specifically, it sets the deadline as a real date and time resolved server-side, so the countdown matches the discount's end instant in every market rather than drifting with a shopper's device clock. At zero it removes itself, which is the behaviour the handover test above is checking for.
The parts that decide whether the sale works, the window, the scope, the depth and the reason, are all upstream of any app. Get those right and a plain clock is enough. Get them wrong and no timer will save it.
Questions people ask next
How long should a flash sale run?
Long enough that your email and social audience see it, short enough that the deadline carries weight. For most stores that is 24 to 72 hours. Under a day and you only reach whoever was online. Over a week it stops being a flash sale and becomes a price change.
Should I use an automatic discount or a code?
An automatic discount, almost always. Codes require the shopper to do something, they fail silently when mistyped, and an empty promo box tells everyone a better price exists that they do not have. An automatic discount applies at checkout with no action and no failure mode.
What should I do if the promoted item sells out?
Decide before it happens. The page should say the item sold out and point somewhere useful, rather than leaving the busiest hours of your sale pointing at a dead end. Also decide whether the discount extends to a comparable product, and say so.
Do I need to warn my email list in advance?
A short heads-up a day before consistently outperforms launching cold, because it lets people plan and it catches those who only check email in the mornings. It also gives you a second sending moment without repeating the same message.
Anurag Chandra
Founder, Edgecoms
Anurag runs Edgecoms, a studio of Shopify apps. He spends most of his week inside merchant stores working out why a number is lower than it should be.
Connect on LinkedInRead this on your assistant
Opens with a summary request for this page already written.