A BuyGoods vendor can run the whole funnel on ElasticFunnels without leaving BuyGoods. BuyGoods keeps the checkout, the payment processing, the affiliates and the payouts. ElasticFunnels runs the presell, the sales page and the upsell pages, and receives every BuyGoods order, refund and chargeback through the vendor postback, with the buyer's details.
Each sale lands on the visitor's session, so you see which ad, which affiliate and which page variant earned it. See also the BuyGoods integration.
This guide is for BuyGoods vendors, the product owners who sell on BuyGoods. If you promote BuyGoods offers as an affiliate, see the BuyGoods affiliate integration instead.
I spent nine years as a CTO building the layer between the ad and the order, from the funnel system and attribution to the CRM and the call center. For a vendor, the network should keep doing what it's good at, and you should own everything the buyer sees before and after the checkout, plus the record of which page earned each sale. That split is what this guide is about.
Who does what: BuyGoods and ElasticFunnels
BuyGoods describes itself as a performance marketplace for health and wellness vendors and affiliates, with its own checkout, analytics and payouts (BuyGoods). None of that moves. ElasticFunnels adds everything the buyer sees before and after the checkout, and the data that ties the two together. I wouldn't move anything in the BuyGoods column below. The gains are all in the other one.

| Job | Who runs it |
|---|---|
| Checkout, card processing, payouts | BuyGoods |
| Affiliate marketplace and commissions | BuyGoods |
| Presells, advertorials, VSL and sales pages | ElasticFunnels |
| Split tests of those pages | ElasticFunnels |
| Upsell and downsell pages | ElasticFunnels pages, charged by BuyGoods |
| Orders, refunds and chargebacks per ad, affiliate and page | ElasticFunnels, from the BuyGoods vendor postback |
| Customer records, automations, calling abandoned checkouts | ElasticFunnels, from BuyGoods IPNs |
The funnel, end to end
A typical BuyGoods funnel on ElasticFunnels runs like this. The ad or the affiliate link sends the visitor to a presell or advertorial. That page warms them up and passes them to the VSL or sales page. The buy button sends them to the BuyGoods checkout for your product. After the order, BuyGoods returns them to your upsell pages. In the background, BuyGoods posts the order back to ElasticFunnels.

One buy tag, whatever the cart
The buy button on an ElasticFunnels page is a tag, not a pasted checkout URL:
<a href="[BUY=vitality-6-bottles]">Order now</a>
When the page is served, the tag becomes the real checkout link for the merchant that page is using, with the product ID mapped for that platform in the product's merchant settings. For a BuyGoods vendor that means the BuyGoods checkout for your BuyGoods product ID, with the affiliate's ID and the visitor's ID carried through, so the affiliate gets credit and the order can find its way back to the session. [UPSELL] and [DOWNSELL] work the same way on the upsell pages.
The merchant comes from the domain by default, and a page event can set it per visitor, for example by country. So the pages you build are not tied to one checkout: the same funnel keeps working if a product is sold through a different merchant later, without rebuilding a page. If you sell on more than one network, the same setup works for ClickBank and Digistore24. ElasticFunnels for vendors shows the whole vendor stack.
Split test pages without breaking the affiliate's link
Affiliates promote one link. If testing a new presell means a new URL, every affiliate has to swap links, and your own ads go back into learning. Picture asking forty affiliates to update a link for a test that might lose. Some won't bother, and then half the traffic you think is in the test is still on the old page. So I'd never test a vendor page at a new URL. ElasticFunnels split tests under one URL: the variant is picked on the server before the page loads, so the link never changes.

Because each BuyGoods order is matched to the visitor's click, the sale records which variant the buyer saw. You compare variants on real orders instead of on clicks to the checkout button. See split testing for how the variants are served.
Upsells: your pages, BuyGoods' one click
The upsell and downsell pages live on ElasticFunnels, so you build and test them like any other page. While the buyer's purchase session is active, the [UPSELL] button has BuyGoods charge the upsell in one click, with no second checkout. The decline link can point to a downsell, and the chain can run upsell, downsell, thank-you. If a buyer lands on an upsell page with no active session, the link falls back to the normal checkout instead of failing. New to the terms? See what is an upsell.
What a BuyGoods vendor gets in the postback
As the vendor, you get the full order from BuyGoods. ElasticFunnels saw the click, so it adds the part BuyGoods cannot know, which is the ad set, the presell and the headline test that sent the buyer. For me that join is the most valuable thing in this whole setup. An order without its click tells you that you sold something. An order with its click tells you what to do tomorrow.
| From the BuyGoods vendor postback | Joined from the visitor's click in ElasticFunnels |
|---|---|
| Event: new order, refund, cancel, chargeback, commission void | Funnel and page |
| Order IDs, amount, taxes, shipping, currency | Split test variant |
| Buyer name, email, phone, billing and shipping address | UTM source, campaign and content |
| Affiliate ID and name, affiliate and merchant commission | Country, device and browser |
| Card last 4, refund amount, chargeback fee | The session, with every page it visited |
Refunds and chargebacks arrive as their own entries on the customer's record.
Customers, automations and the call center
Every BuyGoods order arrives as a full order record in ElasticFunnels, with the buyer's name, email, phone, billing and shipping address, the product, the amount, taxes and the affiliate. Buyers appear in Customers with their order history, lifetime value, refunds and chargebacks, and each order triggers your new-customer and purchase automations. When your checkout link carries the ElasticFunnels click ID, which the [BUY] tag adds for you, each order ties to the visit, page, split test and UTM source that produced it. Refunds and chargebacks arrive as their own entries on the customer's record.
Orders with a phone number can also be sent to your connected call center, and so can abandoned checkouts. The abandon flow uses BuyGoods' optional New Customer webhook: BuyGoods fires it as soon as a buyer types their email into your checkout, ElasticFunnels waits for your abandon window, 10 minutes by default, and if no purchase has arrived the checkout goes to the call center. If the order comes in first, nobody is called.
What stays with BuyGoods
- Payments and payouts. BuyGoods charges the card and pays out.
- Affiliate management. Recruiting, approving and paying affiliates stays in BuyGoods.
- Refunds. Refunds on BuyGoods orders are processed by BuyGoods; ElasticFunnels records the result when the postback arrives.
How to set it up
This takes an afternoon, most of it building pages.
- Add BuyGoods as a merchant. In Settings, Merchants, add a merchant with the gateway set to BuyGoods and your BuyGoods account ID.
- Assign it to your domain, so buy tags on that domain resolve to BuyGoods.
- Map your products. On each product, enter its BuyGoods product ID.
- Build the pages with
[BUY],[UPSELL]and[DOWNSELL]tags on the buttons. - Connect the vendor postback. Open the BuyGoods merchant's Setup in the Merchants list, copy your postback URL (it looks like
https://…/postback/vendor/<your-code>/buygoods) into BuyGoods' New order, Refund and Chargeback URLs, and send a test. The setup screen marks the connection as validated when the first postback arrives. - Turn on abandon recovery (optional). Paste the second URL, the one ending in
/buygoods-customer, into BuyGoods under Settings, Customer Settings, "Fire this IPN for each NEW customer", and set your abandon window. - Run a test purchase through the whole funnel, including an upsell.
- I'd never paste a raw checkout URL on a button. The
[BUY]tag carries the visitor's ID through, and without it an order has a much harder time finding its session. - Don't ask affiliates to change links for a test. Test behind the link they already have.
- Leave abandon recovery off until someone will actually call inside your abandon window. A queue nobody works is worse than no queue.
- A presell that wins on clicks to the checkout and loses on BuyGoods orders has lost. Judge on orders and refunds.
The network gets the buyer to pay. Everything that decides whether they reach that point, and whether they come back, is yours to build and measure. That's the part I'd spend the afternoon on.



