Does anyone knows if the “Buy button” available on Classic Apps will be soon implemented on Apps ?
Waiting this, I’m trying to make a link with Make and Stripe, but I have to build products on Stripe, which don’t allow me to have a “dynamic” basket to cutsomize the amout to pay …
Here’s an extensive response since other folks have raised the same questions.
There are three workarounds I can think of, each with its own set of compromises.
Stripe payment links
You don’t need PayHere to create payment links for you. Stripe has this function now out of the box. And you can pass URL parameters as part of the payment link URL - most importantly, “client_reference_id”. This is how you can link a purchase to the row identifier of the user who made the purchase and write the data back to Glide using Make.
The drawback is that if your app is based on Glide tables, you’ll need to pass Row ID as a client_reference_id when your users click the “buy” button and are sent to the Stripe payment link URL. The problem with using Glide’s Row ID is that it often includes special characters - square brackets ([ or ]), or dots (.). Stripe doesn’t accept those as client_reference_id.
The solution is to maintain a mapping/bridge table for your users - for example, in your Make Data Store. In this table, you must link a Row ID in Glide with a record ID in Make. Using this mapping table, you can trigger Stripe’s payment links using the Make record ID as the client_reference_id, look up the Glide Row ID, and write the data back to Glide tables (to your users’ table).
If your backend is Airtable or Google Sheets, you’ll lose the buttery UX of everything syncing and updating in near-real-time (unless you’re using a Google script), but you can pass any other field - like an email address - as the Stripe’s client_reference_id and that’s it.
Thrivecart
Thrivecart is a 3rd-party checkout software that is something like PayHere but it doesn’t take any commission on your revenue (it doesn’t process your payments either - it’s a gateway to Stripe and PayPal). The beauty of Thrivecart is that it, too, takes URL parameters, and it doesn’t seem to care about special characters in the URL string. The drawbacks of Thrivecart are: (1) it comes with a hefty one-time price (it paid itself back for me many times over, but it’s definitely. not for everyone) and (2) its customer hub does not (yet) allow customers to change subscription tiers (Stripe’s customer hub DOES allow for upgrades/downgrades). This should not concern you if you’re selling products for one-time payments.
Stripe invoices or checkout sessions
You can construct a chain of actions in Glide that will trigger a Make workflow that generates a Stripe Invoice or a CheckOut Session. Both - invoice or a checkout session - come with a Stripe-hosted URL.
Here’s a demo from one of the apps I’m building:
The problem, as you would have heard in the Loom vid, is that Glide will try to open a pop-up with the checkout session URL. And while it works well in Desktop browsers (without fancy pop-up blockers), if your users are on mobile Safari, they won’t see the checkout page. Safari on iOS, from what I can tell, has a super strong pop-up blocker that comes enabled by default.
I’ve raised this with Glide support, and their tech team has this issue in their backlog. No ETA on the fix.
Happy to help if you need something more in-depth. Feel free to DM.
By the way - how does Google Script help sync data between GSheets and Glide? When I mentioned delays with syncing, I was referring to the time it takes for changes in data in GSheets to reflect in Glide (it’s unpredictable). Do Google Scripts fix this?
An alternate solution for real-time data in Glide while using Sheets is pushing the data to the user via the Glide Tables API (which is available even while using Sheets)