Buy button is invisible - why?

I’m a newbie to using buy buttons. Can someone explain why the Buy button will not display? It’s as if a visibility condition is not true. There are lots of other components on the screen and they all work as normal.

I have added a buy button. I checked and there are no visibility conditions set in the options tab. I have connected the button to a new Stripe account. All the fields for the button are pointing to various columns.

  1. The Stripe account is new. Do I have to wait for a period of time before it will work?
  2. When I click the drop down to choose columns for the button components, sometimes I am frustrated because I cannot choose a computed column, e.g. the price…

Is your Stripe account in “Live” or “Sandbox” mode?

1 Like

I’m scanning the dashboard and can’t see anything that says Sandbox… is there a specific place in Stripe’s dashboard?

Test Mode rather…

It has this setting:
image

So that’s fine, then.

1 Like

Is the screen being filtered?

No, but I just checked and I can add the button to other Apps I am working on. Something strange with this one!

Sent you a short video by WhatsApp in case you have a moment

You can not choose computed columns for the buy button, it must be a normal column, due to security reasons.

I think it’s not visible because you have not filled out all the required fields for it to be visible. I can’t recall which one, but price must be one of them.

Thanks for the suggestions but no, nothing works even if I have several bog standard text, number & image columns. I added them to check. Nothing.

Strangely I can add a button to other screens in Glide so long as the original Glide Table is not the one I was using. No idea why, what is unusual about this table?

So the obvious workaround is to create a new Glide Table and have the screen use the new table as the data source.

As a newbie to the Buy button this was frustrating. But not half as frustrating as discovering you cannot get any sort of notification that payment has been made successfully. I’m late to the party and now see so many posts complaining about this. Such a barrier since this was supposed to unlock features in my App.

Now I am going to have to rely on the user sending a ‘I promise the payment was made’ notification to me, whereupon I have to go and manually check the payment and then unlock the features (or re-lock them if not made). Not acceptable in this era of instant access.

I see some success in buttons to send Paypal payments but surely the Buy button should be incorporating all this. I kinda ignored all the threads about buying things on Glide and just assumed it was straightforward. Glide this is not up to the usual high standards!

I’m not a big fan of the buy button but mainly due to it being not customizable. I’m sorry but I will unmark your solution so we can continue discussion about this.

If you can reproduce that in a video then we might be able to help. If you’re going to record a video please make sure you let us know which columns are used in your buy button, and what type of column are those.

I don’t have a Stripe account, but I assume new payments are notified to you from Stripe?

Now what you described here is unacceptable, but I noticed these things.

Your screenshot showed that you’re using only Glide Tables for this app. You should be able to attach a Google Sheet to this app, then any new payments will be written to an “App: Sales” sheet, instantly.

From that App: Sales sheet (which does not count towards your quota, but isn’t visible to the app), you can have a new sheet and use the formula below in cell A1.

={'App: Sales'!A:Z}

This will duplicate your App: Sales sheet and allow you to see it in the editor.

You won’t have to tell the user to promise anything. You can now use the sales data inside the app to make relations and so on.

The whole problem of this is Glide not writing these to Glide Tables. It only works in Google Sheets, as of now.

1 Like

Thanks for the comments. Very interesting.

I will record a little video, but for now I’m using the workaround of a fresh Glide Table. I like your comments about the Google Sheet. In fact my App was created with a Google Sheet last year. I recently moved all data away from the Google sheets and the redundent Google sheets just sit idle. But looks like there could be a good usage for them if I can indeed extract a confirmation of payment. I have just 1 small concern: some clients block access to Google docs for security reasons. If the the user is on this network then the confirmation might not get written/read in the Sales sheet.

But I will try!

As long as the sheet is connected to the app then I don’t think it’s a concern, worth a try to know though. Hope it helps.

1 Like

It works!

I have a new Google sheet now called Sales Summary and it is a clone of the hidden Sales sheet. I should be able to use this in a number of ways. For example, I can have an action that checks ‘IF the newest row contains User info THEN do something to unlock feature access’. Or I could have an Admin screen that simply reads the list in the Sales Summary; tapping on an item does something…

Thank you!

1 Like

Let us know if you need any further help.

Does each user purchase only once? If so you can use their email to make a relation, I guess.

Yes that’s right. They do. But I had the following in my mind:

I read on the threads there is a risk that users change their email just before payment. Honestly, it’s something I do all the time since the account where I run the app is likely to be different from where I manage payments.

Hence, I’m thinking a safer way is to pass the Row ID of the User (Template column:User’s row ID) to Stripe in one of the Buy Button’s fields, e.g. the Product description (SKU). When that lands in the Sales sheet I can relate it back to the User sheet in order to identify who just paid.

Just one question, since my User Sheet has row owners activated for the email column, won’t this make it impossible for an Admin to push a value into user’s row that confirms payment? Or is there a more automated way to trigger a change in the user’s sheet (corresponding to the user that just made a payment?)

So just discovered it’s impossible to pass the Row ID of the user (or other unique info) to Stripe and then into the Sales sheet. None of the button fields will accept a dynamic computed column. Shame. It will be risky to rely on just the email address since I don’t have a Pro App (yet) and cannot see email addresses!

The best workaround I can think of is to write a time-stamp when any user opens the buy screen. Since I don’t have many users, if someone makes a purchase I can probably identify the correct user by looking for the one that has a time-stamp that is closest to the payment confirmation time. That info plus any name clues in the email used should be OK. Not ideal!

2 Likes

This is more tricky, but I think there’s still a way out. I’m thinking it this way:

  • You have a button to add a row to a helper table. Let’s call the button “Start payment process”.
  • That row will contain the signed-in user’s email and ID, in normal columns (when you use an add row action you add those to the right columns). You also add whatever things you need for the buy button (title, price etc).
  • In the table linked to the screen you were having the button, have a relation using the user’s email/ID to the helper table, then a single value returning the last “whole row”.
  • After the add row action in the “Start payment process” button, show details screen of the last “whole row” returned above.
  • Show the buy button there, you should be able to have the user’s email and ID to use.

My only concern is if the relation is created in time for the navigation to work.

2 Likes