I am wondering how https://carthook.com/ is doing post-purchase upsells within native Shopify's checkout.
I was not able to find any API documentation on that. Are they doing redirect scripts on thank-you page?
Or this is upcoming Shopify's API to allow us to do such thing?
Will love to get insights on this,
Oh boy I am glad you mention this.
So let me recap what's happened regarding this entire announcement from 11/02.
Now then, those lucky few who were part of the closed beta not only had the toys to play around with before everyone else, they also get to use them +2 months sooner than anyone else. Not only the Subscriptions API, but the all elusive Upsell API or whatever it will be (uses Argo with the Checkout extensions which Shopify isn't giving away to mere mortals here).
Yeah, so we as developers, as partners and as app vendors are put at a considerable disadvantage and loss of opportunity which translates in to $$$. Not only are the apps that can already use Subscriptions API or Checkout Extensions available for use on app store, Shopify even created specific app categories and labels (works with Shopify Checkout) to promote them on the app store. And if you thought that wasn't enough, Twitter, Shopify blogs, Shopify documentation have all been plastered with the big news and promotions for the very few select apps which can use APIs that have not yet been released.
Great going Shopify :applauding: Love you dearly but you sure know how to hurt real well.
Here's what I'd suggest:
But what's been done here and been celebrated so cheerfully is quite a let down... I can't even be happy that these features are actually arriving or mention all the friggin' amazing work done by @lemonmade aka Chris Sauve and others with remote-ui, argo, argo-admin-host, argo-checkout and tying it all up with Shopify CLI for a great DX. Dammit, it's such nice code and architecture it makes me want to cry... yet here I am sort of crying in the forums because of all I mention above.
Thank you for the information!
Typical. The ecosystem seems to be getting segmented into insiders who are preferred and the rest. Wouldn’t be surprised if even search results in the app store are influenced by some unofficial insider status, but we’ll never find out.
At the same time, it’s Shopify’s own platform, so they can do as they please. Seems natural development, the bigger a platform becomes.
Now let me be a little less critical and hurt and summarise what we can do.
We can use Subscriptions API beta if we have filed for public beta access and have been granted access for one of our dev apps. This API is well documented in GraphQL Admin API reference docs and the developers portal tutorials provide fantastic step-by-step walk throughs how to get going with subscriptions.
Subscriptions are basically a few parts we as app devs must be aware of:
Anyhow, that's a short recap for Subscriptions API and Argo for Admin with subscriptions.
It is still in public beta, ETA for GA is sometime early 2021 unless you're one of the privileged app vendors already using it because... oh never mind :cringe:
Then there's post-purchase upsell or Upsell API or Argo for Checkout - no idea what they're all officially called. They're closed beta i.e. the stuff I am angry about for how Shopify has handled it for the rest of us.
This little beauty essentially allows customers to receive product offers right within checkout after they've entered their card details but before the thank you (order status) page. What's real neat about this is if they opt-in to the offer, they do not need to enter their payment details again (as is possible now using Order Edit API). This ladies & gents is true upselling that rocks aand is why this is such a BIG deal. You just had your customer buy something, you already have their card details, you peddle them another offer, a cool upsell that makes sense and has a good discount. One click is all it takes for them!
This in turn, as far as I am able to tell for now largely uses Argo for Checkout i.e. we now have a host in checkout that can display Argo extensions at a predefined checkout extension point. It can display within right / left or footer, has a bunch of useful pre-defined UI components for vanilla JS or comes with React wrappers, Preact is being worked on because React is heavy and there's nothing stopping you using whatever you like (hypertext tagged markup, svelte, whatever). You can call your apps APIs and do something to add that offer to the existing order. It is that something which is elusive because current Edit Order API cannot capture another payment without the customer having to go through a new payment card entry. I suppose this is some API feature we know nothing of yet.
Anyhoo... if you want to play around with Argo for Checkout you cannot because... oh never mind, I'd be repeating myself :cringe:
But if you want to simulate playing with Argo for Checkout you can because somewhere within the Argo docs there was a link to the Argo sandbox environment which can be found and used (Shopify dev confirmed this) at https://argogogo.dev/. That at least hosts your little argo for checkout extension for the Checkout::PostPurchase::Render extension point (that's that page in-between payment details form and thank you page).
So just fire up Shopify CLI and
> shopify create extension ... select 'Checkout Post Purchase' ... enter extension name 'my-cool-checkout-extension' ... pick React + TS or whatever floats your boat ... sip some coffee > cd my-cool-checkout-extension > shopify register ... authenticate yourself ... selected one of your dev apps ... all good so far... have another sip of coffee > shopify push ... says all is good and get some link to follow to version and publish your extension but it won't work
Ah yes it won't work because... you know by now.
So just hit
> shopify serve
to serve the extension locally, open up an HTTPS tunnel in ngrok and run over to argogogo.dev to check it out.
Let's just document this as much as we can here and share info / learn together since we aren't celebrities or rich enough to have been invited to the party.