# Buy button on Apps (Pages) or workaround

**URL:** https://community.glideapps.com/t/buy-button-on-apps-pages-or-workaround/62005
**Category:** Feature Requests
**Created:** [May 22, 2023, 10:07am UTC](https://community.glideapps.com/t/buy-button-on-apps-pages-or-workaround/62005 "2023-05-22T10:07:33Z")
**Posts on this page:** 17
**Page:** 1

<div class="post-metadata">

### Author: ![Thierry\_Burrig](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/thierry_burrig/32/57379_2.png) [@Thierry\_Burrig](https://community.glideapps.com/u/Thierry_Burrig)
#### Post date: [May 22, 2023, 10:07am UTC](https://community.glideapps.com/t/buy-button-on-apps-pages-or-workaround/62005/1 "2023-05-22T10:07:33Z")

</div>

Hi there,

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 …

Anyone working on that kind of stuff ?

Thanks,

---

<div class="post-metadata">

### Author: ![Trustin](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/trustin/32/88217_2.png) [@Trustin](https://community.glideapps.com/u/Trustin)
#### Post date: [May 22, 2023, 11:25am UTC](https://community.glideapps.com/t/buy-button-on-apps-pages-or-workaround/62005/2 "2023-05-22T11:25:54Z")

</div>

Watch this tutorial by @Robert_Petitto

[![](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/8/8/887d264753a516876b99fe898bd12ae97a23133e.jpeg "Glide Apps: Create Premium Membership Apps w/ Payhere.co") ](https://www.youtube.com/watch?v=V_Yd6EbESjc)

---

<div class="post-metadata">

### Author: ![Ralf](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/ralf/32/492_2.png) [@Ralf](https://community.glideapps.com/u/Ralf)
#### Post date: [May 22, 2023, 12:32pm UTC](https://community.glideapps.com/t/buy-button-on-apps-pages-or-workaround/62005/3 "2023-05-22T12:32:58Z")

</div>

Uzo has a solution!

> **[PRO JSON Data TEMPLATE](https://pro-json-data-template.glide.page/dl/Data)**
>
> Only for advanced users

---

<div class="post-metadata">

### Author: ![Ralf](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/ralf/32/492_2.png) [@Ralf](https://community.glideapps.com/u/Ralf)
#### Post date: [May 22, 2023, 12:52pm UTC](https://community.glideapps.com/t/buy-button-on-apps-pages-or-workaround/62005/4 "2023-05-22T12:52:09Z")

</div>

.. and this is new!  
New Stripe checkout for Apps (Pages), with simplified options, no cart, no stack adjustment:

![](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/1/2/1271d84662578293e155accdfcc28c419e53fff8.png)[stripe-demo-single.glide.page](https://stripe-demo-single.glide.page/)

### [Stripe DEMO single](https://stripe-demo-single.glide.page/)

Single Stripe payment integration

---

<div class="post-metadata">

### Author: ![Ralf](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/ralf/32/492_2.png) [@Ralf](https://community.glideapps.com/u/Ralf)
#### Post date: [May 22, 2023, 2:38pm UTC](https://community.glideapps.com/t/buy-button-on-apps-pages-or-workaround/62005/5 "2023-05-22T14:38:37Z")

</div>

@Uzo Great app, suggest you add the Stripe email pre-fill parameter for vlookup in the tracking sheet.

[https://buy.stripe.com/test\_9AQ00qaEC6Z8b8Q144?prefilled\_email=ralf@costadelsol.app](https://buy.stripe.com/test_9AQ00qaEC6Z8b8Q144?prefilled_email=ralf@costadelsol.app)

---

<div class="post-metadata">

### Author: ![Thierry\_Burrig](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/thierry_burrig/32/57379_2.png) [@Thierry\_Burrig](https://community.glideapps.com/u/Thierry_Burrig)
#### Post date: [May 22, 2023, 2:48pm UTC](https://community.glideapps.com/t/buy-button-on-apps-pages-or-workaround/62005/6 "2023-05-22T14:48:39Z")

</div>

Thanks but that’s the old app “Classic” which I know is working 😉

---

<div class="post-metadata">

### Author: ![Jeff\_Hager](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/jeff_hager/32/43_2.png) [@Jeff\_Hager](https://community.glideapps.com/u/Jeff_Hager)
#### Post date: [May 22, 2023, 2:55pm UTC](https://community.glideapps.com/t/buy-button-on-apps-pages-or-workaround/62005/7 "2023-05-22T14:55:51Z")

</div>

Robert’s method does not use the built-in buy button functionality, so it should work regardless if it’s a Classic App or a New App.

---

<div class="post-metadata">

### Author: ![Ralf](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/ralf/32/492_2.png) [@Ralf](https://community.glideapps.com/u/Ralf)
#### Post date: [May 22, 2023, 3:02pm UTC](https://community.glideapps.com/t/buy-button-on-apps-pages-or-workaround/62005/8 "2023-05-22T15:02:06Z")

</div>

Payhere charges 2% on top of Stripes fee!

---

<div class="post-metadata">

### Author: ![Evgeny\_B](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/evgeny_b/32/57101_2.png) [@Evgeny\_B](https://community.glideapps.com/u/Evgeny_B)
#### Post date: [May 22, 2023, 9:54pm UTC](https://community.glideapps.com/t/buy-button-on-apps-pages-or-workaround/62005/9 "2023-05-22T21:54:08Z")

</div>

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.

1. 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.

1. 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.

2. 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.

Evgeny

---

<div class="post-metadata">

### Author: ![Uzo](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/uzo/32/22639_2.png) [@Uzo](https://community.glideapps.com/u/Uzo)
#### Post date: [May 22, 2023, 10:25pm UTC](https://community.glideapps.com/t/buy-button-on-apps-pages-or-workaround/62005/10 "2023-05-22T22:25:39Z")

</div>

Yes, you can have real-time sync from Google Script 😉  
Your payment confirmation is almost instant.

---

<div class="post-metadata">

### Author: ![Evgeny\_B](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/evgeny_b/32/57101_2.png) [@Evgeny\_B](https://community.glideapps.com/u/Evgeny_B)
#### Post date: [May 22, 2023, 10:29pm UTC](https://community.glideapps.com/t/buy-button-on-apps-pages-or-workaround/62005/11 "2023-05-22T22:29:01Z")

</div>

Edited my response to reflect the truth 🙂

---

<div class="post-metadata">

### Author: ![Ralf](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/ralf/32/492_2.png) [@Ralf](https://community.glideapps.com/u/Ralf)
#### Post date: [May 26, 2023, 4:10pm UTC](https://community.glideapps.com/t/buy-button-on-apps-pages-or-workaround/62005/12 "2023-05-26T16:10:02Z")

</div>

Here’s a demo of the all Google Script alternative!

> **[Costa del Sol GCC](https://costadelsolgcc.glide.page/dl/17171d)**
>
> Costa del Sol Golf & Country Club

---

<div class="post-metadata">

### Author: ![Evgeny\_B](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/evgeny_b/32/57101_2.png) [@Evgeny\_B](https://community.glideapps.com/u/Evgeny_B)
#### Post date: [May 26, 2023, 5:57pm UTC](https://community.glideapps.com/t/buy-button-on-apps-pages-or-workaround/62005/13 "2023-05-26T17:57:38Z")

</div>

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?

---

<div class="post-metadata">

### Author: ![Uzo](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/uzo/32/22639_2.png) [@Uzo](https://community.glideapps.com/u/Uzo)
#### Post date: [May 26, 2023, 9:49pm UTC](https://community.glideapps.com/t/buy-button-on-apps-pages-or-workaround/62005/14 "2023-05-26T21:49:42Z")

</div>

By fetch JSON… do not count on Glide refresh 😉

---

<div class="post-metadata">

### Author: ![Eden](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/eden/32/18651_2.png) [@Eden](https://community.glideapps.com/u/Eden)
#### Post date: [May 31, 2023, 7:35pm UTC](https://community.glideapps.com/t/buy-button-on-apps-pages-or-workaround/62005/16 "2023-05-31T19:35:13Z")

</div>

@Evgeny_B what about using the Glide Web Embed component?

---

<div class="post-metadata">

### Author: ![Eden](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/eden/32/18651_2.png) [@Eden](https://community.glideapps.com/u/Eden)
#### Post date: [May 31, 2023, 7:42pm UTC](https://community.glideapps.com/t/buy-button-on-apps-pages-or-workaround/62005/17 "2023-05-31T19:42:15Z")

</div>

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)

 ![image](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/a/c/acdfdb59434bbf02c5b1a903335047d16a06e13d.png)

---

<div class="post-metadata">

### Author: ![Evgeny\_B](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/evgeny_b/32/57101_2.png) [@Evgeny\_B](https://community.glideapps.com/u/Evgeny_B)
#### Post date: [June 1, 2023, 7:44am UTC](https://community.glideapps.com/t/buy-button-on-apps-pages-or-workaround/62005/18 "2023-06-01T07:44:56Z")

</div>

If you’re on a plan that includes the API - this could work!
