Implemented New customer created for every Stripe transaction

Liam W

in memoriam 1998-2020
Not sure if this is a bug, but it doesn't seem like the best way of doing it...

The built-in Stripe payment provider creates a new customer for every purchase. Ideally, it wouldn't create a customer OR it would re-use a customer.

Liam
 
Upvote 2
This suggestion has been implemented. Votes are no longer accepted.
This was mostly intentional. Each "customer" relates to a unique purchase request key. It's not something we'd be looking to change at this point, though eventually we could.

I'll move to suggestions for now.
 
t's not something we'd be looking to change at this point, though eventually we could.

By which point the number of customers in the dashboard will be numbering in the hundreds.

I know customers are required for recurring subscriptions, but why do you create them for one-time purchases as well...?

Liam
 
It's not really inherently wrong. It's just that rather than each customer representing a unique user, it represents a unique purchase. There will be a bit of duplication, I'm sure, but I'm sure the number of duplicates for most usage will be low.

We store the purchase request key with the customer record in Stripe so it enables you to find a purchase on purchase request key, or the user details.
 
Just a heads up that this is changing in the next release so a new customer isn't created at all (for one off payments). This is actually part of the solution to the charge.succeeded event happening too quickly bug. Another thing is that we won't actually wait for a charge.succeeded webhook - we will process the payment and complete the purchase there and then (subject to review status, of course ;)).

Finally, hoping to crowbar in support for the new Billing API if it's feasible to.

Anyway, I digress, we'll call this implemented for the next release, thanks (y).
 
It’s Stripe’s new Billing API. Its inclusion has actually broken recurring payments with Stripe which we only realised recently. We can either force our code to use the old API version, or just implement their new system.
 
Just a heads up that this is changing in the next release so a new customer isn't created at all (for one off payments). This is actually part of the solution to the charge.succeeded event happening too quickly bug. Another thing is that we won't actually wait for a charge.succeeded webhook - we will process the payment and complete the purchase there and then (subject to review status, of course ;)).

Finally, hoping to crowbar in support for the new Billing API if it's feasible to.

Anyway, I digress, we'll call this implemented for the next release, thanks (y).

Yay, thanks.

After only 2 purchases, I had 8 customers in my dashboard (granted, this is due to the way the eCommerce add-on I'm using handled declines, but that's beside the point).

Liam
 
Last edited:
As a side note to this, we'll now attempt to re-use customers related to subscriptions too, rather than creating a new customer for every user creating a new subscription.
 
We're actually creating customer records for all types of purchase now, and only a single customer (or re-using an existing customer - the most recently created customer - if one already exists).
 
Top Bottom