Swft Funnels
Add post-payment upsell sequences to Swft Checkout. After the shopper completes payment, they see one or more targeted offers — each accepted with a single click against the payment method they just used — before landing on the confirmation screen.
Swft Funnels is free.
What it does
Section titled “What it does”Each funnel step is a single product offer with:
- A headline and supporting copy.
- A product (or product variation).
- An optional discount (percentage or fixed amount off the standard price).
Shoppers see a sequence of these screens after payment. Each is a yes/no choice: accept the offer and one-click charge to the same payment method, or skip to the next step. The last screen is the standard order confirmation.
Funnels are ideal for warranty add-ons, related products, subscription upsells, or simple “would you like to add X for £Y?” upsells.
Prerequisites
Section titled “Prerequisites”- WordPress 6.0+
- WooCommerce 8.0+
- PHP 7.4+
- Swft Checkout active
Installation
Section titled “Installation”- Install the Swft Funnels plugin from your Swft dashboard’s downloads section.
- Activate it.
- Go to WooCommerce → Swft → Funnels.
Configuring a funnel
Section titled “Configuring a funnel”- Click Add funnel step.
- Choose the product to offer (the search box uses an AJAX product search across all WooCommerce products).
- Write the headline (e.g. “Add a 2-year warranty for £19”).
- Write supporting copy explaining the offer.
- Set the discount: a percentage off, a fixed amount off, or leave blank for the standard price.
- Save.
Funnels are evaluated in the order you create them. Reorder by drag-and-drop.
Customer experience
Section titled “Customer experience”After the shopper pays for their main order:
- Funnel step 1 appears. They click Add to order or No thanks.
- If they accept, the offer product is added to their order using their stored payment method (no re-entry of card details).
- Funnel step 2 appears. Repeat.
- After the last step (or after a “skip” on the first step), the standard Swft confirmation screen renders.
The original order is updated with any accepted offers; the shopper sees a single combined order in their email confirmation.
How it works under the hood
Section titled “How it works under the hood”The plugin hooks swft_session_extensions to attach the funnel configuration to each session. After the main payment succeeds, the Swft API recognises the funnels extension and routes the shopper through /upsell screens before /confirmation.
Accepted offers are charged against the stored payment method via Stripe (Stripe-only for now; PayPal and NomuPay funnels are not yet supported). The charge re-uses the existing PaymentIntent’s payment method.
Funnel configuration is stored as JSON in the swft_funnels_config WordPress option.
Gotchas
Section titled “Gotchas”- Funnels only work with Stripe today. PayPal and NomuPay payments skip the funnel and go straight to confirmation.
- Offered products must be purchasable and in stock at the moment the funnel renders.
- Discounts apply to the offered product only — they don’t stack with cart-level discounts.
- If a one-click upsell charge fails (declined card, expired auth), the funnel skips that step and continues. The shopper isn’t shown the failure.
- Don’t put more than 2-3 funnel steps in a row. Conversion data shows fatigue past that point.