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.
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.
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?
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?
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.
|2 hours ago|
|4 hours ago|
|4 hours ago|
|4 hours ago|
|4 hours ago|