Black Friday and Cyber Monday do not reward the store with the best creative that weekend. They reward the store that finished its operational homework eight to twelve weeks earlier. Every year, stores with strong products and solid marketing lose a meaningful share of their peak weekend to problems that had nothing to do with demand: a discount code conflict, a checkout script that chokes under load, a support inbox that drowns by Saturday morning.
This is a runbook, not a marketing calendar. It assumes your promotional strategy and creative are being handled elsewhere, and focuses entirely on the operational readiness that determines whether that strategy can actually execute at 5x normal traffic. Where a deeper technical guide already exists — speed, checkout, cart recovery — this runbook tells you when to do that work and treats the guide itself as homework, not something to duplicate here.
The sequence below moves from the longest lead-time decisions to the shortest, because that is how the real risk is distributed. Inventory commitments made too late cannot be undone by a clever landing page. A checkout script conflict discovered on launch day cannot be fixed by a better discount. Work through each phase roughly in order, and treat any phase you are tempted to skip as the one most likely to cost you revenue during the actual weekend.
How far in advance should I prepare my Shopify store for Black Friday?
Start structured preparation 8 to 12 weeks out. Inventory forecasting and vendor commitments need the longest lead time, followed by app and theme freeze planning, then speed and checkout capacity testing in the final 4-6 weeks before launch.
The BFCM Readiness Timeline at a Glance
| Weeks out | Primary focus |
|---|---|
| 10-12 weeks | Inventory forecasting and vendor commitments |
| 8-10 weeks | App and theme freeze planning, stack audit |
| 6-8 weeks | Speed and performance stress testing |
| 6 weeks | Checkout and payment capacity planning |
| 4-6 weeks | Promotion rules, discount logic, pricing governance |
| 3-4 weeks | Customer support staffing and readiness |
| 2 weeks | Load testing, freeze enforcement, rollback plan |
| Launch week | Daily command checklist |
| BFCM weekend | Hour-by-hour day-of protocol |
| Post-BFCM | Fulfillment, returns, retention follow-up |
Treat each phase as a gate, not a suggestion. A store that skips the 8-10 week freeze planning phase and starts app changes at week 3 is taking on regression risk during the highest-stakes traffic window of the year, for a change that could have shipped in September.
10-12 Weeks Out: Inventory Forecasting and Vendor Commitments
Inventory is the longest lead-time item in this entire runbook, which is exactly why it starts first, before any technical work.
Forecasting against last year, adjusted for growth
Pull last year's BFCM sell-through by SKU, then adjust for year-over-year growth trajectory, planned promotional depth, and any new product lines that did not exist during the prior comparison period. A naive "just order more than last year" approach either overcommits cash into slow-moving stock or undercommits on the products that will actually sell through.
Building buffer for hero SKUs specifically
Not every SKU needs the same buffer. Identify the 10-20% of products that will likely drive 60-80% of BFCM revenue, and build a deliberately larger safety buffer for those specifically, rather than spreading buffer evenly across the entire catalog.
- Confirm vendor lead times account for peak-season freight delays, not standard timelines
- Set a hard cutoff date after which new inventory commitments will not arrive before BFCM
- Pre-decide substitution or bundling logic for any hero SKU that sells out mid-weekend
- Sync inventory buffer decisions with the promotional calendar to avoid selling out hero SKUs in hours
A common inventory mistake
Confirming supplier commitments verbally without a written delivery date buffer. Peak-season freight and customs delays are common even with reliable vendors — build the buffer into your internal deadline, not just your promotional launch date.
8-10 Weeks Out: App and Theme Freeze Planning
This is the phase most stores skip, and the one that causes the most preventable BFCM incidents. Every app install, theme edit, or major configuration change introduces regression risk — risk that is tolerable in a normal week and expensive during peak traffic.
Set a hard freeze date now, in writing
Decide your freeze date today: 2-3 weeks before Black Friday, no non-critical changes to theme code, app stack, or checkout configuration. Communicate it to every team and vendor touching the store, including any outside agency or freelance developer, well before the date arrives.
Audit your current app stack before the freeze, not during it
Use the freeze planning window to run a full app audit: which apps are actually load-bearing for BFCM (upsell, cart recovery, reviews), which are dead weight that should be removed now, and which have known performance issues under high concurrent traffic. For the full audit framework and criteria, see our essential Shopify apps guide.
What "critical fix" actually means during freeze
Define in writing, before the freeze starts, what qualifies as an exception (a broken checkout, a security issue) versus what does not (a color tweak, a new upsell app someone found interesting last week). Ambiguity here is how freezes quietly fail.
Freeze does not mean frozen forever
A freeze is a 2-4 week window around peak traffic, not a permanent halt on improvement. Document everything you deferred during the freeze so it becomes the first work queued immediately after BFCM ends.
6-8 Weeks Out: Speed and Performance Stress Testing
Speed problems that are invisible at normal traffic volume often surface only under concurrent load — which means testing your site at its current, everyday traffic level tells you almost nothing about how it behaves during a BFCM traffic spike.
- Largest Contentful Paint and Interaction to Next Paint on hero-SKU product pages under simulated concurrent load
- CDN and image delivery performance for new BFCM-specific creative assets before they go live
- Third-party script behavior specifically during checkout and cart pages
- Server response time consistency across a simulated multi-minute traffic spike
Run the full technical methodology from our Shopify speed optimization guide during this window — this runbook tells you when that work needs to be finished, not how to do it in detail.
A practical standard
If your hero product pages cannot hit acceptable LCP under a simulated 5-10x traffic multiplier by week 6, you have time to fix it. Discovering this on Black Friday morning, you do not.
6 Weeks Out: Checkout and Payment Capacity Planning
Checkout is the single highest-stakes page on your entire store during BFCM — every other page failing costs you a browsing session; checkout failing costs you a completed order that was already in hand.
Payment gateway and processor capacity
Confirm with your payment processor that your account is provisioned for your expected peak transaction volume, not your average daily volume. Some processors apply velocity limits or fraud-detection thresholds calibrated to typical usage that can throttle or flag legitimate BFCM order spikes if not adjusted in advance.
Checkout-specific technical validation
- Test checkout completion across every payment method you offer, not just your default
- Validate checkout behavior on mobile Safari and Chrome specifically
- Confirm discount code stacking behavior before promotions go live
- Test the complete flow with a full cart, not an empty or single-item cart
For the deeper checkout UX methodology behind these fixes, pair this section with our 10 checkout optimization techniques guide.
4-6 Weeks Out: Promotion Rules, Discount Logic, and Pricing Governance
Promotional complexity is where well-intentioned marketing plans create technical incidents. The more overlapping discount codes, tiered offers, and bundle promotions you plan, the more combinations need to be tested before launch, not discovered live.
Building a promo rules matrix before launch
Document every planned promotion — sitewide discount, category-specific offer, bundle deal, loyalty perk — and explicitly define how they interact. Can a sitewide code stack with a bundle discount? What happens if a customer applies two codes in the same session? Untested combinations are where checkout math errors originate.
| Promotion type | Stacks with sitewide code? | Stacks with bundle offer? | Notes |
|---|---|---|---|
| Sitewide % off | N/A | Define explicitly | Set as baseline |
| Category-specific offer | Decide and document | Decide and document | Avoid unlimited stacking |
| Free shipping threshold | Usually yes | Usually yes | Confirm threshold math with discounts applied |
| Loyalty/VIP perk | Decide and document | Decide and document | Test with an actual loyalty account |
Pricing governance and compare-at accuracy
Confirm that any compare-at or "was" pricing reflects genuine prior selling prices well before your promotional window, both for shopper trust and for regulatory compliance in markets with pricing-history disclosure rules. Build in time to correct any pricing inconsistencies discovered during this review before, not during, the sale.
A frequent promo-logic mistake
Testing each promotion individually but never testing two active at once. The individual promotions may work perfectly; the combination is where checkout total miscalculations most often appear.
3-4 Weeks Out: Customer Support Readiness and Staffing
Support volume during BFCM does not scale linearly with traffic — it scales with traffic, order complexity, and the number of live incidents, all three of which peak simultaneously during the exact same weekend.
Staffing to your actual BFCM multiplier
Most DTC Shopify stores see 3-8x normal weekly traffic during the BFCM weekend, concentrated into roughly 72 hours. Staff support shifts against that multiplier, not against average-week ticket volume, and plan coverage across the full weekend including overnight hours where order volume does not pause.
Preparing response templates in advance
Draft templates in advance for the highest-frequency BFCM questions: order status during a shipping surge, promo code issues, sold-out substitutions, and delivery timeline expectations given holiday shipping carrier volume. Agents responding from a pre-approved template respond faster and more consistently under pressure than agents improvising each reply live.
Defining escalation paths before you need them
Agree in advance who gets pulled in for a payment failure report, a broken discount code, or a site-down report, and how quickly. A support agent without a clear escalation path either sits on a technical issue too long or escalates everything, overwhelming the technical team with noise.
2 Weeks Out: Load Testing, Freeze Enforcement, and the Rollback Plan
By this point, every prior phase should be substantially complete. The final two weeks are for validation and contingency planning, not new feature work.
Running a realistic load test
Use a load-testing tool to simulate your expected peak concurrent session count against your actual storefront, checkout flow included, not just the homepage. A load test that only hits static pages tells you nothing about whether checkout survives real traffic.
Building and testing the rollback plan
- Document exactly who has permission to disable a specific app or revert a theme version
- Keep a known-good theme backup and app configuration snapshot taken immediately before launch
- Pre-write the internal "we are aware and investigating" communication template
- Test the actual rollback procedure once during this window — an untested plan is a hypothesis
Freeze enforcement in the final stretch
This is also the point to confirm the freeze from weeks 8-10 has actually held. A last-minute "quick" app install in week 1 is one of the most common sources of otherwise-preventable BFCM incidents.
Launch Week: Daily Command Checklist
The week immediately before Black Friday is about final verification and team alignment, not new work.
- Confirm inventory counts match what merchandising and marketing believe is available for promoted SKUs
- Run one final full checkout test across desktop and mobile, all payment methods
- Verify analytics and conversion tracking are firing correctly ahead of the highest-traffic days of the year
- Confirm on-call staffing and escalation contacts for the full BFCM weekend
- Hold a short daily stand-up through launch week covering readiness status and open risks
Black Friday and Cyber Monday: The Day-Of Protocol
Treat the weekend itself as a live operations event with a command structure, not a set-and-forget campaign.
Hour-by-hour monitoring cadence
In the first 2-4 hours after each major promotional moment (midnight launch, morning email send, afternoon push), monitor checkout completion rate, payment failure rate, and site error rates at tighter intervals than normal — every 15-30 minutes rather than a daily glance.
What to watch for specifically
- Sudden checkout completion rate drops relative to the same hour the previous day, adjusted for traffic
- Payment failure rate spikes, which often indicate a gateway capacity or fraud-threshold issue
- Site or app error rate anomalies, especially on checkout and cart pages
- Inventory sell-through pace on hero SKUs relative to forecast, to trigger substitution messaging early
Day-of anti-pattern
Do not use BFCM weekend to test new marketing ideas or make unplanned site changes, even small ones. This is a stability and execution window — the freeze principle from weeks 8-10 applies with even more force during the live event itself.
A Worked Example: How a Preventable Incident Actually Unfolds
Frameworks are easier to apply once you see the failure mode they prevent. Consider a hypothetical mid-size apparel store — illustrative, not a specific client — that skipped the freeze-enforcement step in week 2.
A marketing team member, excited about a last-minute idea, asks a developer to add a new urgency banner app on the Wednesday before Black Friday. The developer, under time pressure and without a load-testing window available, installs it directly into the live theme rather than staging it first. The app's script loads synchronously and was never tested against the store's existing checkout script stack.
Friday morning, as traffic climbs toward its peak, checkout completion rate on mobile begins dropping relative to the same hour the previous day — a pattern the team only notices because they were watching the hour-by-hour dashboard described earlier in this runbook. Investigation traces the drop to a script conflict introduced by the new banner app, which is intermittently blocking the checkout button on slower mobile connections under load.
Because a rollback plan existed and had been tested two weeks earlier, the on-call developer disables the app within eleven minutes of the anomaly being flagged, and checkout completion recovers within the same monitoring window. The incident becomes a two-line note in the post-BFCM review rather than a multi-hour outage discovered only after a wave of customer complaints. The lesson is not "never make late changes" — it's that the freeze, the monitoring cadence, and the tested rollback plan are what turned an inevitable mistake into an eleven-minute non-event instead of a lost afternoon of revenue.
Marketing-Ops Alignment: Keeping Creative and Infrastructure on the Same Timeline
Most BFCM incidents trace back to a coordination gap rather than a single technical failure: marketing finalizes a promotional idea without knowing it requires a technical change, and that change lands outside the freeze window because nobody flagged the conflict early enough.
A shared readiness calendar, not two separate ones
Merge the marketing promotional calendar and the technical readiness timeline from this runbook into one shared document, reviewed jointly on a weekly cadence starting at week 8. Any promotional idea that requires a technical change gets flagged against the freeze date the moment it is proposed, not discovered the week it was meant to ship.
A standing weekly sync from week 8 onward
A 20-30 minute weekly sync between marketing, technical, and support leads through the final eight weeks catches conflicts early enough to resolve them calmly. The alternative — discovering a conflict in week 1 because nobody checked in since week 4 — forces a rushed decision under far worse conditions.
A simple rule that prevents most conflicts
Any promotional idea proposed after the freeze date defaults to "no" unless it can be implemented with zero code or app changes. This single rule resolves the majority of late-stage marketing-ops conflicts before they become incidents.
Post-BFCM: Fulfillment, Returns, and Retention Follow-Up
The operational work does not end when the promotional weekend does. What happens in the following two to four weeks determines how much of that revenue converts into long-term customer value.
Fulfillment and shipping communication
Peak-season carrier delays are common and largely outside your control, but proactive shipping status communication is fully within it. Set expectations early and update customers before they have to ask, rather than after complaints start arriving.
Returns and post-purchase support surge
Plan for a returns and support volume increase in the two to three weeks following BFCM, proportional to order volume. Pre-stage return policy communication and staffing for this second wave the same way you staffed for the sale itself.
Converting BFCM buyers into repeat customers
A large share of BFCM buyers are new, deal-motivated, first-time customers. A dedicated post-purchase sequence — set expectations, request feedback, introduce full-price value beyond the discount — meaningfully improves the odds they return outside of a promotional window.
Running a structured post-mortem before memory fades
Schedule a post-mortem within one to two weeks of BFCM ending, while details are still fresh, not in January when the specifics have blurred. Document what nearly broke, what actually broke, what the freeze and rollback plan prevented, and which forecasts were closest to and furthest from reality. This document becomes the starting checklist for next year's 10-12 week mark, turning each BFCM cycle into a compounding operational advantage.
- Capture every incident, near-miss, and manual workaround while the team still remembers the specifics
- Compare actual traffic, conversion, and support volume against the forecasts made in weeks 6-10
- Note which freeze exceptions were requested and whether each was actually necessary in hindsight
- File the completed post-mortem alongside next year's runbook copy
Common BFCM Preparation Mistakes
Treating BFCM prep as a marketing-only project
The creative and offer strategy matter, but they are worthless if checkout cannot process the resulting demand. Operations and marketing need a shared readiness timeline, not two separate ones.
Skipping the freeze, then debugging live
A last-minute app install or theme tweak introduced during launch week is one of the most preventable sources of BFCM incidents, and one of the most common.
Testing promotions individually, never in combination
Discount stacking bugs almost always appear at the intersection of two promotions that each worked fine alone.
No rollback plan, or one that was never actually tested
Discovering during a live incident that nobody knows how to revert a change, or that the "known good" backup was never actually saved, turns a recoverable problem into a prolonged one.
Under-staffing support for the actual multiplier
Staffing to average-week volume during a 3-8x traffic weekend guarantees a support backlog exactly when first impressions with new customers matter most.
Key takeaways
- BFCM readiness is an 8-12 week operations program, not a launch-week sprint.
- Set a hard app and theme freeze date 2-3 weeks out, in writing, with a clear definition of what qualifies as a critical exception.
- Stress test speed and checkout under simulated concurrent load, not single-session testing.
- Build and test a promo rules matrix before launch; discount-stacking bugs appear at the intersection of promotions tested only in isolation.
- Staff support to your real BFCM traffic multiplier (often 3-8x normal), with coverage across the full weekend.
- Build and actually test a rollback plan before launch — an untested plan is a hypothesis, not a safety net.
- Plan the two to four weeks after BFCM as deliberately as the weekend itself: fulfillment communication, returns capacity, and a retention sequence.
Want an outside review of your BFCM technical readiness before the freeze window closes? Book a free Shopify audit or explore our Shopify CRO services for a full pre-peak-season review of speed, checkout, and conversion fundamentals.
Want a pre-BFCM technical and conversion readiness review?
CROVEX audits speed, checkout capacity, and conversion fundamentals against a peak-traffic timeline, so your store is ready well before the freeze window closes.
Book Free Shopify AuditFrequently Asked Questions
Start structured preparation 8 to 12 weeks out. Inventory forecasting and vendor commitments need the longest lead time, followed by app and theme freeze planning, then speed and checkout capacity testing in the final 4-6 weeks before launch.
Yes. Set a hard freeze date 2-3 weeks before Black Friday for any non-critical app installs, theme edits, or major configuration changes. Every change introduces regression risk, and BFCM traffic volume amplifies the cost of any bug that slips through.
The most common causes are payment gateway timeouts under load, discount code logic conflicts when multiple promotions stack unexpectedly, and third-party app scripts that slow or block checkout rendering during traffic spikes. Most of these are preventable with load testing and a promo rules audit before launch.
Combine synthetic load testing tools that simulate concurrent sessions with manual test purchases across devices and payment methods. Focus specifically on checkout, since it is the step most sensitive to both traffic spikes and app-related script conflicts.
A rollback plan is a pre-agreed, pre-tested procedure to revert a theme change, app installation, or promotion configuration within minutes if it causes a live problem during peak traffic. Without one, teams debug live under pressure, which takes far longer and risks compounding the original issue.
Scale support staffing to your typical BFCM traffic multiplier, not your average-week volume — most DTC stores see 3 to 8 times normal traffic during the peak weekend. Plan shift coverage across the full weekend, not just business hours, since order volume and questions do not pause overnight.