Jump to content
Echelon Digital Tech

Time Controlled Product Upgrades

Recommended Posts

Setup

One of the products I sell on my WHMCS site is access to a curated API for developers to integrate into their products. Customers choose between Basic or Advanced access to the API (the freshness of the data and amount of calls per day are the discriminating features). Customers can purchase one-time access in all the flavors: month, quarter. semi-annual, and annual and in both product levels. In addition they can choose to purchase recurring access where WHMCS will charge them automatically monthly, quarterly, semi-annually, or annually. 

In case that was confusing, I created 10 WHMCS "products":

  • 4 one-time products for Basic access
    1. Basic 1 Month 
    2. Basic 3 Months (quarterly)
    3. Basic 6 Months (semi-annual)
    4. Basic 12 Months (annual)
  • 4 one-time products for Advanced accesss
    1. Advanced 1 Month
    2. Advanced 3 Months
    3. Advanced 6 Months
    4. Advanced 12 Months
  • 2 recurring products for both levels
    1. Advanced Recurring (monthly, quarterly, semi-annually, and annually are the options)
    2. Basic Recurring (same as above)

If anyone has any recommendations on how I can achieve this in a better way, I'm all ears. But the reason why there are so many products Is because I offer a "bulk" discount. The more time you buy the cheaper it is per day. 

The Problem

The problem is if a user chooses the cheaper Basic recurring option; let's say they choose monthly. They pay the monthly price and then a month goes by and a few days before their subscription renews they "upgrade" to the Advanced option with the monthly choice. WHMCS only charges them the difference between the two packages even though the customer has used up almost all of the time they paid for initially. This results in the user placing an upgrade order to essentially get another year of service, at a higher access level no less, for only the initial cost of the difference between the two products, not what is left over.

What I'd love to do is have WHMCS calculate the difference in cost based on the time used already so if a user tried that scenario described above it would result in them being invoiced basically the full amount of the Advanced access (perhaps minus a bit If they have a few days left of the old access).

Now the really confusing part is that I've pored through the docs regarding upgrades and as far as I can tell this is how it's supposed to work. It's supposed to calculate the difference between the packages and charge accordingly based on how much time is left but for some reason it's not. Maybe I have a misconfiguration somewhere? Or I'm not understanding how something works? I'm hoping someone can understand my issue and help me find a solution. 

This is a very complicated topic to try to explain via text so I hope I've communicated effectively. Thank you so much for reading,

Dave @ EDT

Share this post


Link to post
Share on other sites

Hi Dave,

15 hours ago, Echelon Digital Tech said:

If anyone has any recommendations on how I can achieve this in a better way, I'm all ears. But the reason why there are so many products Is because I offer a "bulk" discount. The more time you buy the cheaper it is per day. 

it might be worth taking a look at the Discount Center addon from ModulesGarden in case that can simplify your products and their discounting... from your initial outline, it might not... but you'll know the details of your situation better than I, so no harm in looking at it.

15 hours ago, Echelon Digital Tech said:

What I'd love to do is have WHMCS calculate the difference in cost based on the time used already so if a user tried that scenario described above it would result in them being invoiced basically the full amount of the Advanced access (perhaps minus a bit If they have a few days left of the old access).

there's a 5-year feature request for clients to be fully charged on upgrades... 5 years is often the usual wait for a feature request to be completed, so who knows...

15 hours ago, Echelon Digital Tech said:

Now the really confusing part is that I've pored through the docs regarding upgrades and as far as I can tell this is how it's supposed to work. It's supposed to calculate the difference between the packages and charge accordingly based on how much time is left but for some reason it's not. Maybe I have a misconfiguration somewhere? Or I'm not understanding how something works? I'm hoping someone can understand my issue and help me find a solution.

the weird part to get your head around is the last six words of the opening paragraph on the Automated Upgrades documentation page...

Quote

With the automated upgrading & downgrading features in WHMCS, your clients can upgrade or downgrade the products and packages they have with you from the client area. When they place an upgrade or downgrade order, they will be refunded what they haven't used of the current cycle on the existing product/service and then charged for the remainder of the cycle at the new product/services price. The next due date doesn't change.

so if you had a quarterly product, and two months in, the client upgrades to annually... in effect, what happens is that the client gets charged at the annual rate for the third month (possibly resulting in a discount/refund), but the NDD doesn't change... so after the original third month, they'll be invoiced annually at the annual rate...

in my opinion, I think the best advice is, for now, to do nothing... in that, supposedly v7.8 is intended to have a new "On Demand Hosting Renewals" feature, e.g clients can renew services early (much as with domains), so possibly that might have an impact on upgrades too... I literally have no idea if that's the case, but i'd be reluctant to suggest throwing money at this now, if WHMCS are possibly going to resolve this issue... i'm not suggesting that they'll change the upgrade process radically - they might not change it at all -just that it's a possibility.

since there haven't been any WHMCS updates for four months, v7.8 is imminent - I had assumed it would have been May, but something must arrive in the next month or two...

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

By using this site, you agree to our Terms of Use & Guidelines and understand your posts will initially be pre-moderated