MultiVendor MarketPlace Implementation on Shopify

drlbs
Shopify Partner
2 0 2

Hi Everyone,

 

We are looking to build a sales channel app that will enable merchants to post their products on our platform. I understand that using OAuth vendors can make their products available on the sales channel app, however, I am unsure of how payments are passed on to vendors in this case. For example, if two vendors install my app and publish products on the market place, a shopper could buy products from both vendors in a single order. 

 

In such a scenario, how are payments processed and how do I create orders for the vendors?

 

Looking for any help on this kind of implementation.

 

Thanks,

Raghav

Replies 9 (9)

Josh
Shopify Staff
1134 84 233

Hey @drlbs , 

 

In order to create orders for vendors after their products are purchased, you could use our Order API - you'd just have to make note of which products belong to which shops to ensure you're creating orders in the right places. 

 

With regards to payment processing, however, to clarify - the orders would initially be placed on your own external platform, correct? You would need to set up the payment processing aspect of this as well as passing payments back to your vendors on your own somehow. Ideally you'd be tracking which products belong to which vendors with your own database and making sure that money was passed back to them in whatever way you saw fit. 

Josh | Shopify 
 - Was my reply helpful? Click Like to let me know! 
 - Was your question answered? Mark it as an Accepted Solution
 - To learn more visit the Shopify Help Center or the Shopify Blog

Prazar
Tourist
5 0 3

Hi @Josh,

I'm also implementing a marketplace solution as described by @drlbs and over the past month I have already implemented the Order API and external payment processing just as you've suggested in your response. I've recently read the requirements (Section 5.A.4 and Section 13.D.1) which state that a sales channel must use the Checkout API. My understanding is that the Checkout API and the Order API are mutually exclusive.

 

Given that I must use the Checkout API, how will it be possible for me (and @drlbs) to process single orders against multiple merchants using the Checkout API while adhering to the requirements for listing a sales channel set by Shopify?

 

Thanks

drlbs
Shopify Partner
2 0 2

Hi @Josh ,

 

Thanks for your response. To outline my solution, I have a custom storefront for my shopify store. I intend to build a sales channel app that will enable other shopify vendors to install my app and make their products available on my platform (custom storefront for my shopify store). Internally using admin APIs, I will publish the products from other vendors onto my Shopify Store.

Using my custom storefront, end users will now be able to buy products from different vendors. However, I intend to use custom checkout provided by a sales channel app for payments. For such custom checkout to be developed Shopify recommends us to have a connect platform account with stripe as per documentation https://help.shopify.com/en/api/guides/sales-channel-sdk/completing-a-payment#integrate-stripe-with-....

As per my understanding, Stripe Connect is required to make payments to subvendors, which means this workflow should also handle the ability to automatically pay the vendors from our platform. Can you help me understand how this workflow would work and how can I enable payments using this workflow?

 

Thanks,

Raghav

Josh
Shopify Staff
1134 84 233

Hey again folks, 

 

Apologies for the misleading comment - to be published in our app store as a sales channel app, it is in fact a requirement that your app uses the Checkout API and not the Order API. I'm not involved in the app store approval process personally so I wasn't aware of that, my apologies. 

 

@Prazar to your point, the Checkout API and Order API are entirely separate resources, yes, and you would not be able to use the Checkout API to create one checkout containing products from multiple shops. The only way this would be possible is if all of the products from multiple merchants were created on a single shop, which doesn't strike me as a great user experience necessarily. We also impose restrictions on shops that have over 50,000 product variants so that they're only able to create up to 1,000 per day, so this would not be a scalable or advisable solution. 

 

@drlbs The documentation that you're referencing is meant to outline the process for creating a checkout on a shop and using the API to accept a credit card payment, but it isn't meant to describe or outline the process for remitting payments to any vendors listing products on your platform/custom storefront. 

 

If you needed to make payments to any subvendors, the process would be something that you would need to take care of externally to Shopify. 

 

 

 

After speaking with our app store team about this kind of sales channel, to be blunt the chances of them being published to our app store are extremely low. You are still able to use the Sales Channel SDK on an app that isn't listed in our app store though, you just wouldn't be able to use the Checkout API to process payments. So technically, the Order API approach to this could still work, but you would have to market your apps outside of Shopify's app store.

Josh | Shopify 
 - Was my reply helpful? Click Like to let me know! 
 - Was your question answered? Mark it as an Accepted Solution
 - To learn more visit the Shopify Help Center or the Shopify Blog

jhcao23
Excursionist
31 1 15

Hi Josh, to be fair, if a private app can't use Checkout API, would it still be called 'sale channel app'? This kind of 'private sale channel app', I guess, can only be used for webhooks such as product listing, right? Actually I doubt any 'private app' can be a sales channel app?

francominds
Tourist
6 0 2

Hey all, sorry to revive this post but I have a similar question as these guys but got confused by the docs and the answer.

 

@Josh: as per what you have posted I understand that there's no way to create a sales channel like the one @Prazar is saying and use a manual way of payment to actually pay the Shopify merchants. So is it mandatory to use the Checkout API to perform payments to a Shopify merchants?

Example flow I would want to follow
* Shopify merchant installs sales channel to sync products to an external marketplace

* A person buys products from different Shopify merchants in the external marketplace

* The person goes through an external checkout and pays the external marketplace

* The external marketplace creates different orders through the OrderAPI to the different Shopify merchants

* The external marketplace pays corresponding amounts to the different Shopify merchants (this could be deferred too)

 

Is that flow possible to achieve or I would be forced to pay the Shopify merchants outside Shopfiy and just create simple orders?

 

Thanks.

Jakeyd
Shopify Partner
11 1 2

Hi there,

I am also looking to create an app that enables people to publish their products on our external marketplace.

Has anyone got to the bottom of how to do this from an orders/ payment perspective?

This guide says it should be done with the orders API.

https://shopify.dev/concepts/channels

Obviously it would be easier to do it with the checkout API, though on this page https://shopify.dev/tutorials/sell-through-the-checkout-api it states:

"Protocol and hostname
The Checkout API is accessible via the store’s {subdomain}.myshopify.com or the store’s primary domain using https only."

Obviously this wouldnt be possible for us as the host is an external marketplace with its own URL.

Any help on the matter would be greatly appreciated from any of you guys 🙂

Best,

Jake

 

eitanh
Visitor
2 0 0

Hi all,

Any news or updated regarding this topic?

We also need to implement a multi-vendor marketplace, where shoppers can place order with products of multiple vendors, and we are wondering what is the best way to achieve this?

- Eitan

DavideCommerce
New Member
9 0 0

Hey eitanh,

I just sent a DM about this - we can help you with both the multi-vendor checkout and setting up a multi-vendor marketplace. For reference, I've included a link to our website:

https://www.nauticalcommerce.com/

Let me know if you're open to talking more about this. 

David