Back to blog

We Launched a Discount App Six Weeks Before BFCM. Here Is How That Went.

We shipped a Shopify discount app six weeks before our first BFCM. Here is the honest retrospective: the load, the first bug reports, and what merchants told us.

Discount Prime Team
Discount Prime Team
· 4 min read
We Launched a Discount App Six Weeks Before BFCM. Here Is How That Went.

Launching a discount app six weeks before the busiest sales weekend of the year is not a plan. It is a deadline that plans for you.

Discount Prime went live on the Shopify App Store on October 10, 2023. Black Friday was November 24. We knew going in that our first BFCM would arrive before we were ready for it, and it did. This is the honest retrospective: what the load actually looked like, what broke first, and what merchants told us that we could not have learned any other way.

The short version: the discount engine held, the surprises were smaller and more human than we feared, and the most valuable output of the weekend was not revenue. It was a queue of support conversations that rewrote our sense of what to build next.

The timeline we walked into

Six weeks is not enough time to feel ready, and that turned out to be fine. The app that faced BFCM did exactly two things: volume discounts and quantity breaks. We had shipped nothing else, on purpose. Going into the highest-pressure weekend of the year with a narrow, well-understood feature set is far easier to support than going in with ten features you half understand.

Over the same weekend, merchants across Shopify sold $9.3 billion. We were a very small part of a very large wave, watching our corner of it closely.

What the load actually looked like

Here is the thing about building on Shopify Functions: the checkout traffic is not really your traffic. Discounts apply inside Shopify's own engine, so when order volume spiked, Shopify absorbed it. There was no intermediate layer of duplicate variants or draft orders to buckle under the weekend, because we had never built one.

That does not mean the weekend was quiet. The pressure just showed up somewhere other than checkout throughput: in dashboard sessions as merchants adjusted live campaigns, in support volume, and in the long tail of edge cases that only appear when enough orders flow through enough different store configurations at once.

What actually broke first

The first real bug reports were not about the discount math. The engine did the arithmetic correctly. The problems lived in the surrounding presentation and configuration, which is a useful lesson on its own.

  • Display, not calculation. A tier table that looked perfect on our test themes rendered awkwardly on a couple of merchant themes we had never seen. The price was right; the layout was not.
  • Timezones. More than one scheduling question came down to a sale starting or ending in a different timezone than the merchant expected. The math was correct; the clock was the argument.
  • Currency edges. Multi-currency carts occasionally rounded a per-unit price to a cent a merchant did not anticipate. Small, but the kind of thing a careful merchant notices immediately.

None of these were dramatic. All of them were exactly the sort of rough edge you can only find by putting the app in front of real stores, which is the entire case for launching before you feel finished.

What merchants told us

The support queue was the real product of the weekend. Read enough tickets in a row and patterns emerge that no roadmap meeting would have produced.

Merchants kept describing the same workarounds, and the workarounds pointed straight at missing features. Wholesale-leaning stores wanted pricing tied to customer groups. Several asked, in effect, for a free shipping incentive to sit alongside their volume tiers. We were not going to build any of that during BFCM week, but we wrote every request down, and that list is now shaping the roadmap far more than our original plan did.

What we would tell our six-weeks-ago selves

Three things. First, a narrow launch is a feature, not a compromise; the smaller the surface, the calmer the support. Second, the bugs that matter early are almost never in the core logic you obsessed over, so budget attention for display, scheduling, and currency. Third, treat the first BFCM as a research instrument. The revenue is a rounding error against the clarity you get about what to build.

If you are a merchant weighing your own first BFCM, we wrote a separate framework for that in your first BFCM discount plan. And if you want the story of why we built on Functions in the first place, it is in our launch note.

To everyone who installed the app in those six weeks and told us what was rough: thank you. You were the retrospective.

build-in-publicbfcmshopify-functionsproduct-launchretrospective
Discount Prime Team

About the author

Written by the Discount Prime Team - the people building and supporting Discount Prime, the smart discount and pricing app for Shopify. We share what we learn from helping merchants run volume discounts, tiered pricing, and high-converting promotions every day.

Frequently asked questions

What happens to a Shopify app under BFCM load?

For an app built on Shopify Functions, discount logic runs inside Shopify's own checkout, so Shopify absorbs the traffic spike rather than the app's servers. The pressure shows up instead in dashboard usage, support volume, and edge cases that only surface at high order counts, not in checkout throughput.

What kinds of bugs surface first when a discount app goes live?

The first real reports tend to be about display and configuration, not the core pricing math: a tier table rendering oddly on one theme, a schedule interpreted in the wrong timezone, a currency rounding to an unexpected cent. The discount engine usually holds; the surrounding presentation is where early bugs live.

Should you launch a Shopify app right before BFCM?

It is risky but survivable if the core is simple and built on stable platform primitives. A tight feature set is easier to support under pressure than a broad one. The upside is a concentrated stream of real-world feedback in weeks, which would otherwise take months to gather.

How did building on Shopify Functions help during BFCM?

Because discounts applied natively inside Shopify's checkout rather than through duplicate variants or cart workarounds, there was no fragile intermediary to fail under load. Shopify handled the checkout traffic, and the app inherited platform reliability during the busiest weekend of the year instead of having to reproduce it.

Why do support conversations matter more than a roadmap early on?

Early support tickets describe the workarounds merchants are already attempting, which points directly at the features they need. A roadmap written in isolation guesses at that; support conversations report it. In the first weeks after launch, the ticket queue is the most accurate product signal a small team has.

Run profit-first promotions on Shopify

Discount Prime brings eight discount types, margin analytics, and conflict detection into one Shopify-native app.

See pricing

Or see it live in our demo store and watch every feature working on a real Shopify store.

Related articles