Is it possible to transact and take payment through the Checkout API?
Has anyone tried to do this? If it’s not, is there a way? I’m looking to take card details on a Magento install but transact through the Shopify checkout.
TIA,
Brandon
Is it possible to transact and take payment through the Checkout API?
Has anyone tried to do this? If it’s not, is there a way? I’m looking to take card details on a Magento install but transact through the Shopify checkout.
TIA,
Brandon
It’s possible, but you need to be a sales channel implementation to do so.
https://help.shopify.com/en/api/guides/sales-channel-sdk/completing-a-payment
Otherwise you’re going to have to defer to the checkout object’s web_url where card details are captured and processed on Shopify.
Thanks Alex.
That link says you can use the web url to send users to the Shopify checkout. So can I in effect generate a link with a given product on one site then pass to the Shopify checkout to transact on my Shopify site?
TIA
Hey Brandon.
Correct. You can create a checkout whch includes specific product variants as line items and other information which would comprise a checkout, and then use that checkout object’s web_url to pass the customer to Shopify to process the payment.
You’d want to do so with the storefront API: https://help.shopify.com/en/api/custom-storefronts/storefront-api/guides/checkout-guide
. So can I in effect generate a link with a given product on one site then pass to the Shopify checkout
Depending on situation see if cart permalinks fit the need.
[email removed]Alex Richter
you need to be a sales channel implementation to do so
kinda of let down to land on something like:
api/custom-storefronts/storefront-api/reference/object/creditcard or
api/custom-storefronts/storefront-api/reference/input_object/creditcardpaymentinput
and not immediately knowing processing, card vaulting , can only happen via shopifys checkout. And trying to use them just leads to dead ends .
The graphql| reference should be updated to reflect when elevated permissions are needed for thing like plus and sale channels and gateways. The great features are piling up so it is getting a bit confusing, Maybe a guide on how all these features now flow together to educate developers where the red lines are expanding on the /sell-through-the-checkout-api image
[email removed]Alex Richter what are the conditions to be accepted as a Sales Channel implementation? i.e. specific app approval or a specific Shopify plan?
@Paul: That’s some really good objective feedback, thanks. I understand there’s a few weaker areas in the docs where things aren’t as clear as they can be, especially sales-channel related subject matters. First and foremost I’ll look into some docs improvements when I can.
@Karl: The first and foremost requirement is that it makes business sense for your app to be a sales channel integration. You need to essentially function as a marketplace. You cannot request access to payment processing for the sake of access, though. Channel requirements are summarized here: https://help.shopify.com/en/api/guides/sales-channel-sdk/overview
You can mark your app as a sales channel in your partner dashboard (this is not reversible). Once that’s done, you can request payment processing.
So just to be clear @Alex Richter
What options do store owners have that need to accommodate regional e-commerce customs such with common scenarios such as:
in-store pickup - customers in some countries are accustomed to various in-store pickup networks where they can have their order delivered. They usually pick that shipping method and choose from a list of locations nearby or on a map widget.
As is, this scenario is entirely impossible using Shopify because you cannot add custom widgets to checkout, cannot enforce a billing address be added but shipping address be disabled (can only be set by picking a in-store location)
many GDPR discussions have been published in documentation, blogs and forums regarding Shopify and GDPR compliance, however, many European merchants still feel we could up the ante a little, but cannot do so because of a very constrained checkout process
I understand many of these scenarios are perfectly fine using a Plus subscription, but considering the price and annual commitment it is completely out of reach for home based startups, small merchants etc.
Are there any other options how small merchants using Shopify could take control of their shipping and checkout process to accomodate country specific customs and meet customer expetations even if that means running the entire storefront on their own but still using the Shopify backend?
Hey Karl,
You are correct in all three of your initial points.
To address your other two points:
At the end of the day, the checkout is a walled garden for the most part to non-plus merchants. There isn’t much of a way around that.
Small merchants can definitely take control of their shipping with the carrier services API and manual rates if tehy need to be more granular. I don’t know specific reasoning for the checkout being restricted because that admittedly is not my area of expertise.
You can use the entire Shopify backend without a storefront essentially without Shopify’s payment processing. In this case you would be processing orders externally and creating orders in Shopify using the orders API, or perhaps creating a hosted payments SDK integration (offsite payment gateway) if you do want a storefront, etc (to name a few).
@Alex Richter
Thanks a bunch for answering all my questions and helping clarify a lot.
I was aware of the Carrier Service API, but again, this one is only available to Advanced subscriptions which are still way out of reach for very small merchants if you consider the monthly subscription is equal to the monthly revenue of such a business - not to mention this need be paid annually upfront. As is, I accept that limitation and suppose it is more of an issue for marketing and sales to pick up upon than having a few techies squabble over why’s and why not’s ![]()
As for GDPR, with no way to customize the checkout process / template, even if only with static code (not counting the little bit you can add in the checkout completion summary) we feel we do not advise our European customers sufficiently about whom they are providing data to with each step. Yes, there are links to privacy / data protection in the footer, but a more visible means would be far more in-line with GDPR best practices as opposed to GDPR bare-bones requirements. Alas, it is picking cherries, I know.
Once again, thanks for your help!
in-store pickup - customers in some countries are accustomed to various in-store pickup networks where they can have their order delivered. They usually pick that shipping method and choose from a list of locations nearby or on a map widget.
Basic In-store pickup can be handled with shipping rates(example walkthrough), wouldn’t this mean just identifying locations in different rate configs then having fulfilment handle the addressing to the pickup location.
Just american perspective while companies like Fedex etc have things like “hold at location” they’re already integrated and the choice is more on the customer/fedex’s side of things. Getting a custom “business network” integration generally comes with the understanding that revenue can easily handle fees to develop it, and the required backend to enable it because of the revenue it will then generate.
I’m curious though wouldn’t mind looking into this style of delivery more if you could provide some names or links to reference.
@Paul L Newton
Yes, in fact the shipping rates do not change. However, customers are used to choosing this option and being given a dropdown of pickup locations or a map. These UI widgets are typically a little fancier than a regular select box and can autocomplete, filter nearest store, update store locations based on daily data about holidays, vacations, opening/closing hours etc. Mind you, these are random stores that sign up with the in-store pickup service provider.
It really is quite convenient for customers and very common in some countries - in fact here in Czechia where online shoppers are atypical, some 30% of all customers want to have their goods delivered in store and paid on the spot. However, checkout is only customizable for Plus plan and we cannot offer this kind of UI modification to shipping method and shipping address.
Have a look at https://www.zasilkovna.cz/eshopy or https://www.ulozenka.cz/pro-prijemce-zasilek with old friend google translate for a bit more info on the topic.
customers are used… update store locations based on daily data about holidays, vacations, opening/closing hours etc.
All that can be done at /cart → pass data to your app → serve locations during shipping step in /checkout
really seems like access to carrier service api is the way to go. One option you should follow up on is contacting support@shopify.com and check if they still do options for getting access to that api without an advanced plan: A) when the store is paid annually or B) additional fee + smaler plans
Also development stores give access to the carrier api for development and testing.
https://www.zasilkovna.cz/eshopy or https://www.ulozenka.cz/pro-prijemce-zasilek
Neat, ty and goodluck
I wasn’t aware that Shopify can be a little flexible regarding features and plans. Thanks for the hint and definitely something worth looking in to. Thank you!
Hey @Alex and @KarlOffenberger ,
I’ve just seen this post as I’m desperately trying to get some clarification with regards to checkout API for a marketplace.
I would be incredibly grateful if either of you could shed any light on this?
We are implementing a marketplace solution and over the past month we have already implemented the Order API and external payment processing.
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 to process single orders against multiple merchants using the Checkout API while adhering to the requirements for listing a sales channel set by Shopify?
There is a recent post in the forum, Marketplace post outlining the same solution we are looking for, and just wanted to make sure that Josh from Shopify’s response was indeed correct?
Thanks in advance, Rob
Hey @KarlOffenberger and @Alex I am currently trying to have more control over the payment process/checkout process and would be willing to upgrade to any level of Shopify subscription to do so. If I am on the correct Shopify Plus Plan would I be able to customize the checkout and how payments are processed?
To give clarity on a high level here is the solution we are trying to accomplish.
We would like on the checkout of our shopify store to take over the payment process. As we need to split the payments a certain way. We need to create two separate charges to the customer one for the products they purchase and one for the donation we send to a non profit of their choice. The only way to do this is if we can just process the payment on our end using Stripe our own way.
Is this possible in any way at all or do you have maybe a solution that you think could work in our case?
Remember cart.liquid can do some customization as a partial checkout process. This cart page can ask the user to choose a pickup location and then, in the next step select ‘FREE SHIPPING by Local Pickup’ method rather than UPS, FedEx, or USPS. What do you think @KarlOffenberger ?
Hi @jeremykp if your concern is only payment split, I think the easiest way for you is:
Shopify Payment take the payment from your customer.
At your backend, you’d better calculate the amount you need to send to the non profit organization on a daily/weekly/monthly frequency. It might need a communication with your bank.
If that’s not possible, you can build your sale channel app to completely take over the payment processing or checkout process on your own way.