Stripe Integration - Add Product to Cart & Checkout Don't Pass to Stripe

The Actions “Add Product to Cart” and “Checkout Cart” aren’t doing anything on the Stripe side, the only thing getting passed to Stripe are:

  • The Customer Fields I mapped on the integration tab for Stripe, shows connected
  • The Credit Card Number via the payment method field

Here is the scenario:

  1. Stripe is Connected, Fields are mapped, and I have "How do you want to collect payments?
    set to “In your form”

  2. “Validate & Save Setup Data” is checked

  3. I have a test product set up in Stripe that I can see in the Feathery Action field “Stripe Product” when I choose “Add Product to Cart” action

  4. I have Quantity for the action “Add Product to Cart” mapped to the Quantity field in my feathery form

  5. I have Checkout Cart as an Action

So the Actions tied to the Submit button are:

  • Go To Step → Confirmation
  • Add Product to Cart - Stripe Product [Test Product in Stripe Name Here] - Quantity [Quantity Field in Feathery]
  • Checkout Cart

I’ve tried multiple variants of the Actions, adding/removing/re-ordering. When I run through the Test Form, and then go into Stripe (Test Mode), the customer information that’s mapped, and the credit card number show up, but the product and quantity aren’t there and the (test) customer is not invoiced, checkout never happens. I’ve been trying to get this to work since last week but have run out of ideas.

Sorry that you are having trouble getting this to work. The issue is that you have the go to step action before the add to cart and and checkout cart actions. In order to make sure you get up and running, I went in to your form and put the go to step last. I then ran your form in test and made a purchase with a test card to ensure it works. It seemed to work although I cannot confirm things in your Stripe account.

The Stripe integration was designed so that if you put checkout cart (i.e. pay) first and it fails (bad card etc.) the go to step will not happen. On fail it would remain on the step so the user sees payment error on the payment method field. Let us know if you have any further issues.

Thanks Eric, I checked Stripe this morning and the checkout/payment didn’t happen. It shows you as a customer like it shows the earlier test customers, but there’s no invoice or payment tied to your test customer record, and it doesn’t show up either as a failed or successful payment. The test product is set up as $1 in Stripe. I’m attaching screenshots of the various Stripe tabs, if you need the detailed event log, let me know.

Taking a look at this now.

So I dug a little deeper on this than I did last evening. The issue is that the test product in stripe has a price, but no default price (a checkbox in Stripe). You will need to mark that $1 price as the default for this to work. Without that, the total we calculate is $0 and therefore don’t actually create a payment in stripe.

Also, feathery uses a webhook to get updates on products and prices from Stripe. It is normally a very fast update. But if for some reason it still does not work after the update in Stripe, maybe wait a minute or two.

This worked, thank you! It takes what feels like several long seconds once the “submit” button is clicked for it to go through and then serve the confirmation page, and during those seconds, even though the button is shaded a different color, it feels “stuck” and I could see a customer clicking the button more than once thinking nothing is happening. Is there a way to show “processing” when the button is clicked on the button itself, or at least immediately let the customer know something is happening? I added a message in a container next to the button that says “please hold…etc”* however it also takes a few seconds for the message to show up, leaving time for the customer to click again.

*Because single buttons, unlike button groups, don’t show up in the Field ID list, whenever I need to create an action that show/hides something related to a single button click, I have to create a hidden field, add an action to the button that changes the value of that hidden field (e.g. to “1”) and then create a rule (e.g. show/hide container) that says show container when hidden field = 1. Not sure how efficient this is.

you can set a loader on the button under Properties