How to track sales if customers can change their emails?

Hi everyone,

I have just started playing with the buy button, and I am pretty amazed how easy it is to set all this up!

I am concerned about one thing however : say a user with email makes a purchase, but on the “buy” screen he changes his email to How can I then relate his purchases (they give him some in app credits) to his account? Is it possible to not allow the user to change the email on this screen?

Thanks for your help!

1 Like

If you are using Stripe to collect payment, nothing to worry about. Stripe handles all that for you. If customer changes email…that should still not affect anything for the transaction in question which will always be on current email. Stripe always sends you the email add of customer. So

Hi, thanks for your reply.

I didn’t state my problem clearly enough. In my example the customer doesn’t change its account email. He just wants to receive notification on another email address and thus changes the “coordinates” or “email” value on the checkout screen.

This creates an entry in the App:Sales tab, but with no way to trace it back to the account email (the entry uses the email from the “coordinates” or “email” field).

I am looking for a way to not allow the customer to change this email, but can’t find any way to do this.

1 Like

Pretty sure this is what they mean.

1 Like

Nothing can be done about this email or can something be done…I don’t know about this one! :partying_face:just noticed that’s my checkout screenshot, Jeff!

1 Like

I assumed this email is always the email you sign into the app with…so if you changed it, you can still go through checkout>? let me comeback.

Not only the email but also name field…This I dont think you can meddle with because its taking place inside Stripes checkout. If customer name and email used to sign up is different from the card with which payment is being made, then there is nothing we can do about that. Some ppl use a friends account to make payment.

One possible solution might be to require the customer (if they are being asked to create accounts) to notify shop owner via some in-app form or email, the email and name used to make purchase (if different from the account name and email).

That’s all I can think of right now.

Yeah, I’m not sure either. I’d say tag on user profile email to the product id, but glide or stripe won’t allow that. The only thing I can think of is to submit a form with the product and user info. Join the product id and email in the Google sheet. Then use the form record with the buy button.

1 Like

You are able to keep the email constant by placing the email in the "Name, Details, items, or product ide area when the sale is made.

You can create a separate column that will concatenate the details with the useremail and place it inside anyone of these slots.

Finally you can tie in all purchases using the username since they don’t have the option to change that. Alternatively, you can make the name the email and that will also stay constant. You can later bring back the name into the purchase automatically with a vlookup formula if you really need to.

Either way, you can lock the email to the purchase.

1 Like

Thank you Jeff and Lighted_Candle for that.

This i think is asking too much of us (not that anything is wrong with your solution-it’s V good). You guys have given me something new to look into. Just solved one and now a new one :rofl:

1 Like

I was really interested in this one as “the” solution. If say C used X (father’s) card details to make purchase, it would be X’s username which is not on any of the columns. Am I correct in thinking that this might not work where a third-party card is used?

Yes, that’s the one Jeff.

Thank you all for your feedback.

I kind of understood both Lighted Candle and Jeff Hager’s solution. I’ll try to implement them.

It still feels weird to me that you’d need to either use a form or hide the account’s email in an SKU or a name field to be able to link a user to his/her purchases. I believe there should be a way to add special values or columns to the App:Sales tab in a more natural manner.


Hey Lighted_Candle,

How do you think I should do that?

I tried a Template column concatenating SKU-EMAIL using User’s email, but I just can’t select a template column in any of the buy button’s fields but the Description one (and I can’t put their email in there for obvious reasons).

I think that is what Jeff meant here :

I don’t think this can be a pure Gsheet function either (can’t find the current user email that way), so I am stuck.

Thanks for your help!

NOTE: I just found out I couldn’t build any relation based on the App:Sales page inside Glide’s data editor. Kind of annoying to find out how many items a customer bought etc…

1 Like

Okay to build relations do the following ;

I’ve done some reading on this and ongoing. But I know so far from my playing around with it that you can meddle with Stripe sheet.

  1. Change the name of your App: Sales to whatever you like, say “Sales”.
  2. Create a live duplicate of the sheet using an array formula. Use this sheet to do whatever you want. I’ve already tested it and I’m fact I have given driver, customer and owner on an app I’m working on 3 separate views of it including showing new orders, dispatched order and delivered orders.

So just unlock the sheet by changing its name and then work with the live copy.

Hope it helps. Initially I didn’t understand your question until Jeff showed me the screenshot. It’s not just email, but name too. There is nothing we can do about that since a person may get a some1 else to pay on their behalf. I have a very robust workaround for this though. Let me finish my testing and then ll share with everyone.

But unlocking the sheet is very easy.


Thank you Wiz!!

I am very interested when your testing is done, because I am not too sure that it allows me to add user’s account email to the transactions.

Also, why need to change the name and then work with a live copy?

Like I said, very interested with what you come up with ultimately.


1 Like

By changing the name you unlock the sheet. This only allows you to create a live copy; doesn’t allow you to pull the original Stripe sheet into other tabs. If you keep the preassigned name, you will not be able to create a live copy and feed the live copy into wherever you want. Depends on use case;

Suppose you want 3 people to be able to view the same order. Admin, Driver, and Customer. With the current Stripe settings not possible unless you unlock the sheet. Once unlocked you can submit the live copy into the respective tab feeders to get A, D and C to have their own unique view of the sheet with any additional information you may want to add to each display, by working on empty columns outside the fields occupied by your array formula.

The problem or limitation as some might call it with Stripe is that it doesn’t allow you to select multiples of the same item unless your prepared to select the item twice (something you need to forewarn your customer about). Then there is the other more crucial one, which follows as a logical consequence. Because you cannot select multiples of the same item, Stripe records the selected items as single rows. Now you can easily get round this with the new Grouping functionality we have by grouping orders by customer name or email, but only if you create a live copy of the Stripe sheet. So I hope you can see the benefits attached to unlocking the sheet.

As for the workaround I’m nearly there. It’s hard but nearly there.

I already have the solution; just unsure about it’s feasibility.

You have to create a new column in your product sheet call it Description (for example), and then run an array formula to combine elements from the sale automatically. when a user starts adding to cart or starts the sale process glide is actually working in the background by adding things into google even before the sale is complete.