Tag: troubleshooting

  • 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.

  • 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/