Use ‘Buy’ button for non-tangibles

I am trying to figure out how to use the Buy button to pay for the ability to post an Ad in my app (a non-tangible thing)?

The video in the documentation describes how to buy a physical listed item only.

Any help would be appreciated :slight_smile:

You need to first create a Stripe account.
Then all you need to do is create a few detail items like:

What, Amount, Code 
"One hour consulting" $100.00 OHC
"Donate to my cause" $5.00 DTMC

Then on the details page of those items add a Buy Button Component.
Use What for Name, Amount for Price and Code for SKU.

Thanks George, maybe I wasn’t clear in my question. I’ve already connected my Stripe account.

My question is…I have a dedicated screen for users to create an advertisement, promotion or offer (via a form) for everyone to view. I want to charge before an advertisement can be created?

In the form right after the ‘submit’ button is tapped I want the user to be taken to the checkout.

Hope that makes sense.

The only way I can think of would be to create a script. I’m away and working from my phone so I can’t elaborate. If no one else answers I’ll give you more ideas about 3p hours from now.

1 Like

Lol that was supposed to be 30 hrs. Friday evening in my time zone.

Hey, great question.

I want to do this. So users fill out the form, they then have to pay, then the entry gets added to the underlying spreadsheet.

Did you work this out?

Thanks :pray:

So it’s a lot more than 30 hours but here is a bit more on what I was saying. When you create a buy button in Glide one of the pieces of data you pass to the component is a SKU. Once a transaction is completed a row is created in a sheet called App: Sales, which has an SKU column. It also has the buyers email address in a column. What you would do is use that sheet to see if a user (email) has purchased that SKU (this represents the service purchased).

Interesting, solution.

Just need to ensure that you can collect more data than just email, name, sku?

My solution was similar to George’s suggestion, but in the UI I added a checkbox with a disclaimer right under the ‘Payment’ button.

I then review any new items created and cross check them against any payments made.

I now want to have a script so that I receive an email every time a sale item is added.

Thanks, to me that’s too much of a compromise for me. Good idea though.

If I was you use zapier rather than a script.

When an item gets added to your google sheet you can get zapier to send you a text message. Simple and easy


Hi did you get this to work? Did you do it in conjunction with a form - so user fills out a form then payed via a buy now button? Thanks

yep! :slight_smile: that’s exactly how I did it! -

With Glide’s limitations it’s not 100% full-proof, as a user can still simply mark the checkbox and submit the form with out payment. For that I have setup notifications via Zappier when a new line is added for both the Ads and App:Sales pages. The Ad must match to a Sales entry, if not, I simply take it down! :slight_smile:

A good feature request would be to make the checkbox mandatory before the form is submitted too.

1 Like

Yes, checkbox must have a ‘Required’ option.


I’ve been trying to think of a better alternative. I don’t use the Buy button, so I’m not overly familiar with how it works.

Maybe none of this is possible, but one thought I have is to let the user create an Ad without purchase. By default the new ad will be marked as Draft or Unpaid and include a Unique ID Special Value in the new ad record. After the new Ad is created, then the user can view the details of it. While viewing the draft ad record, they will now see a purchase button. That purchase button could use the Unique ID as the SKU. The user will make their purchase for the ad and once the purchase is made a record will be added to the app:Sales sheet. You can use a vLookup in the Ad sheet to cross reference the Ad Unique ID to the Sales SKU ID and flip the status to Approved or Paid.

By using a Draft/Unpaid and Approved/Paid status, you can set a filter or condition to control if the ad is displayed in your app.


Wow thanks so much for your suggestion, I think this approach may just work.

I will try it out and get back to you, I’m currently working on another aspect of the app.

Even if this works I still have concerns for users that AUD is currently not supported by Glide. It’s not great customer service to be charging more one day and less the next due fluctuating currencies.

You wouldn’t know of a simple approach for dealing with international currency payment processing using Glide would you? :slightly_smiling_face:

You could maybe use the currency conversion function in google sheets to get that day’s conversion. You could display the AUD price, but pass the converted value into Stripe. They would see the converted USD amount, which might be confusing, but it would be the correct conversion rate for that day.

Possible suggestion, this is not a native solution but might work for you

Tools needed:
Cognito form - this Is not a free service
Zapier (Cognito to google sheets)


Create a link button in glideapps.

Link button takes you to a Cognito order/payment form

Customer fill out form and pays for ad

Upon success payment Zapier then sends details to google sheets

= ad paid for and live in glideapps

Alternatively use the glideapps payment button sending the advert to a sheet.

That sheet has a column like a check box. If the check box is the true (you will need to do this manually) then show on your glideapp.

You can achieve this with a simple filter - only show ad when checkbox is true

Hope this helps???

Is there a time lag between when a new item is added to a google sheet to when zapier sends the text message?

Not in my experience, triggers very quickly