An Introduction to Marketplaces with Foxy.io

What do we mean by "Marketplace"?

Broadly, we'll define "marketplace" as a website on which…
  • The products or services for sale are offered or fulfilled by 3rd party sellers.
  • A customer's payment (or at least a part of it) is routed to a 3rd party, and not to the company/brand operating the website.
Within this category, there are a few further groupings, such as whether or not a single payment can be split between multiple 3rd parties (such as Etsy or Amazon, where a single order might contain items from multiple sellers) or just a single party (such as Uber or Lyft).
Regardless the approach, it's important to clarify up front that a "marketplace" setup is not an "easy" thing. If you have no budget and no in-house programming ability, a marketplace is probably not workable unless you can find something off-the-shelf that does everything you need.
With all that said, we'll lay out some of the possibilities with Foxy. Hopefully this'll help you figure out the best approach.

Option 1: "Affiliate" Approach

This option does allow for multiple sellers in one transaction.

Technical requirements: Foxy Standard plan. Affiliate system (separate plan/pricing). Ability to do some code.

This is our typical recommendation, especially for less technical users, or for a first version or MVP (minimum viable product). This approach would be a normal Foxy account with a single payment gateway. Any payment gateway would work, as this method doesn't rely on the gateway to split the payment.
Instead, each product is tagged with a unique product code, category, or other attribute to specify which seller it belongs to. (This part's up to you, so long as it's consistent.) On a successful sale, Foxy pipes the data to an affiliate program, which logs the sale and credits the account according to the logic there. (Affiliate programs typically allow for a variety of different payment splitting logic.)
We use iDevAffiliate ourselves. The advantage here is that it's VERY easy to set up and manage, and you've got a "seller" portal ready to go with the affiliate program. They can see their sales and earnings. The affiliate program also makes it super easy to pay your sellers (generally with PayPal mass payments) according to your own schedule.

Note also that you'll need to understand your liability. If a customer issues a chargeback and you've already paid the affiliate, you'll have no way to reclaim the funds.

This is our recommended option for most users. You get a lot of bang for your buck, with much less custom dev than the other options.

We've built a starter script for you, which can be deployed to Netlify's serverless functions:

Option 2: Marketplace Where You Handle the Payouts.

This option does allow for multiple sellers in one transaction.

Technical requirements: Foxy Standard plan. Programming ability. Some external way to transfer funds to your sellers (such as PayPal mass payments).

This is similar to the above, but you'd build out all the UI and logic for the sellers to register. You'd use a single Foxy account and collect funds using your own payment accounts, as above. The difference is, instead of using iDevAffiliate, you'd do your logic to transfer funds to your sellers using whatever you'd like (bank transfers, PayPal, etc.). Note that Foxy cannot help you on the payment transfer step, as that's totally separate from Foxy.

Note also that you cannot use Stripe Connect or Square to transfer funds in this scenario, because your sellers wouldn't be connected to your Stripe or Square account.

Option 3: Splitting payments at the gateway

This option does NOT allow for multiple sellers in one transaction.

Technical requirements: Foxy Advanced plan or higher. Advanced programming ability, or a budget to hire a dev. Use Stripe or Square.

This may be what most people have in mind when they're asking about a marketplace. Square and Stripe both allow a "platform" account to take a portion of a transaction, and send the rest to the seller. (This is "Stripe Connect", for Stripe.) This payment splitting can only be done with one seller per transaction.* We currently support this for Square, available as part of our Advanced, Platform Premium, or Enterprise Plans. Please get in touch if you'd like more info about this.
The approach here would be:
  1. You handle the Oauth flow to get the Square credentials for your sellers accounts.
  2. You pass those credentials to Foxy via the API. (One template_set + payment_set per seller.)
  3. A transaction in Foxy has an associated template_set (which has a payment_set). Each transaction goes to Foxy with the appropriate template set, and the payment flows to that merchant (but with your platform taking the specified cut).
We offer customizable payment splitting logic, so you can split the product subtotal, taxes, and shipping separately. (For instance, split the products 70/30, but 100% of the tax goes to the seller and 100% of the shipping goes to you, the platform.)

* Note that you could conceivably use this approach with Stripe Connect to build out separate functionality that may allow you to transfer funds to multiple sellers, but that'd be up to you, and would be a custom build (though Foxy could still be used for the cart and checkout).