Black Friday traffic does not create every storefront bug. It finds the discount edge case, stale inventory rule, blocked payment method, or slow app script that normal traffic never pushed hard enough to expose.
In 2026, Black Friday falls on November 27 and Cyber Monday on November 30. Shopify describes BFCM as a global, multi-day sales period, not a US-only event, which matters when one store serves the US, UK, Canada, and Australia with different prices, currencies, shipping rules, and campaign clocks. Shopify’s BFCM preparation guide recommends testing promotions and preparing inventory, shipping, support, analytics, and mobile storefronts early.
This is the technical checklist behind that campaign. It is designed for the person who must answer a harder question than whether the banner looks ready: can the store accept the intended order, record it correctly, and recover quickly if a release goes wrong?
Start with a BFCM test matrix
A checklist becomes useful only when every item has an owner, expected result, and evidence.
Create a table with these columns:
| Scenario | Market | Device | Customer state | Expected result | Owner | Evidence |
|---|---|---|---|---|---|---|
| Campaign product plus discount | US | Mobile | Guest | Correct price and shipping | Developer | Order and screenshots |
| Threshold discount | UK | Desktop | Returning | Activates at exact GBP threshold | Merchant | Order timeline |
| Low-stock variant | Canada | Mobile | Logged in | Inventory decrements once | Operations | Inventory history |
| Express payment | Australia | Mobile | Guest | Correct AUD total and address flow | Developer | Test order |
Do not use one happy-path order as proof. Cover the products, markets, customer states, and payment paths that the campaign will actually send traffic to.
August: freeze the commercial rules
The fastest way to break BFCM is to keep changing the offer while developers test it.
Write a short promotion contract:
- included and excluded products, collections, variants, and gift cards;
- regular, sale, and compare-at price rules;
- automatic discounts and discount codes;
- whether product, order, and shipping discounts can combine;
- minimum quantity or spend thresholds;
- customer eligibility and early-access rules;
- start and end time with an explicit timezone for every market;
- behavior when stock runs out;
- cancellation, return, and partial-refund expectations.
This document is not campaign copy. It is the expected behavior against which every test passes or fails.
September: test discount combinations
Build carts that hit every boundary: one cent below a threshold, exactly at it, and one item above it. Repeat with excluded products, mixed collections, already discounted variants, subscriptions if used, and shipping thresholds.
Shopify applies specific combination rules. When discounts cannot combine, the best eligible discount is applied. Product or order discounts can combine only when their settings allow it, and only one shipping discount can apply to an order. Shopify also documents limits on active automatic discounts and codes per order. Read the current Shopify discount combination rules before finalizing the campaign.
Test at least:
- automatic promotion alone;
- campaign code alone;
- product plus order discount;
- product or order discount plus free shipping;
- two codes that should combine;
- two codes that should not combine;
- Buy X Get Y with a second discount;
- cart edits after a discount applies;
- removal of the qualifying item;
- accelerated checkout from a discounted product page.
Record the final line price, subtotal, discount allocation, shipping charge, tax, and order total. The green success message in the cart is not enough.
October: rehearse checkout in every market
Shopify recommends placing a test order whenever payment settings change because it verifies checkout, order processing, inventory, shipping, email notifications, and taxes. Follow Shopify’s supported test-order process.
Run the matrix against representative destinations in the US, England, Scotland, Canada, and Australia when those regions are in scope. Validate:
- the intended currency and localized price;
- address validation and required fields;
- shipping rate name, price, threshold, and delivery estimate;
- tax behavior;
- discount visibility at every checkout step;
- each important payment method;
- failed, abandoned, and successful payments;
- order confirmation page and email;
- inventory decrement at the correct location;
- fulfillment routing and tags;
- refunds and partial refunds.
Shopify notes that customers cannot place live orders while payment providers are in test mode. Schedule that work, announce it internally, and turn production payments back on immediately after the controlled test window. A real transaction can test the complete path, but refund it carefully because transaction fees may apply.
Verify inventory and fulfillment rules
Campaign traffic can sell the same limited inventory through several paths at once. Confirm which locations stock each featured variant and which location should fulfill each destination.
For every campaign product:
- enable inventory tracking where overselling is not intended;
- verify available quantities by location;
- inspect whether Continue selling when out of stock is enabled;
- confirm bundles or kits decrement every component;
- test a cart that becomes unavailable before payment;
- decide what the product page and cart show at zero stock;
- confirm backorder messaging and lead time when overselling is deliberate.
Shopify’s inventory setup guide explains tracking and the explicit out-of-stock selling option. The technical setting and the customer promise must agree.
Measure storefront performance before the campaign
Take a baseline on the live theme before adding campaign sections, countdowns, tracking, or new app embeds. Measure the home page, a campaign collection, a representative product, cart, and any custom landing page.
Shopify recommends HTML and CSS as the primary rendering path, JavaScript as progressive enhancement, responsive images, and async or defer for scripts that would otherwise block parsing. Its guidance also points developers to Theme Check, the Web Performance Dashboard, real-user monitoring, and Lighthouse. Use Shopify’s current theme performance guidance as the baseline.
When a page slows down:
- Compare the current theme with the baseline.
- Identify which section, script, tag, or app embed changed.
- Remove work that is not needed on that template.
- Load non-critical behavior after the primary content.
- Re-test on a mid-range mobile device and a slower connection.
Do not chase a perfect lab score while ignoring a broken purchase path. Track whether shoppers can see the offer, choose a variant, add to cart, and reach checkout without visible delay or layout shifts.
Reconcile analytics with real orders
Tracking should answer three questions: where the shopper came from, which promotion influenced the order, and whether the purchase value matches Shopify.
Place controlled orders from tagged campaign URLs. Then compare:
- landing page session;
- product view;
- add to cart;
- checkout start;
- purchase event;
- order ID;
- currency;
- gross value, discount, shipping, tax, and final total.
Check Shopify first, then analytics and advertising destinations. If one test order becomes two purchase events, or GBP revenue appears as the same numeric amount in USD, fix the data contract before scaling spend.
Also test consent states that apply in each market. Analytics failure must never block product browsing, cart actions, or checkout.
Prepare a launch and rollback plan
By early November, freeze non-essential theme and integration changes. Keep one tested theme version ready to publish and one known-good version ready to restore.
Write the launch runbook:
- exact activation time and timezone;
- person allowed to publish the theme;
- person allowed to activate or pause discounts;
- dashboards and Shopify views to monitor;
- alert thresholds for checkout failures, inventory anomalies, and error rates;
- escalation channel and decision owner;
- rollback steps for theme, discount, feed, and tracking changes;
- customer support message if an offer must be paused.
A rollback is not failed preparation. It is part of preparation.
Run the final 48-hour check
Use this compact pass after the campaign is frozen:
- campaign URLs resolve and use the intended canonical page;
- banners, collection cards, product pages, cart, and checkout show the same offer;
- start and end times are correct in every operating timezone;
- discount combinations match the promotion contract;
- prices and currencies match each market;
- shipping rates and thresholds work for representative postal codes;
- payment methods accept the intended orders;
- stock, locations, bundles, and overselling behavior are correct;
- confirmation email, fulfillment routing, and refund flow work;
- campaign pages meet the agreed performance baseline;
- purchase events contain one order ID, correct value, and correct currency;
- monitoring owners are online;
- rollback instructions are current and accessible.
Do one final order on mobile from the same public URL that paid traffic will use. Staff shortcuts and theme-preview URLs can hide problems that a shopper will see.
Turn the checklist into evidence
The deliverable is not a row of check marks. It is a small evidence pack: test orders, screenshots, timing results, processed events, named owners, and a rollback decision. That lets merchants, developers, operations, and marketing launch the same campaign instead of four slightly different versions of it.
If your BFCM campaign depends on custom discount logic, multiple Shopify Markets, theme changes, app integrations, or a fragile analytics setup, discuss your Shopify project with MerchWeave. We can turn the promotion rules into a focused technical plan and help prepare the storefront before the launch window closes.