A space to discuss GraphQL queries, mutations, troubleshooting, throttling, and best practices.
Good day,
Could anyone point me in the right direction or provide some insight on the following?
I'm working with a company that sells physical products through a Shopify store and the owner also has another company that is a call center. They would like to be able to have their call center agents from the other company utilize their own internal order platform to create orders that will then be sent to the Shopify store via API, where payment processing and fulfillment would be handled through Shopify. The use case is that they have some overflow customers that are not very tech savvy and don't feel comfortable ordering online, so they call in to order where the agents would take all the information and process the order for them. They are currently unable to have the agents use the Shopify store directly as their internal sales platform has the means to pause recordings in their call platform when card information is being taken over the phone.
I am very new to working with Shopify but I have worked with other platform integrations. I've looked at the REST Admin API DraftOrder, Order, and Transaction endpoints. I understand this type of use case would normally be handled using the DraftOrder endpoint, however that would still require interaction by the customer to go to a checkout page sent to them via email, and then enter their card information. This doesn't work for their business model, as they need the agents to be able to do the work for the customer.
I was able to successfully utilize the Order and Transaction endpoints to submit orders to a dev store, but as it turns out this doesn't actually handle the payment processing aspect. Are there Shopify API endpoints for handling this use case? I've also looked at the API documentation regarding a Sales Channel App, but that doesn't seem to fit what they're aiming for as this would only be utilized by this one Shopify store. Is that a correct take of the requirements for building a Sales Channel App, needing to be built and listed publicly for use by many Shopify stores?
Again, any assistance in pointing me in the right direction would be greatly appreciated. Thank you in advance!
Just checking to see if anyone has any ideas or can point me in the right direction on the information I provided in my original post. I know it was just before the holiday, so hoping some fresh eyes that have come back from vacation may be able to provide assistance. Alternatively if there is another avenue for support that I should be reaching out to, please let me know.
Thank you!
Hey @GarettFM, thanks for getting in touch.
You are on point here - Sales Channels are intended to be publicly available through the Shopify App Store and are designed for use on multiple shops. Right now, we do limit the ability to push transactions through Shopify Payments or one of the gateways that are installed on the shop via the API. A lot of developers and merchants implement the workaround using draft orders you mentioned above, but one workaround could potentially be similar to what you've outlined using the Order and Transaction endpoints to complete an order.
What could be implemented is that the payment is processed over the phone by the agent through another payment provider and then itemized on Shopify (you could add an order note to orders processed this way using the Orders API. For example the note could read "payment taken externally", etc.) and then pushed through to the merchant's shop to be processed and fulfilled using the workaround you mentioned above using the combination of the Orders/Transaction endpoints to complete the order without the customer having to do anything on their end.
I understand it's not the most ideal workaround though, as the merchant would have to rely on another payment provider (and the related costs), but this would be the route I'd suggest at the moment. That said, I'm going to put together a report on my end here to share this thread with our product team. I can't guarantee any new features or what would happen next, but I can confirm we would get developer eyes on this use case because I can see how this might be important not only to your merchant, but potentially to others with similar use cases.
Hope this helps and thanks again for reaching out!
Al | Shopify Developer Support
Developer Support @ Shopify
- Was this reply helpful? Click Like to let us know!
- Was your question answered? Mark it as an Accepted Solution
- To learn more visit Shopify.dev or the Shopify Web Design and Development Blog
Thank you for following up, I really appreciate it! Just to clarify and summarize, you are confirming that the only way to programmatically process payment transactions via API through Shopify Payments or one of the gateways that are installed on the shop is by creating and being approved for a Sales Channel Application? You are also saying that this use case would not qualify for approval for creating a Sales Channel Application since it would and could only be used for this single merchant?
I just have to clearly communicate the information to your merchant and want to make sure I have all the facts straight, and that I'm not misunderstanding you. I understand there are other potential workarounds involving payment processing outside of Shopify.
Thank you again for your time, it is greatly appreciated!
`Garett
Hey @GarettFM
Thank you for your patience and understanding here. You've got it right - to process payment transactions programmatically via the API through Shopify Payments or through their own gateway, creating and being approved for a Sales Channel Application is required. This use case wouldn't qualify for approval since it's designed for a single merchant, not for use across multiple Shopify stores. I definitely understand that the workaround we talked about earlier in the thread may not be the most ideal solution, but it's the best option at the moment.
Just to confirm on my end here too, I've taken the initiative to share this thread with our product team to highlight this particular use case. While I can't guarantee any new features or changes as a result, I can guarantee that our product team will review this thread/use case. Hope this helps!
Al | Shopify Developer Support
Developer Support @ Shopify
- Was this reply helpful? Click Like to let us know!
- Was your question answered? Mark it as an Accepted Solution
- To learn more visit Shopify.dev or the Shopify Web Design and Development Blog