One-time payment - button with Stripe modal

Does it work with existing apps? I don’t see any options for subscriptions.

It should work.

Did you enable Stripe? You must first enable Stripe, add your API Keys and save.

Let me kno

Great question, Moe.

If I said “both”, would you be surprised?

Technically I have both use-cases, but the more immediate use-case is where the User/Employee is logged in to collect a Payment on a customer record. With that said it would be incredible if the Employee could trigger an email/SMS which then gives the customer an option to pay on their own with a unique link to a public page. I have the public page concept working in one of my apps for a slightly different purpose, too.

Whoooaaaa, this is straight :fire::fire::fire::fire:

1 Like

You can get this to work, but it would take a bit of configuration. Here’s how I would go about it.

  1. Create a Checkout Session with the Stripe Pipe.
  2. Save the Checkout Session ID to the Order Record
  3. Send the User an email with a link that brings them back to Tadabase, then using Javascript and the Stripe API direct them to Stripe to make payment.

The other option is via creating an invoice in Stripe Pipe and setting the option to Send it. You simply pass all the details including email addres and Stripe sends the invoice.

Later today I’ll give this a go and maybe I’ll make a video of this whole process and post it here. Might be too complex to write it out. But 100% confident this is possible.

Made a video for you to see the full process.

Let me know if you have any questions.

Outstanding explanation Moe. Can you share the Javascript you had added?

The only other scenario here would be when there aren’t predefined products from Stripe, rather that you’re with a customer creating ‘items’ in an Order on the fly (like a free-form Invoice), setting a price per item, and then have a total amount.

Imagine that you’re pulling from a list of Products with a standard price. You (user) can use the standard price or update the price for the particular order. A more fitting example would be for landscaping where a Pro is with a customer picking a bunch of services from their database and setting the final price of each. Perhaps something like this:

  1. Raking $100
  2. Mulching $250
  3. Mowing $70

Those are the three that exist in the list. But for John, the customer, the Invoice is going to be:

  1. Raking $400
  2. Mulching $250
  3. Mowing $70

(they have a ton of leaves and will take a lot more work)

The total being $720 here, the user would be able to create a charge for that amount instead of the pre-defined amount.

I believe this would still be using a ‘Create Charge’ call.

I might be missing a bunch of information here but you could still have those price_id’s in Tadabase and use a field for quantity, like Moe did, as a modifier.

Raking base rate of $100 x 3

A couple challenges are:

  • The product cost might not be a multiple, maybe it’s $72 instead of a standard $45.
  • If a product doesn’t already exist as a selection option then the user wouldn’t be able to move forward
  • Adding products from Stripe requires the manual setup process where adding additional products would need to be done ahead of time

There are cases where a standard set of Products should be made available. Reporting via Stripe is much easier when this is the case, such as knowing which Products have been used, breakdown of financials, and taxes if it comes in to play.

For the other cases where a user needs to add a completely unique price of their own, and perhaps a product that doesn’t exist, it’s a barrier. Imagine being a Landscaper while quoting a customer who asks you to plant a specific type of plant that you don’t have in your list. You’ll still want to add it to the quote but you’ll need to add the item ad-hoc.

You could have a whole separate workflow in your app of creating products and prices through API calls.

https://stripe.com/docs/api/products/create
https://stripe.com/docs/api/prices/create

Maybe except it might then create tons of duplicates. The purpose here could be a few hundred users.

They might add an order with 5 items like:

Service 1 $88
Service 2 $871
Service 3 $175
Service 4 $135
Service 5 $ 544

Total $1,813

Each of those services have a unique price for this particular order. The only thing we need to tell Stripe is information about the customer (name, email, address), who the user is that’s collecting the charge, and the payment information (method, price).

It’s really just a “charge” of the amount of the order.

Now let’s say a completely different user needs to process an order. They may enter 3 items, where “Service 1” and “Service 2” have the same name but the total for those items are:

Service 1 $35
Service 2 $433

Total: $468

Rather than associating the items to Stripe products, we’re just capturing a charge for the total. Inside of Tadabase we’ll know what makes up the order and can present the data in some charts and tables.

Hey @moe I’ve tried Beta builder as well as production. Installed the Stripe pipe, added the key, but not seeing the Subscription option appear.

Hi Moe,

Will this solution work for online restaurant ordering application?

Hi Moe,

I have Stripe account and I am currently building a online food ordering system for a restaurant owner client of mine. I am looking at different payment gateway options for my Tadabase app shown below. Question for you - do you know if it is possible to use Stripe pipe to achieve this?

Using Stripe for one time payments gets a bit tricky especially if you want to pass the list of products.
Most of the Stripe transactions require more than one API call to accomplish a single thing. This multi call requirement really complicates things.

In your screenshot I see the total on the bottom. Your ultimate goal is when someone clicks on the total they can put in a credit card number and process the credit card for that amount?

I’m sure with the right amount of hacks this can be achievable, but it would be a bit tricky.

Yes Moe, that is correct. It would work like all other online food ordering system whereby customer selects dishes from food menu then checks and confirms ‘cart’, then proceeds to ‘checkout’ for payment.

I built a solution in GoDaddy with Strip payment, its not ideal because the food menu navigation is restricted and is really designed for storefront with small number of products. I also built around 5 solutions last year using WordPress, Elementor/Beaver, Woo Product Table by Barn with several other plugins including PayPal.

link and screenshot is built on GoDaddy and uses Stripe account which i opened yesterday.

https://mahekcheshunt.com/

Had a meeting today with these people (FlipDish) and they have it all working so it is possible.

Hi @moe,

I’ve got this working except for one small issue.

The Javascript on the details page with the Checkout ID only triggers about half the time. When it doesn’t trigger on its own, I have to manually refresh the page to get it to trigger and direct me to the Stripe checkout page.

This is the error I’m getting in Chrome Console:

Is there a trick to get it to trigger every time?

UPDATE: I changed

window.setTimeout(checkFlag, 100);

to

window.setTimeout(checkFlag, 200);

and it works just about every time now.

Are there any tweaks we could make to the code to ensure the JS runs every time?

@moe @tim.young

I’ve got this working, but I want to also pass the customer’s email address to the Stripe checkout page. Do I accomplish that with a pipe parameter or with Javascript? I’ve tried both and neither is working for me, although there’s a very good chance I’m doing something wrong. Any assistance you could provide would be greatly appreciated!

UPDATE:
I figured it out. I had to add customer_email to the Request tab as well as the Parameter tab in the pipe. I had only added it as a parameter.

Hey @mattb,

You can set up an additional pipe parameter. I have an example of this I can show you.

I will get back to you tomorrow!