3 ms·
That's the promise. However, I recently set up an e-commerce website for my wife. I was actually a bit shocked to discover that whilst Stripe's offerings are li
by Benjamin_Dobell 5y ago
That's the promise. However, I recently set up an e-commerce website for my wife. I was actually a bit shocked to discover that whilst Stripe's offerings are like 95% of the way there, that missing 5% means you can't take advantage of said offering at all.
1. I setup Stripe Checkout for subscriptions and thought I was good to go. However, my wife wanted to take sign-ups in anticipation of a set launch date in the future i.e. don't invoice until a specific date. Nope, no can do, the "billing_cycle_anchor" property can't be set with a checkout session.
You can add a trial period, but then Stripe's Checkout UI goes out of it's way to emphasise that you're giving the customer a free trial. Which is inaccurate and the incorrect messaging would likely run us afoul of consumer law in Australia.
So I had to ditch Stripe Checkout entirely and move to Stripe Elements. Then I realised another painful edge case. You can't set "billing_cycle_anchor" more than a month away (with monthly billing). So I did end up having to set a free trial period, but at least I could hide this information so my UI wasn't misleading customers into thinking they were getting something free when they weren't.
2. You can't create a trial period for less than 48 hours. So there's an edge case I need to handle as we approach the launch date i.e. I need to use "billing_cycle_anchor" sometimes, and free trial periods other times.
3. You can't attach shipping costs to subscriptions, at least, not without manually editing invoices i.e. somewhat reinventing the subscription logic.
4. You can't attach more than one coupon to a subscription. So you end up either manually messing with invoices, or creating weird amalgamation coupons. The latter seems simple, but it's not because if you want to offer a launch discount (for the first invoice) and indefinite free shipping, this simply cannot be represented using Stripe's coupon functionality.
5. Subscriptions don't have shipping addresses, only customers do. So if a customer wants to have multiple subscriptions delivering to different addresses then Stripe's Customer Portal offering becomes fairly useless. So we need to have our own UI and storage for shipping addresses for each subscription.
Basically I found that I needed to reinvent a bunch of stuff Stripe was already doing, in order to get that extra 5%. In which case I could almost as easily go with a different payment processor.
I am very much looking forward to when Stripe has time to iron out the kinks. Because wowee it was easy to get Stripe Checkout up and running. I really thought it was smooth sailing... but then it wasn't.
- jackerman 5y agoThank you for all of your feedback, Benjamin. 1. We're hoping to bring the `billing_cycle_anchor` property to Stripe Checkout in the near future. I'll keep you posted and let you know when this launches. 2. Good point, we will take a look into this. 3. We're launching shipping line items in Stripe Checkout's `subscription` mode in the coming months. 4. You're correct, we don't support coupon "stacking" today, and this is something we're excited to eventually support. Will keep you posted and let you know when this launches. Sorry there isn't anything immediately actionable for you right now, but simply, we are working on all of this! Please feel free to drop me a note at jackerman@stripe.com – happy to chat further.
- Benjamin_Dobell 5y agoThanks for your reply. It's appreciated. I edited to add a 5th pain point, but I think it mostly comes down to subscriptions currently being geared toward digital offerings rather than physical products. Needless to say, I'm very much looking forward to when I can throw away all my code and use Stripe Checkout + the Stripe Customer Portal :)
- mikevm 5y agoI'm gonna push in and ask a question of my own :D. What's currently stopping Stripe from supporting Israeli merchants? There are a ton of Israelis that would jump on it if it was available.