Is it possible to use it at the native layer (objective-c / java )? My use case is for storing/reading info before react-native JS is bootstrapped. I've tried using AsyncStorage for that but the bindings for objective-c isn't straightforward at all!
Product upgrades and downgrades - if a user changes products midstream you need to calculate the prorated value and bill or refund the customer accordingly. Reporting then gets tricky - if the customer upgraded from A to B during the middle of the billing period, you want to make sure that your sales for A and B receive proper allocation for what was used to get an accurate sense of where you’re earning your money.
Then there’s the mess with configuring which changes customers are allowed to perform. Perhaps going from A to B is allowed, but B to A is not.
Similar challenges when customers want to change quantities during the subscription term. And what about customers who want to make changes, but have the change apply at the end of the current billing period vs immediately? You’ll need to set up a process to schedule those changes.
Also you’ll need to consider how to handle customers that move from monthly to yearly billing or vice-versa. Not to mention subscription add-ons (and removals of such).
You should also keep a ledger of all changes that have been performed (and by whom) so that if there’s any doubt, it’s clear why a change was applied, and details of the implications of the change so the financial impact can be clearly explained.
And what about situations where a customer’s card is declined? You’ve got to run a process to let them know, inform them how to update their payment method, and provide them a means to do so. If the customer doesn’t take action, configure if / when you should automatically retry, and how many times you retry before you kill the subscription.
What if you sell outside your country? Should you bill in their currency or your own? If their currency, does the renewal price fluctuate based on exchange rates so you get the same in your currency every billing, or does the amount the customer pays stay the same with every billing so the amount you receive fluctuates? You may want to configure this by currency, so stable currencies stay the same and less stable currencies change when re-billed. You’ll need to convey this to the customer up front based on the configuration so they’ll know what to expect.
If you’re not a “famous” company, some people may not recognize you on their credit card statement. So to keep chargebacks in line, you may want to configure a “pre-bill” email to be sent to customers a few days before the charge happens, along with instructions on how to cancel in case they no longer want the service.
What about discounts? Should they apply to the first billing only, the first n billings, or all billings? That probably depends on the nature of the discount so you’ll need to configure how to handle the different situations. No doubt customer service will want to offer discounts to customers mid-stream to make up for service disruptions or entice someone to not cancel, so discounts will need to be able to be applied mid steam as well.
Sorry, I’m rambling. Subscriptions do seem easy until you start to actually peel the onion.
Source: I’ve been operating an online e-commerce platform for nearly 20 years, and many of our clients do subscriptions.
tldr: Making it by doing your own thing is most likely going to fail. You are better off being successful working at a high paying job and investing in the stock market.
article seems to just focus on the idea of wealth or making money (more likely on fire). doesn't account for what success is defined as or what people want in their life other than money. eg. lots of people rather be their own boss than be a corporate drone.