Skip to content

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.

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.

  • WordPress 6.0+
  • WooCommerce 8.0+
  • PHP 7.4+
  • Swft Checkout active
  1. Install the Swft Funnels plugin from your Swft dashboard’s downloads section.
  2. Activate it.
  3. Go to WooCommerce → Swft → Funnels.
  1. Click Add funnel step.
  2. Choose the product to offer (the search box uses an AJAX product search across all WooCommerce products).
  3. Write the headline (e.g. “Add a 2-year warranty for £19”).
  4. Write supporting copy explaining the offer.
  5. Set the discount: a percentage off, a fixed amount off, or leave blank for the standard price.
  6. Save.

Funnels are evaluated in the order you create them. Reorder by drag-and-drop.

After the shopper pays for their main order:

  1. Funnel step 1 appears. They click Add to order or No thanks.
  2. If they accept, the offer product is added to their order using their stored payment method (no re-entry of card details).
  3. Funnel step 2 appears. Repeat.
  4. 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.

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.

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