4 ms·
Did this for our new product Construct 3: https://www.construct.net https://www.construct.net It was difficult, but built some good features that do give us
by TomGullen 9y ago
Did this for our new product Construct 3:
https://www.construct.net https://www.construct.net
It was difficult, but built some good features that do give us a lot of flexibility:
* region based pricing
* region based billing cycles
* multiple plan options per region
* auto generated pricing based on live fx rates which ar
rounded “nicely” which is harder than it sounds
*% based discounts and account credit
* ability to modify seat counts
Difficulties amongst many many others are:
* VAT handling (it’s different per customer type and country!) and generally having a solid grip on business finance
* abstracting it to allow multiple payment methods (stripe and PayPal)
* generalising it enough to support multiple products
* dealing with fx changes during checkout
* handling disputes, refunds, etc and their affect on product access
* just PayPal in general god damn! When dealing with b2c not including it is tempting but not really and option. PayPal and stripe in my experience give 99%+ coverage
Easy bits are the generating of invoices (prefer to do this in house) and all the other trim like emails etc. That’s just grind work.
I’m proud of it though and so far we’ve done 6 figures through it and is holding up well (tens of thousands of LOC and probably around 6 months dev time). We wanted it to do a lot and the design is quite sophisticated I think.
Second payment system with meat on it I’ve written (first cleared 7 figures but is no where nearly as well designed and mainly deals with one off payments). I enjoy making them!
Would definitely of bitten off more than I could chew if I was less experienced. Making it all scalable and reliable is another layer of complexity.
One gotcha which is hard to manage on a business level when dealing with sass accepting multiple currencies is forex rates that become very out of sync with your orginal price points. Can explain more but on phone!
Still to do is adding a system for accepting POS, a lot of the difficulties we face is we sell to the whole market, consumers, businesses of sizes and education. When selling to education specifically offering native currencies is a huge competitive edge especially for sass.
Also still to do in a more elegant way is b2b enterprise customers sometimes like paying for multiple years in advance - high value orders so another important case to cater for!
ALSO still to do is create accounts for resellers to buy at discounted rates. You can see how much work is involved on this sort of thing!
Winging it with “it works” won’t cut it imo (9/10 I’m all for it!) - that is the gooiest technical debt you can take on. Imo you need to seriously invest time into a good design from day zero.
- yathern 9y agoFYI your construct.net link is missing an 's' :)
- TomGullen 9y agoFixed cheers!
- ttoinou 9y agoHow do you deal with region based pricing knowing that anyone on the internet can pretend to be anywhere ? For example using a VPN
- TomGullen 9y agoIt’s not too much of a concern, businesses and edu are generally honest. Issues come from b2c sales but it’s a mintority. We will have systems in place soon that will warn and suspend service if we suspect abuse - asking customer to provide proof of residence. When paying for something the processor often gives some evidence as to their country. For a lot of customers even b2c a properly issued invoice is important so that does narrow down abuse. Requiring billing address is a good catch especially for card verification although there’s a constant friction between the frictionless checkout and anti-fraud/region verification. Main struggle we’ve had is businesses buying the wrong package - (cheaper of course)! Best way to catch this is to only issue simple receipts to the plans aimed at b2c and tell them to email invoice address if they’d like a full invoice issued. A lot of people seem to be uncomfortable with region pricing based on abuse - however it’s important to bear in mind it doesn’t have to be 100% effective to be a net benefit. If your product is truly worldwide region pricing can be an absolute essential. As can region based billing cycles where in some cultures monthly payments are culturally the norm and annual can be hard to swallow. Every dimension of global saas payment systems is complex. I’m tempted to say there’s startup opportunity here but it feels like there will always be a lot of glue needed and a huge amount of flexibility between customers needs so I’m not sure how plausible it will be. Edit: worth mentioning is that EVERY saas company needs some region pricing - most simply you need to respect trade embargoes and deny all sales to specific regions as best as possible.