- A fixed bundle. One button buys every product you list.
- A chooser. Your page shows options (1, 3 or 6 bottles, a cream, a gift box) and the buyer picks. You build the layout;
window.ef.upsellkeeps the selection and buys it.
The tag
prod1, prod3 and prod5.
[UPSELL_DECLINE] on the same page works as usual: it skips the offer and continues the funnel.
The tag also decides what the page is allowed to sell. A chooser can only pick products listed in the tag, at most at the quantity the tag allows (
max_qty, or the quantity written next to the code). Anything else is refused and the card is not charged. Prices always come from your product catalog, never from the page.Let the buyer choose: window.ef.upsell
Keep the tag on your buy button. Your chooser tells window.ef.upsell what is selected, and the same button then buys the selection. The tag’s link carries the funnel, page and click details, so the sale is attributed and the funnel continues exactly as with a plain [UPSELL=X] button.
If the selection is empty, or holds something the tag does not offer, the button does nothing and an
error event fires with the code, so you can show your own message.
Example: 1, 3 or 6 bottles
max_qty and let the buyer add what they want:
ef.upsell.buy() from your own UI.
What gets recorded
- One charge for the total of the selection, with shipping and tax worked out per product, on the card from the first order.
- One order with one line per product and its quantity. Fulfillment, order sync, refunds and reports see each product as its own line.
- The upsell-accept event, your conversion postbacks (Meta, RedTrack and others) and the thank-you page get the full total and every product.
- A double click, a second tab or a reload charges once. The second request gets the first result.
- A declined card charges nothing and records no order. The buyer goes to your decline step, as with a single upsell.
Limits
Supported merchants: NMI (also Apple Pay saved on NMI), Stripe, the Test merchant and the card gateways added through plug-ins. Authorize.Net, PayPal, Klarna, Shop Pay and the networks refuse a multi selection. The card is never charged when the upsell is refused, and
buy() gives you the code and a message you can show.
A selection of one product at quantity 1 is a normal upsell, identical to [UPSELL=X].