Category: FunnelKit Guides

FunnelKit setup and troubleshooting guides for WooCommerce operators — checkouts, order bumps, one-click upsells, abandoned cart recovery, and automations. Step-by-step fixes for when FunnelKit isn’t behaving, written for people running their own store.

  • FunnelKit One-Click Upsell Not Working? The Reasons It Doesn’t Fire and How to Fix Each

    Last updated: June 2026

    Table of contents

    1. The 30-second answer
    2. First, decide which failure you have
    3. How a one-click upsell is supposed to work
    4. When the offer page never shows
    5. When the buyer accepts but nothing gets charged
    6. The saved-card trap that can mislead a test
    7. When acceptors and decliners land on the wrong page
    8. How to test a one-click upsell correctly
    9. Quick reference: symptom to cause
    10. Frequently asked questions
    11. Sources

    You built the one-click upsell. The offer page is designed, the product is attached, the discount looks right. Then a real order comes through, the customer clicks Accept — and the upsell isn’t on the order. Or the offer page never appeared at all. Or the buyer who accepted ended up on the same page as the buyer who declined. From the front end it all looks like “the upsell is broken,” but a FunnelKit one-click upsell not working is really several different problems wearing the same costume.

    The good news is that they sort cleanly. Once you know which of the failures you’re looking at — page never shows, accept doesn’t charge, or wrong routing — the fix for each is short and specific. This guide walks all three down in the order they actually occur, including the saved-card test artifact that can make a perfectly good upsell look dead.

    The 30-second answer

    A FunnelKit one-click upsell not working usually comes down to one of these:

    1. You’re testing with a saved card. A reused card from a prior test may behave differently from a freshly entered one, so an accept that fails in testing can be a test artifact rather than a real fault. Re-test with a fresh card before changing anything.
    2. The offer page isn’t fully built, or the Accept/Reject controls were rebuilt as ordinary buttons/links that aren’t wired to FunnelKit’s accept/reject action — only FunnelKit’s own accept control (widget, link, or shortcode) triggers the one-click charge.
    3. The payment gateway doesn’t support one-click — one-click charging requires a gateway that supports card tokenization (storing the payment method and charging it again without re-entry).
    4. Routing is wrong — acceptors and decliners aren’t sent to the pages you intended.
    5. You’re testing as admin, or on a cached page, and seeing behavior a real buyer wouldn’t.

    If you only do one thing: re-run the test with a brand-new card entered fresh at checkout, in an incognito window, as a non-admin. A reused saved card is one of the first things to rule out — a normal fresh-card checkout is the cleanest test case, so a failure you saw with a saved test card may not reflect what a real buyer hits. Confirm with a fresh card before you change a single gateway setting.

    First, decide which failure you have

    Before you change anything, pin down what’s actually happening. The three failures need different fixes, and guessing wastes time:

    • The offer page never appears. After Place Order, the buyer goes straight to the thank-you page and never sees the upsell. This is a setup/routing problem, not a payment problem.
    • The page appears, the buyer accepts, but nothing is charged. The offer showed, Accept was clicked, yet the upsell product isn’t on the order and no extra charge landed. This usually points to payment/tokenization — often the saved-card test artifact.
    • The page works and charges, but routing is off. Acceptors and decliners end up on the wrong follow-up page. This is purely a routing-configuration problem.

    Name yours, then jump to the matching section below.

    How a one-click upsell is supposed to work

    A one-click upsell fires after the customer clicks Place Order and before they reach the thank-you page. They land on an offer page; if they accept, the item is charged and appended to the order they just placed — no re-entering card details, which is the entire point. That last part is also the source of most trouble: charging a card again without asking for it requires card tokenization — the gateway has to support storing the customer’s payment method and charging it again without the customer re-entering anything. When the payment method can’t be charged again that way, the accept can register without the follow-on charge completing.

    So a working one-click upsell needs three things to all be true: a built offer page with FunnelKit’s real Accept/Reject controls (widgets, links, or shortcodes), a payment method that supports charging again via tokenization, and routing that sends acceptors and decliners where you want them. Miss any one and the upsell “doesn’t work” in a different way.

    One useful exception worth knowing: manual payment methods (bank transfer, cheque, cash on delivery) sidestep the tokenization requirement entirely — there’s no automatic second charge to authorize, because the customer is settling the order manually anyway. If your store runs on manual payments, the “gateway doesn’t support one-click” failure mode doesn’t apply the same way.

    When the offer page never shows

    If buyers skip straight to the thank-you page, the upsell step isn’t in the path or isn’t built. Check these in order:

    Is the offer page actually built? If the offer step exists but the template was never built or customized, the buyer can be routed to a page with nothing meaningful on it — which reads as “the upsell never showed.” Open the offer step and confirm there’s real content on it.

    Are the Accept/Reject controls wired to FunnelKit? This is the big one. The one-click charge is triggered only by FunnelKit’s own accept control — its Accept widget, Accept link, or accept shortcode. If someone rebuilt the buttons as ordinary HTML links or styled buttons that aren’t wired to FunnelKit’s accept/reject action, they’ll look right but won’t trigger the charge. Edit the offer page through the funnel step’s own “Edit Template” (which opens the offer sub-step in the editor), keep FunnelKit’s Accept/Reject controls, and build your content around them rather than replacing them with plain buttons.

    Is a product attached to the offer? The offer product is attached on the offer sub-step’s Products tab. No product, nothing to sell.

    Default template copy can mislead, too. An imported offer template can ship with copy written for physical goods — an “add to my order” label with subtext like “we’ll ship it in the same package.” On a digital product that’s simply wrong, and the default decline wording rarely matches your brand. Replace both labels and remove any shipping subtext in the widget settings, not in HTML.

    When the buyer accepts but nothing gets charged

    This is a common “upsell not working” report, and an easy one to misdiagnose. The offer showed, Accept was clicked, and yet the product never appears on the order. Two things to check before you touch any settings.

    Does your gateway support one-click upsells at all? One-click append-to-order depends on the payment gateway supporting card tokenization — the ability to store the payment method and charge it again without re-entry. Card gateways built for this (Stripe is the common one) support it. Some payment methods can’t charge a second time without the customer’s involvement — with those, a true one-click charge isn’t possible and the offer behaves differently. Confirm your gateway is one FunnelKit supports for one-click upsells before assuming the feature is broken.

    Was the original payment set up to be charged again? For a supported card gateway, FunnelKit normally handles the tokenization on a normal fresh-card checkout. The thing most likely to interfere in testing is a saved card — which gets its own section below.

    A note on what you’ll see in the order timeline. During the upsell hop, FunnelKit’s order notes can move through several statuses before settling. The most reliable confirmation of whether a charge happened is your payment processor’s charge list — verify there before concluding from the WooCommerce order screen alone that the upsell failed.

    The saved-card trap that can mislead a test

    Here’s an easy-to-miss cause that sends people down the wrong debugging path, so it’s worth calling out on its own.

    When you test a one-click upsell using a card that was already saved from a previous run, the saved card can behave differently from a freshly entered one, depending on your gateway and how it stored that card. So an accept that doesn’t result in a charge during testing may be a quirk of the reused card rather than a fault in your checkout. The trap is concluding the feature is broken and starting to flip gateway settings — when the checkout was working the whole time and the saved test card was the variable.

    The fix is a testing-discipline fix, not a settings fix:

    1. Always test one-click with a fresh card entered at checkout — not a saved card, not one the browser or gateway remembered from a prior attempt. A normal fresh-card checkout is the cleanest test case, which is exactly why a saved-card failure is often a test artifact.
    2. If a fresh card also fails, only then look deliberately at your gateway’s tokenization / save-cards configuration in FunnelKit’s one-click upsell settings. Don’t change settings on a checkout that works for fresh cards.
    3. Use FunnelKit’s admin test gateway (in the one-click upsell settings) to exercise the accept flow while you’re building — then confirm with a real fresh-card order before launch.

    Want the upsell wiring done right the first time? The free FunnelKit Resources kit includes a one-click-upsell build-and-test checklist — gateway prerequisites, the fresh-card test protocol, and the routing settings to confirm before you go live. Get the kit →

    When acceptors and decliners land on the wrong page

    Sometimes the upsell charges fine, but the follow-up is wrong — people who accept still get shown the downsell, or decliners skip a page they should see. That’s a routing problem, and routing for a one-click offer is controlled per offer through FunnelKit’s Dynamic Offer Path.

    Open the offer in the funnel canvas and look for the Dynamic Offer Path controls in the offer settings, after the offer’s products are configured. This is where you choose what an accept and a reject each lead to. It becomes available once the offer has at least one other offer to route between (for example an upsell paired with a downsell) — with a single standalone offer there’s nothing to branch to, so the option only appears when multiple offers exist.

    The usual target setup: upsell accept → thank-you page (skip the downsell — they already bought), upsell reject → the downsell, and the downsell’s own accept and reject both → the thank-you page. If the location of these controls doesn’t match what you remember from an older tutorial, trust where it is in your install — in the offer settings, available when the step has two or more offers.

    How to test a one-click upsell correctly

    Most false “it’s broken” conclusions come from testing wrong. A clean test looks like this:

    • Incognito window, logged out. First rule out admin-session and cache artifacts — testing as admin or in your normal session can produce behavior a real buyer never sees.
    • A fresh card, entered at checkout. This is the single most important rule — it sidesteps the saved-card trap entirely.
    • Walk the whole path. Place the order, watch the offer page render, click Accept, and confirm on the thank-you page. Then check that the upsell amount actually appended to the order.
    • Verify on the processor. Confirm the additional charge in your payment processor’s dashboard. If the WooCommerce screens and the processor disagree, the processor’s charge list is the more reliable record.
    • If you ran the store in test/sandbox mode for the test, switch it back to live afterward and confirm the live keys are serving — a store left in test mode silently takes no money.

    Do all five and you’ll either see the upsell work end to end, or you’ll have isolated exactly which of the three failures you’re dealing with.

    Quick reference: symptom to cause

    Symptom Most likely cause First fix to try
    Buyer goes straight to thank-you, no offer Offer page not built, or not in the path Build the offer page; confirm the step routes to it
    Accept button does nothing Buttons/links not wired to FunnelKit’s accept/reject action Use FunnelKit’s Accept/Reject widgets, links, or shortcodes
    Accept clicked, no charge, in testing Saved test card behaving differently from a fresh one Re-test with a fresh card entered at checkout
    No charge even with a fresh card Gateway tokenization / save-cards config, or unsupported gateway Check one-click gateway settings; confirm gateway support
    Acceptors and decliners land on wrong page Dynamic Offer Path not set in the offer settings Set accept/reject paths (offer settings, 2+ offers)
    Works for you but “not for customers” Testing as admin or on a cached page Test incognito, logged out, fresh card
    Store takes no money at all Left in test/sandbox mode Switch back to live; confirm live keys serving

    If the bump on your checkout is the thing that’s missing rather than the upsell, that’s a different (and also common) problem — see FunnelKit order bump not showing? The 9 reasons and how to fix each. And if you’re still building the offer ladder, start with how to set up a FunnelKit order bump. The full checkout-to-upsell architecture is in The Missing Manual for FunnelKit.


    Grab the free FunnelKit Resources kit. Includes the one-click-upsell build-and-test checklist, the fresh-card test protocol, the order-bump setup checklist, and a pre-launch QA list so nothing ships with a dead button or an untested charge. One download. Get the kit →


    Frequently asked questions

    Why does my FunnelKit upsell get accepted but never charged? An easy-to-miss cause is testing with a saved card, which can behave differently from a freshly entered one depending on your gateway. Re-test with a fresh card entered at checkout; a normal fresh-card checkout is the cleanest test case, so the failure is often a test artifact. If a fresh card also fails, check that your gateway supports card tokenization for one-click upsells.

    Why doesn’t my one-click offer page show up after checkout? Usually the offer page was never fully built, the step isn’t in the funnel path, or the Accept/Reject controls were rebuilt as plain HTML that isn’t wired to FunnelKit’s accept/reject action. Build the page through the funnel step’s Edit Template, keep FunnelKit’s Accept/Reject controls (widgets, links, or shortcodes), and attach the product on the offer’s Products tab.

    Do I need a specific payment gateway for one-click upsells? You need a gateway that supports card tokenization — storing the payment method and charging it again without re-entering details. Card gateways built for this (such as Stripe) support it; some payment methods cannot charge a second time without customer involvement. Manual payment methods sidestep the requirement because there’s no automatic second charge. Confirm your gateway is supported for FunnelKit one-click upsells before assuming the feature is broken.

    Where do I set where acceptors and decliners are sent? Through FunnelKit’s Dynamic Offer Path, in the offer settings, after the offer’s products are configured. The accept and reject paths become available when the step holds more than one offer (for example an upsell plus a downsell).

    Why does the upsell work for me but not for customers? First rule out admin-session and cache artifacts — testing as admin or on a cached page can show behavior a real buyer never sees. Test in an incognito window, logged out, with a fresh card, and verify the charge in your payment processor’s dashboard rather than the WooCommerce order screen.

    The order screen shows a smaller refundable amount than I expect — did the upsell fail? Not necessarily. The WooCommerce order display can show numbers that look like a failure when the charge actually succeeded as a separate transaction. Check your payment processor’s charge list before concluding the upsell didn’t charge.

    Sources

    Verified live as of June 2026:


    Brian Kasday writes The Operator’s Library for MMS Vegas — production-grade reference manuals for the tools small operators actually run. The Missing Manual for FunnelKit is the long-form companion to articles like this one.


    Brian Kasday writes The Operator’s Library for MMS Vegas — production-grade reference manuals for the tools small operators actually run.

  • How to Set Up a FunnelKit Order Bump: The Complete Step-by-Step Guide

    Last updated: June 2026

    Table of contents

    1. The 30-second answer
    2. What an order bump is, and where it lives
    3. Before you start: two prerequisites
    4. How to set up a FunnelKit order bump, step by step
    5. Where the bump shows on your checkout
    6. Display rules: showing the bump to the right buyers
    7. Pricing the bump so it actually converts
    8. Testing the bump before you trust it
    9. Common mistakes that quietly cost you bumps
    10. Frequently asked questions
    11. Sources

    If you’re trying to set up a FunnelKit order bump, you’re working on one of the highest-leverage things you can add to a WooCommerce checkout. It’s a small offer that sits right on the checkout page with a checkbox — one click and the buyer adds it to the order they’re already paying for. No second checkout, no second card entry. The buyer is already holding their wallet, which is exactly why a well-placed bump converts when a standalone offer wouldn’t.

    This guide walks through how to set up a FunnelKit order bump from an empty checkout to a tested, live offer — including the three settings that quietly decide whether your bump ever appears, and how to price it so people actually tick the box. It’s the version I wish I’d had the first time, instead of clicking around hoping the offer would show up on the front end.

    The 30-second answer

    To set up a FunnelKit order bump, you add a bump row to a FunnelKit checkout, choose the product, override its price, write the offer copy, and set where and to whom it shows. The short path:

    1. Go to FunnelKit → Store Checkout (or open a specific funnel’s checkout step) and make sure that checkout is enabled.
    2. Add an Order Bump and pick the product you want to offer.
    3. In the bump’s Products tab, set a price override — the discounted bump price.
    4. In the Design tab, write both the bump title/description and the checkbox CTA label (they’re separate fields).
    5. In the Rules tab, leave “No Rules” to show it on every order, or add a condition to target it.
    6. Set the bump’s position, save, and test on a live checkout in an incognito window.

    The one setting people forget: a FunnelKit bump has two separate copy areas — the title/description shown inside the checkout panel, and the checkbox CTA label — and some imported skins or templates may still contain placeholder copy in the title/description. If you set only the CTA and save, your live checkout can show filler text where your offer pitch should be. Always set both, then load the live page to confirm.

    What an order bump is, and where it lives

    An order bump is a pre-purchase offer. It appears on the checkout page itself, before the customer clicks Place Order. They see a small panel — usually a short headline, a sentence or two of pitch, and a checkbox — and ticking the box adds the bump product to the same order at the price you set. Because it rides along with a purchase the buyer has already committed to, it carries almost no friction. That’s the whole reason it works.

    In FunnelKit, order bumps are a checkout feature. They are configured as rows inside a FunnelKit checkout — either your global Store Checkout or the checkout step of a dedicated funnel. They appear only on the checkout FunnelKit controls — your Store Checkout or a specific funnel checkout step. If another checkout page, plugin, or block is what your traffic actually hits, that FunnelKit bump will not render there, no matter how carefully you build it. That distinction matters later when you test.

    One more thing worth knowing up front: a bump is a pre-purchase offer, which makes it different from a one-click upsell. The upsell fires after Place Order, on its own page, before the thank-you page. The bump lives on the checkout. They’re complementary — many stores run a bump on the checkout and an upsell right after — but they’re built and configured in different places.

    Before you start: two prerequisites

    Two things need to be true before a bump can work, and confirming them now saves you a confusing debugging session later.

    1. The bump product has to exist as a real, purchasable WooCommerce product. FunnelKit offers an existing product at an overridden price; it doesn’t invent one. So the thing you want to bump must already be a product in your catalog, in stock (or set to allow purchase), and not hidden in a way that blocks it from being added to a cart. If the product isn’t purchasable, the bump can fail to render with no error.

    2. You have to be editing the checkout your customers actually use. If you run a single global Store Checkout, that’s where the bump goes. If you’ve built a dedicated product or sales funnel with its own checkout step, the bump belongs on that funnel’s checkout — and it’ll only show when buyers arrive through that funnel’s link. A bump built on Funnel A will never appear on Funnel B’s checkout. Decide which checkout this offer belongs on before you start clicking.

    How to set up a FunnelKit order bump, step by step

    Here’s the full sequence to set up a FunnelKit order bump from scratch.

    Step 1 — Open the checkout. Go to FunnelKit → Store Checkout for the global checkout, or open your funnel and select its checkout step. Confirm the checkout is enabled (there’s a toggle near the top). Order bumps and one-click upsells are managed as rows attached to this checkout.

    Step 2 — Add an order bump. Find the Order Bumps section and add a new bump. FunnelKit will usually start you from a template layout. Treat the template as scaffolding, not finished copy — you’ll be replacing any placeholder text in a later step.

    Step 3 — Choose the product. In the bump’s Products tab, select the WooCommerce product you want to offer. This is the item that gets added to the order when the buyer ticks the box.

    Step 4 — Set the price override. Still in the Products tab, set the price override. This is the discounted bump price, and it overrides the product’s normal listed price for this bump only. The product keeps its regular price everywhere else on your store. (More on choosing the number in the pricing section below.)

    Step 5 — Write the offer copy. Open the Design tab. There are two distinct copy areas here, and confusing them is one common setup mistake: the bump title and description (the pitch shown inside the checkout panel) and the CTA / checkbox label (the short line next to the tickbox). Write both. Some imported skins or templates may leave placeholder copy in the title/description, so setting only the CTA can leave that filler live on your checkout.

    Step 6 — Set display rules (optional). Open the Rules tab. Leaving it on “No Rules” shows the bump on every order. If you want to target it — only when a particular product is in the cart, only above a certain cart total — add a rule here. Covered in detail below.

    Step 7 — Choose the position and save. Set where the bump renders on the checkout (see the next section), then save. Saving in the editor isn’t proof it works — the only proof is loading the live checkout, which is Step 8.

    Step 8 — Test on a live checkout. Open your checkout in a private/incognito window, add a qualifying product to the cart, and confirm the bump appears with your real copy and your real price. Don’t skip this. Testing while logged in as admin, or on a cached page, is how a perfectly good bump gets reported as “not showing.”

    Building a full funnel, not just one bump? The free FunnelKit Resources kit includes a checkout-and-bump setup checklist, copy templates for high-converting bumps, and a pre-launch QA list so nothing ships with placeholder text. Get the kit →

    Where the bump shows on your checkout

    This is where a lot of older tutorials get it wrong, so be careful what you copy. FunnelKit does not lock every bump into a single fixed spot. Each bump has a position setting, and FunnelKit supports multiple placement options on the checkout — and lets you set the position independently for desktop and mobile.

    Practically, that means you choose where this particular bump appears relative to the other checkout elements (for example, near the order summary, after the customer details, or close to the payment area), and you can give it one position on desktop and a different one on mobile if that reads better on a phone. Rather than memorizing a “default” location, open the bump’s position setting, pick the placement, save, and then look at the live checkout on both a desktop browser and a phone to confirm it lands where you intended.

    If you’re running more than one bump on the same checkout, their positions, rules, and any multi-bump settings all matter — check the live page with a qualifying cart to see the real stacking, because the editor preview doesn’t always reflect rule-driven visibility.

    Display rules: showing the bump to the right buyers

    The Rules tab is what turns a bump from “show this to everyone” into “show this to the people it actually fits.” A few patterns worth knowing:

    • No Rules — the bump shows on every order through this checkout. Fine for a universal add-on that suits any buyer.
    • Cart-contents rules — show the bump only when a specific product (or one of a set) is in the cart. This is how you make the bump relevant: offer the matching accessory, refill, or companion product to the thing they’re buying.
    • Cart-total rules — show the bump only above or below a threshold, so you’re not pitching a $40 add-on on a $15 order.

    A rule that’s stricter than you realize is a leading cause of “my bump isn’t showing.” If you add a condition, test with a cart that genuinely satisfies it — the right product in the cart, the cart total above your floor — or the bump will correctly hide and look broken. Treat any non-obvious disappearance as a rule to re-read, not a bug. (There’s a full troubleshooting walkthrough for that in our companion guide, linked at the end.)

    Pricing the bump so it actually converts

    A bump lives or dies on being an easy yes. The buyer should be able to look at it for two seconds and think “sure, why not.” That points you toward a few principles rather than one magic number:

    Keep it low relative to the order. A bump is an impulse add-on, not a second major purchase. As a rule of thumb, a bump priced well below the main order — often a small fraction of the cart — reads as a no-brainer, while a bump that rivals the order total reads as a decision, and decisions kill impulse adds. (If your offer needs a real decision, it probably belongs as a one-click upsell after checkout, not as a bump.)

    Make the discount visible and real. The price override lets you show the bump well under its normal price. A genuine markdown from the product’s standard price gives the buyer a concrete reason to act now — this is the one time they’ll get it at this price, bundled with what they’re already buying.

    Match the bump to the cart. The most reliable lever isn’t price at all — it’s relevance. A bump that obviously complements what’s in the cart will out-convert a random discounted product every time, which is exactly what the cart-contents display rules above are for.

    Don’t over-think the exact figure on day one. Pick a price that feels like an easy yes, ship it, and watch the take rate. The bump is one of the few things on your checkout you can safely tune after launch without disrupting anything else.

    Testing the bump before you trust it

    Treat the live test as part of the build, not an optional last step. The editor preview can look perfect while the live checkout shows something different, because caching, display rules, and your own logged-in admin session all change what renders.

    The reliable test: open your checkout in a private/incognito window, add a product that qualifies under your rules, and walk the checkout as a real buyer would. Confirm four things — the bump appears, the copy is your copy (no leftover placeholder), the price is your overridden price, and ticking the box actually adds the product to the order total. If anything’s off, start with three common causes: you’re on a cached page, you’re logged in as admin, or a display rule is excluding your test cart. Clear those and re-test.

    Bump still not appearing after all this? There are about nine separate reasons a FunnelKit bump fails to show on the front end, and they look identical from the outside. Our companion guide walks each one down in order of likelihood: FunnelKit order bump not showing? The 9 reasons and how to fix each.

    Common mistakes that quietly cost you bumps

    None of these throw an error. They just leave money on the table.

    Leaving placeholder copy live. Setting the CTA label but not the title/description can leave filler text on your checkout if the template shipped with it. Always set both copy areas and confirm on the live page.

    Building the bump on the wrong checkout. A bump on the global Store Checkout won’t show on a dedicated funnel’s checkout step, and vice versa. Make sure the bump lives on the checkout your traffic hits.

    A display rule that’s too tight. A rule no test cart satisfies makes a working bump look broken. Test with a cart that meets the condition.

    Pricing it like a second purchase. A bump priced near the order total stops being an impulse add. Keep it an easy yes, or move the offer to a post-purchase upsell.

    Never testing on a live, logged-out checkout. The editor preview is not proof. The incognito test is.

    Set up the way described here — right product, real discount, both copy areas filled, a sensible position, rules that match a real cart, and a logged-out test — and you’ve removed the common setup problems that keep bumps from earning. The full bump-and-upsell offer architecture, including how to sequence a bump into a complete checkout funnel, is covered in The Missing Manual for FunnelKit.


    Grab the free FunnelKit Resources kit. Includes the checkout-and-bump setup checklist, swipeable bump copy, the one-click-upsell wiring guide, and a pre-launch QA list so nothing ships with placeholder text or a broken offer. One download. Get the kit →


    Frequently asked questions

    Where do I add an order bump in FunnelKit? Order bumps are configured as rows inside a FunnelKit checkout. For a single store-wide checkout, go to FunnelKit → Store Checkout and add the bump there. If you’re using a dedicated funnel, open that funnel’s checkout step and add the bump to it — it will only show on that funnel’s checkout.

    Can I show different order bumps to different customers? Yes. Each bump has a Rules tab. Leaving it on “No Rules” shows the bump on every order. Adding a rule lets you show a bump only when a specific product is in the cart, or only above or below a cart-total threshold, so you can target each bump to the buyers it fits.

    Where does the order bump appear on the checkout page? It appears in the position you configure for that bump. FunnelKit supports multiple placement options and lets you set the position separately for desktop and mobile, so the correct way to confirm placement is to set the bump’s position, save, and view the live checkout on both a desktop browser and a phone.

    How do I set the discounted bump price? In the bump’s Products tab, set a price override. That value replaces the product’s normal listed price for this bump only; the product keeps its regular price everywhere else on your store.

    Why isn’t my order bump showing on the checkout? The most common causes are testing on a cached page, testing while logged in as admin, a display rule the test cart doesn’t satisfy, the bump being built on a different checkout than the one you’re viewing, or the bump product not being purchasable. Test in an incognito window with a qualifying cart first; our companion guide covers all nine causes in order.

    What’s the difference between an order bump and a one-click upsell? An order bump is a pre-purchase offer shown on the checkout page with a checkbox, added before the customer clicks Place Order. A one-click upsell is a post-purchase offer shown on its own page after Place Order and before the thank-you page, accepted with a single click that appends it to the order already placed.

    Sources

    Verified live as of June 2026:


    Brian Kasday writes The Operator’s Library for MMS Vegas — production-grade reference manuals for the tools small operators actually run. The Missing Manual for FunnelKit is the long-form companion to articles like this one.


    Brian Kasday writes The Operator’s Library for MMS Vegas — production-grade reference manuals for the tools small operators actually run.

  • FunnelKit Order Bump Not Showing? The 9 Reasons and How to Fix Each One

    Last updated: June 2026

    Table of contents

    1. The 30-second answer
    2. First, confirm it’s actually a FunnelKit checkout
    3. The nine reasons a bump doesn’t show
    4. When the bump shows but looks broken
    5. The diagnostic order that finds it fastest
    6. Quick reference: symptom to cause
    7. Frequently asked questions
    8. Sources

    If your FunnelKit order bump is not showing on the checkout, you’re in a frustratingly common spot: you built the bump, set the product and the discounted price, wrote the copy, and saved — then loaded the checkout to admire it and… nothing. No error, no warning — just a normal checkout page with no offer on it.

    This is one of the most common FunnelKit support questions, and the frustrating part is that “the bump isn’t showing” has about nine different causes that all look identical from the front end. The good news: every one of them is quick to check, and they fall in a predictable order of likelihood. Work down this list and you’ll find yours — usually in the first three.

    The 30-second answer

    An order bump fails to appear for one of nine reasons, in rough order of how often they’re the culprit:

    1. You’re not on the checkout where that FunnelKit bump is configured — a different checkout is handling the page.
    2. The bump (or the funnel) is saved but not enabled/published.
    3. A display rule on the bump excludes the cart you’re testing with.
    4. The bump product is already in the cart.
    5. The bump product isn’t purchasable — out of stock, unpublished, hidden, or has no price.
    6. A page cache is serving an older version of the checkout.
    7. Theme or third-party CSS/JavaScript is hiding it or breaking the checkout render.
    8. You’re testing logged in as admin, or in a session that doesn’t meet the rules.
    9. The bump is on a different checkout than the one your traffic actually hits.

    The fastest first move: open your checkout in a private/incognito window with a qualifying product in the cart. Many “bump not showing” reports resolve right here — the bump was rendering the whole time, but a cached page or a logged-in admin session was hiding it from you.

    First, confirm it’s actually a FunnelKit checkout

    Order bumps are a FunnelKit checkout feature. They render on the checkout page that FunnelKit controls — nowhere else. If your store is still serving WooCommerce’s default checkout (or the newer block-based checkout, or a checkout from another plugin), there is no slot for a FunnelKit bump to appear in, no matter how perfectly you configured it.

    So before you debug anything else, confirm the page you’re testing is the FunnelKit one. In FunnelKit → Store Checkout, the checkout has to be enabled with the toggle at the top right. If you’re using a dedicated Product Funnel instead of the global Store Checkout, the bump lives on that funnel’s checkout step, and you have to reach it through the funnel’s own link — not the generic /checkout/ URL. A bump configured on funnel A will never show on funnel B’s checkout. This mismatch — bump on one checkout, traffic landing on another — is reason nine on the list above, and it’s worth ruling out first because it makes every other check pointless.

    The nine reasons a bump doesn’t show

    1. You’re not on the checkout where the bump is configured

    Covered above — this is the single most common cause. FunnelKit’s Store Checkout has to be toggled on and set as the active checkout. If a block checkout or another checkout plugin is intercepting the page, FunnelKit never gets to render. Fix: enable the FunnelKit Store Checkout and make sure no competing checkout plugin is overriding it.

    2. The bump or the funnel isn’t enabled

    A bump can be fully built and still be switched off. Inside Store Checkout, the order-bump row has its own enable state, and the checkout itself has the master toggle. Save is not the same as enable — it’s entirely possible to save a beautifully configured bump that’s sitting there disabled. Open the bump step, confirm it’s active, confirm the checkout is active, and re-save.

    3. A display rule is excluding your test cart

    The bump’s Rules tab controls which orders see it. If it’s set to No Rules, the bump shows on every order. But the moment you add a rule — “only show when cart contains product X,” “only when cart total is over $50,” “only for a specific category” — the bump becomes conditional, and a test cart that doesn’t meet the condition will (correctly) hide it.

    This is the cause people miss most, because the configuration is working exactly as designed — the bump just isn’t meant to show for the cart you happened to test with. Open the Rules tab, read the condition out loud, and build a cart that satisfies it. If you want the bump on everything while debugging, switch it to No Rules temporarily.

    4. The bump product is already in the cart

    If the bump product is already in the cart — including from a previous test where you added it to “see if it works” — the bump may suppress itself. Empty the cart, add a different qualifying product, and reload. This is worth testing explicitly if “Hide Order Bump after Selection” or a product-replacement behavior is in play, since both change what shows once an offer has been accepted or the same item is present by another route.

    5. The bump product isn’t purchasable

    A bump can only offer a product WooCommerce considers buyable. If the bump product is out of stock, set to “hidden” in catalog visibility, unpublished, has no price, or is a product type the bump doesn’t support, FunnelKit has nothing valid to show and skips it silently. Check the bump product directly in WooCommerce: is it published, in stock, and priced? A draft or out-of-stock product is a common silent killer here.

    6. A page cache is serving an old checkout

    If you added the bump after a caching layer had already stored your checkout page, visitors (and you) get served the cached copy — the one without the bump. This is especially common on managed WordPress hosts and with caching plugins or a CDN like Cloudflare in front of the site. Clear your page cache (and CDN cache) after any checkout change, and always verify in an incognito window, which is more likely to bypass the cache. As a rule, checkout and funnel pages should be excluded from caching entirely — dynamic, per-session pages have no business being cached.

    7. Theme or plugin CSS/JavaScript is interfering

    Two flavors here. The bump can render in the HTML but be hidden by aggressive theme CSS, or a JavaScript error from the theme or another plugin can break the checkout render partway through so the bump never paints. FunnelKit has an Advanced setting that controls whether your theme’s CSS/JS loads on the checkout, upsell, and thank-you pages — on conflict-prone themes, turning the theme’s styles off on those pages both fixes layout bleed and removes a class of script conflicts. To diagnose: open the browser console on the checkout and look for red JavaScript errors, and use “inspect element” to see whether the bump markup is present-but-hidden versus genuinely absent. Present-but-hidden is a CSS problem; genuinely absent points back up the list to rules, caching, or the wrong checkout.

    8. You’re testing as a logged-in admin

    Admin sessions behave differently: they often bypass caching (so you see stale state in the other direction), they can sit inside a cart you set up earlier that violates a rule, and they don’t represent what a fresh customer sees. The cure is the same incognito, logged-out test from the 30-second answer. Always confirm bump behavior as an anonymous visitor before concluding anything.

    9. The bump is attached to a different checkout

    If you run both a global Store Checkout and one or more dedicated Product Funnels, a bump you set on one will not appear on the others. Confirm the bump is attached to the exact checkout your customers actually land on. For funnel traffic, use the funnel’s generated link; for store traffic, the bump belongs on the global Store Checkout.

    Skip the guesswork on the copy itself. The free 5 Order Bump Templates kit gives you five copy-ready FunnelKit bumps — headline, description, and exact setup for each — plus a bump-selection matrix so you put the right bump on the right offer, and a take-rate scorecard to track what’s working once it’s live. Get the templates →

    When the bump shows but looks broken

    A close cousin of “not showing” is “showing, but wrong” — and the fix is different, so it’s worth separating.

    The most common version: your live checkout shows the bump, but the headline and description read like placeholder gibberish (“Exclusive Offer” / Latin lorem ipsum) instead of your copy. This happens because a FunnelKit bump has two separate copy areas that are easy to confuse. The CTA button label is set in one place; the title and description shown inside the checkout form are set in another (Design → Content). Some imported skins or templates may still have placeholder title/description copy. If you only edited the CTA label, the visible pitch can still be Latin on the live page. Set both, save, and QA the live checkout — not the editor preview, the actual front-end page — before you call the bump done.

    The other “looks wrong” case is the price. The bump’s discounted price is set in its Products tab and overrides the product’s normal price. If the bump is showing full price, you set the product but not the price override.

    The diagnostic order that finds it fastest

    Don’t check randomly. Run them in this order and you’ll isolate the cause in a couple of minutes:

    1. Incognito + qualifying cart. Rules out caching and the logged-in-admin artifact in one move.
    2. Confirm the checkout. Are you on the FunnelKit Store Checkout (or the right funnel’s checkout), with it enabled?
    3. Confirm the bump is enabled, not just saved.
    4. Read the Rules tab. Does your test cart actually satisfy the condition? Set to No Rules to test.
    5. Change the cart product so it isn’t the same as the bump product, and confirm the bump product is published, in stock, and priced.
    6. Inspect the page. Markup present-but-hidden means CSS; markup absent means go back to steps 2–5. Check the console for JS errors.

    If you’ve cleared all six and the bump still won’t appear, you’re into genuine conflict territory — deactivate other plugins one at a time on a staging copy to find the offender, and check FunnelKit’s own status/logs.

    Quick reference: symptom to cause

    What you see Most likely cause Fix
    No bump anywhere, on any cart Wrong checkout / bump or checkout disabled Enable FunnelKit Store Checkout; enable the bump
    Bump shows on some carts, not others Display rule on the Rules tab Read the rule; build a qualifying cart or set No Rules
    No bump only when one product is in cart Bump product already in cart Use a different product as the cart item
    You see no bump, customers report seeing it Cache / logged-in admin session Test in incognito; clear page + CDN cache
    Bump space is blank but page looks fine Theme CSS hiding it, or JS error Inspect element; disable theme CSS on checkout
    Bump shows Latin placeholder text Title/description never edited Set both title/description AND the CTA label
    Bump shows full price Price override not set Set the discounted price in the Products tab

    The complete order-bump reference — rules logic, multi-bump rotation, and the upsell mechanics that pair with bumps — is covered in The Missing Manual for FunnelKit.


    Grab the free 5 Order Bump Templates kit. Five copy-ready FunnelKit order bumps with headline, description, and setup for each, plus a bump-selection matrix and a take-rate scorecard. One download. Get the kit →


    Frequently asked questions

    Why is my FunnelKit order bump not showing on the checkout? The most common reasons are that the FunnelKit Store Checkout isn’t the active checkout, the bump or checkout is saved but not enabled, a display rule on the Rules tab excludes your test cart, or the bump product is already in the cart. Test in an incognito window with a qualifying product first — that rules out caching and logged-in-admin artifacts, which account for a large share of reports.

    Where do order bumps appear on the FunnelKit checkout? Order bumps appear wherever that bump’s display position is set — FunnelKit offers multiple positions, including above or below the order summary, above or below the payment gateways, above the checkout form, or inside the mini cart, with separate position options for mobile. If your bump is configured but invisible, check its Display Position setting. Bumps only appear on the checkout FunnelKit controls — the global Store Checkout or a specific Product Funnel’s checkout step — not on WooCommerce’s default or block checkout.

    Why does my bump show on some orders but not others? Almost always a display rule. The bump’s Rules tab can restrict it to carts containing a certain product, over a certain total, or in a certain category. Carts that don’t meet the condition correctly hide the bump. Set the rule to No Rules to confirm, then re-add the condition you actually want.

    Why is my order bump showing “Exclusive Offer” or placeholder text? The bump’s title and description are a separate field from its CTA button label, and some imported skins or templates may still have placeholder title/description copy. If you only edited the CTA label, the live checkout still shows the placeholder. Edit both, save, and check the live front-end page.

    Could caching be hiding my order bump? Yes. If a page cache or CDN stored the checkout before you added the bump, visitors get the old cached page without it. Clear the page cache and CDN cache after any checkout change, and exclude checkout and funnel pages from caching entirely — they’re dynamic and shouldn’t be cached.

    Does the bump product need to be in stock? Yes. A bump can only offer a product WooCommerce considers purchasable. If the bump product is out of stock, unpublished, hidden in catalog visibility, or has no price, FunnelKit skips it silently. Confirm the product is published, in stock, and priced.

    Sources

    Verified June 2026:

    • FunnelKit — Order Bumps documentation: https://funnelkit.com/docs/orderbumps/
    • FunnelKit — Set the Display Position of Order Bumps: https://funnelkit.com/docs/orderbumps/products/set-display-position/
    • FunnelKit — Rules (Order Bump): https://funnelkit.com/docs/orderbumps/rules/
    • FunnelKit — Creating a Store Checkout: https://funnelkit.com/docs/funnel-builder/getting-started/creating-a-store-checkout/

    Brian Kasday writes The Operator’s Library for MMS Vegas — production-grade reference manuals for the tools small operators actually run. The Missing Manual for FunnelKit is the long-form companion to articles like this one: https://mmsvegas.com/missing-manual-funnelkit/