Skip to content
BFCM

A discount engine built to hold up on Black Friday, not just on a Tuesday in March

Most discount apps work fine on ordinary traffic. Peak traffic is where the shortcuts show. This page covers why discount apps fail during BFCM, a short playbook for running discounts through peak, and exactly what Stackable commits to, in verifiable terms, not an uptime number nobody can check.

Install free
A familiar BFCM failure

Public reviews of discount apps describe the same failure mode every BFCM season:

The app is literally broken for Black Friday. It worked fine all year and then broke out of nowhere during our biggest traffic day, costing us thousands before we caught it.
Why discount apps fail at peak

Two shortcuts explain most of it

Two shortcuts explain most of the pattern:

Client-side price hacks

Some apps calculate the discount in the browser and rewrite the displayed price with JavaScript. It looks right in the cart, but the actual checkout total is computed separately, by Shopify's checkout, not the app. Under peak load, or with a slow connection, or with an ad-blocker, that JavaScript can fail silently while the visual price stays discounted. The customer sees one number; checkout charges another.

Draft-order checkouts

Other apps route the cart through a draft order to apply custom pricing, a workaround that predates Shopify Functions. Draft orders sit outside the normal checkout flow, which breaks native discount codes and order analytics, and adds another moving part that can fail exactly when traffic spikes.

The playbook

A short BFCM checklist

01

Schedule your campaigns ahead of the rush

Set exact start and end dates before BFCM week, so nothing depends on someone manually flipping a campaign live while checking traffic dashboards at the same time.

02

Run a sample cart through the simulator first

Before a campaign goes live, test it against a sample cart and confirm the combined total is exactly what you expect, the same calculation checkout will run.

03

Know you can pause instantly if something looks wrong

If a campaign is behaving unexpectedly once it's live, pausing it takes one click and applies storefront-wide, not just on new page loads.

The commitment

Verifiable specifics, not an uptime number

We'd rather commit to things you can check on your own store than publish a number we can't back yet.

Every discount is computed inside Shopify checkout itself via Shopify Functions, no client-side price rewriting, no draft-order workaround.
Cart, checkout, and every accelerated checkout (Shop Pay, Apple Pay, Google Pay) compute the identical total, because they all call the same server-side calculation.
Pausing a live campaign propagates storefront-wide within 60 seconds.
Product prices are never mutated, so there is nothing to revert if you uninstall mid-campaign.
FAQ

Common questions

What makes Stackable different at BFCM traffic levels specifically?

The discount calculation runs inside the same Shopify Function infrastructure regardless of traffic volume, there is no separate "peak mode" or client-side fallback that behaves differently under load. The same server-side calculation runs whether it is a normal Tuesday or your highest-traffic hour of the year.

Can I schedule a campaign to start exactly at midnight on Black Friday?

Yes. Set the start and end date and time when you create the campaign, and it activates and deactivates automatically on schedule without anyone needing to be online at that moment.

If I need to stop a campaign mid-BFCM, how fast does that take effect?

Pausing a live campaign takes one click in the admin and propagates storefront-wide within 60 seconds.

Do you publish an uptime number?

Not yet, and we would rather not publish a number we can't back with a track record. What we can commit to today is architectural: server-side computation, identical totals across cart and every checkout surface, and a fast, verifiable pause.

Run your BFCM discounts on a server-side engine

Schedule ahead, test with the simulator, and pause in one click if you need to, all season long.

Free plan available. No card required.

We use essential cookies to run this site, and, only with your permission, analytics cookies to understand traffic. Read our Cookie Policy.