Jump to content

Service Should Renew When Paid, Not When Invoiced


PhatPixel

Recommended Posts

I have noticed that the service expiry date renews for another term when it is invoiced.  I expect this should actually occur when the invoice is paid.

 

We invoice 14 days before the renewal of the term and some customers will elect to notify us of their intention to cancel at the end of the term.  This then leads to a secondary bug -- if I try to reduce the term back to its original expiry date, I get an error message indicating I need to select a date greater then the last renew date.  If you look at the attached snapshot you will see I am trying to enter 27 March 2014 but it is giving me an error despite it wanting a value greater than 26 March. Perhaps there is a timezone calculation that is awry here as we are in UTC+11 (Sydney, AU).  In the end I just scheduled a cancellation date for 27 March 2014 instead.

post-23-0-41441800-1395268793_thumb.jpg

Link to comment
Share on other sites

I've not had a issue, but I suppose it's confusing so could be better if it did run off the invoices paid date. So I would say it a feature request and not really a bug because that's how Blesta was designed to work.

 

If you as a client recive an invoice reminder that says:

 

Hosting XPTO.com (17/03/2014 - 17/03/2015)

 

then you login to your account and see on your hosting service:

 

Hosting XPTO.com Date Renews = 17/03/2015

 

you ,as a new client, that dosent know how tings work, think that maybe is an error, and we have invoiced rong, so we recive a new Support Ticket asking why the renew date is in 17/03/2015 ,ad we have send a invoive reminder for 17/03/2014 if the service "expires/renews" only in "17/03/2015"

 

In 100 clients we can teach how things work with Blesta, but with more ten 5000 clients, its a bit dificult to manage all support tickets asking why this and why that :)

 

This is a simple and easy fix because there is alredy a field with the actualy renew date:

 

Open: app/views/client/default/client_services_service_infobox.pdt
 
Find:
<li>
<?php
if (!empty($service->date_renews))
$this->_("ClientServices.manage.text_date_renews", false, $this->Date->cast($service->date_renews));
else
$this->_("ClientServices.manage.text_date_renews_never");
?>
</li>
 
Change:
<li>
<?php
if (!empty($service->date_renews)){
    if (!empty($service->date_last_renewed)){
   $this->_("ClientServices.manage.text_date_renews", false, $this->Date->cast($service->date_last_renewed));
                        }else{
   $this->_("ClientServices.manage.text_date_renews", false, $this->Date->cast($service->date_renews));
                        }
}else{
$this->_("ClientServices.manage.text_date_renews_never");
                    }
                    ?>
</li>
 
Open: app/viwes/client/default/client_services.pdt
 
Find this:
<td><?php echo (empty($services[$i]->date_renews) ? $this->_("ClientServices.index.text_never", true) : $this->Date->cast($services[$i]->date_renews));?></td>
 
 
Change to:
 
<td><?php echo (empty($services[$i]->date_renews) ? $this->_("ClientServices.index.text_never", true) : empty($services[$i]->date_last_renewed) ? $this->Date->cast($services[$i]->date_renews) : $this->Date->cast($services[$i]->date_last_renewed));?></td>
 
 
 
Open: app/viwes/admin/default/admin_clients_servicetab.pdt
 
Find:
 
<td><?php echo (empty($services[$i]->date_renews) ? $this->_("AdminClients.services.text_never", true) : $this->Date->cast($this->Html->_($services[$i]->date_renews, true)));?></td>
 
Change to:
 
<td><?php echo (empty($services[$i]->date_renews) ? $this->_("AdminClients.services.text_never", true) : empty($services[$i]->date_last_renewed) ? $this->Date->cast($this->Html->_($services[$i]->date_renews, true)) : $this->Date->cast($this->Html->_($services[$i]->date_last_renewed, true)));?></td>
 
 
Open: app/viwes/admin/default/admin_billing_services.pdt
 
Find:
 
<td><?php echo (empty($services[$i]->date_renews) ? $this->_("AdminBilling.services.text_never", true) : $this->Date->cast($services[$i]->date_renews));?></td>
 
Change To:
 
<td><?php echo (empty($services[$i]->date_renews) ? $this->_("AdminBilling.services.text_never", true) : empty($services[$i]->date_last_renewed) ? $this->Date->cast($services[$i]->date_renews) : $this->Date->cast($services[$i]->date_last_renewed));?></td>
 
Regards,
PV
Link to comment
Share on other sites

The thing is, when you see a invoice you see the following: 
 
Date Billed | Date Due

17/03/2014 | 22/03/2014

 

And the product line says:

 

Date renews

22 April 2014

 

Now to someone with common sense will go, ok the renew date says next month, the invoice is due this month, I better pay it else I could get suspended.

 

Now I might be just one to think this, however none of my customers have had any issues or contacted me about the dates, so I would say only a few people in the world would get confused because you can see it clear as daylight. But I do know it would be nice to see it change after it's paid to make it easier.

Link to comment
Share on other sites

...Now to someone with common sense...

 

 

The problem is, on Hosting Buisness there isnt many people with "common sense" eheh :)

 

We somtimes have to "make a draw" or "take a picture" to tell a client how to do somthing or how things work, its not an easy task in IT world :)

 

Regards,

PV

Link to comment
Share on other sites

The problem is, on Hosting Buisness there isnt many people with "common sense" eheh :)

 

We somtimes have to "make a draw" or "take a picture" to tell a client how to do somthing or how things work, its not an easy task in IT world :)

 

Regards,

PV

 

You're targeting the wrong market then mate :) remember 100+ customers with me are for shared hosting until the sale has been done.

Link to comment
Share on other sites

a litle off topic, but in response to CubicWebs to understand our business model :P

 

We are in business since 1998. Since that time we where in Hardware and Software market until 2004, wen we have go into Hosting Business  (I have a qlpqlp WebHostingTalk user Account since 2004, but I was banned by Bear because a small post on "Hosting Software and Control Panels" about Blesta Live Chat, asking a public opinion :( ), since then until 2006 we where door, to door (literally), showing our services, we have grow from 1 Euro month to several thousand's in a few  months (only in Portugal/Europe), after that we have purchase our space in a Portuguese Data Center and we have build our own servers (Housing), piece by piece, now we manage several dozens servers with several thousand websites, each one.

 

We also are accredit registrar in .pt domains (Portugal domains), and we work also with eNom/InternetBS/ResellerClub registrars, and we manage several thousand's domains :)

 

With Blesta in as our main admin/client manager, we are planning to go International (Africa/Brasil/Rest of Europe).

 

We work from small people that don't know how a website work, or how an email work, to big corporate businesses, we treat all clients the same, we don't judge a small client or a big client, all are clients and we can grow with them.

 

We can happily say, since 2006 we do zero publicity, no google adwords, no flyers, no newsletters, no door to door, no anything, and we grow every day :)

 

You know why? because we are good in what we do, and try to help everyone in a easy and quick way :)

 

Also we don't raise our prices since 2004, lol :P

 

We also do outer main services like:

 

Webdesign (Design/Consulting)

SEO (Consulting/Action)

Programming (Software/Web/Mobile)

Hardware (Maintenance/Assistance)

 

That's why we are focus on "Support Manager" plugin, and now on "Client Side" to help improve things in Blesta. An happy customer is a good customer, and eventually will tell another customer to purchase a service :)

 

now on topic:

 

a small thing like a renew date can cause several confusing to clients, that will raise questions and some unhappy customers ;)

 

Regards,

PV

Link to comment
Share on other sites

Bear's got a grudge over Blesta that's all it is on that note, we've been infracted / warned more times than anything. What I was talking about is this.. If people who are your customers can't understand between a invoice needs paying and the renew date is when the next invoice is due, well your not aiming at a market who can understand bills / payments / and webhosting.

Link to comment
Share on other sites

Bear's got a grudge over Blesta that's all it is on that note, we've been infracted / warned more times than anything. What I was talking about is this.. If people who are your customers can't understand between a invoice needs paying and the renew date is when the next invoice is due, well your not aiming at a market who can understand bills / payments / and webhosting.

 

 

Lol, you are right in the two sentences :)

 

Off topic: We know that Bear as a Blesta user account in this forum and is watching what we say :)

 

For "Bear": Dont get us rong, but, I have seen lately in WebHostinTalk that every Blesta post is heavily moderated ,and we know that Bear was, or is a WHMCS forum moderator, so Bear do everithing to keep WHMCS focus :)

 

Like Bear say: "Have a problem? don't we all?" lol

Link to comment
Share on other sites

The thing is, when you see a invoice you see the following: 

 

Date Billed | Date Due

17/03/2014 | 22/03/2014

 

And the product line says:

 

Date renews

22 April 2014

 

Now to someone with common sense will go, ok the renew date says next month, the invoice is due this month, I better pay it else I could get suspended.

 

I would tend to disagree with your statement.  I would expect someone with common sense would think, "Ok, it looks like someone else here must have renewed it".  Particularly when the renewal date may be up to 10 years in the future (for a .com domain, for example).

 

But I guess the point is that it shouldn't be ambiguous -- it should be quite clear that the service terminates on the date indicated unless payment is received... at which point it renews.  I don't see this as a feature request, I believe it is definitely a bug.

Link to comment
Share on other sites

I have noticed that the service expiry date renews for another term when it is invoiced.  I expect this should actually occur when the invoice is paid.

 

That's not how Blesta works, but feel free to make a feature request if you'd like. If Blesta worked this way, services would renew at bizarre intervals, and the user would be able to control renew dates based on when they feel like paying. Sounds like a big a headache.

 

We invoice 14 days before the renewal of the term and some customers will elect to notify us of their intention to cancel at the end of the term.  This then leads to a secondary bug -- if I try to reduce the term back to its original expiry date, I get an error message indicating I need to select a date greater then the last renew date.  If you look at the attached snapshot you will see I am trying to enter 27 March 2014 but it is giving me an error despite it wanting a value greater than 26 March. Perhaps there is a timezone calculation that is awry here as we are in UTC+11 (Sydney, AU).  In the end I just scheduled a cancellation date for 27 March 2014 instead.

I have not been able to duplicate this, but attempting to change the renew date of a service from some date to a future date should always work. Are you able to reproduce this continuously (that is, at various times of day: morning and evening)?

Link to comment
Share on other sites

 

That's not how Blesta works, but feel free to make a feature request if you'd like. If Blesta worked this way, services would renew at bizarre intervals, and the user would be able to control renew dates based on when they feel like paying. Sounds like a big a headache.

 

This is definitely how it is working on our installation.  Please see the attached screenshot with an example outlined in red.  You will note the service already has already got an expiry date of 27 March 2016 whilst invoice #3217 remains unpaid and is due on 27 March 2014 (the the renewal date of the domain).

 

Some things that may [or may not] be relevant to this bug:

  • We upgraded from 2.5 to 3.1.1
  • Autodebit is on, although it shouldn't actually have an effect because all payments are initiated by the client (the autodebit is set to 1 day before due date, in settings)
  • Automatically Provision Paid Pending Services is active in settings

post-23-0-12849600-1395715352_thumb.jpg

Link to comment
Share on other sites

That may be, but the problem is that the service shouldn't yet be showing Date Renews of 27.3.2016 until the invoice is paid.  It should show 27.3.2014.

 

But then as cody said, I could pay that on 1.4.2014 and it would then say 1.4.2016 and not the proper date. even though you paid for the service probably.

Link to comment
Share on other sites

No, if you paid it on 1.4.2014 then it should renew the term based upon the actual renewal date.  What I am saying is that it shouldn't show the new renewal date until after the invoice is paid.

 

Blesta bumps the renew date when the invoice is created, and this is for a very good reason. Suppose you had a service that renewed every day, but you invoice 3 days in advance. On March 25 you invoice for March 28, On March 26 for March 29, etc. If the renew date didn't advance until the invoice is paid then the March 26 invoice couldn't be generated until after the March 25 invoice is paid. Moreover, if the user failed to pay within 24 hours then all future billing would be X days off (where X is the number of days the user took to pay the last invoice).

 

I think you might be thinking about "renew date" in the wrong way. Renew date is when a service's NEXT invoice should be due. It is not when a service's current invoice should be due.

Link to comment
Share on other sites

Blesta bumps the renew date when the invoice is created, and this is for a very good reason. Suppose you had a service that renewed every day, but you invoice 3 days in advance. On March 25 you invoice for March 28, On March 26 for March 29, etc. If the renew date didn't advance until the invoice is paid then the March 26 invoice couldn't be generated until after the March 25 invoice is paid. Moreover, if the user failed to pay within 24 hours then all future billing would be X days off (where X is the number of days the user took to pay the last invoice).

 

I think you might be thinking about "renew date" in the wrong way. Renew date is when a service's NEXT invoice should be due. It is not when a service's current invoice should be due.

 

 

Why dont you do like the exemple above, the database field "date_last_renewed" alredy exists on blesta:

if (!empty($service->date_last_renewed)){
  $service->date_last_renewed;
  }else{
  $service->date_renews;
  }

and this way there is no confusing :)

 

the big problem is everybody that have worked with outher billing systems, the date, until paid confirmation, is always the "date_last_renewed" if exists :)

 

A good exemple of the problem, is wen a client goes to Client Area, and clicks on Services->Suspended (wen the service is suspended)

 
and will see the "Date Renews" with the "next" renew date insted of the "current" renew date.
 
also on clicking on "Manage" they will see "Renews on" and they will be confused, I'm confused also :)
 
I have 2 solutions:
 
a) Rename the filed "Date Renews" and "Renews on", change to "Next Renew Date" and add an extra fild with the name "Date Renews" getting the database filed "date_last_renewed" if is filled or the field "date_renews" if the first is not filled.
 
B) Simple put the exemple code above to not make get the "date_last_renewed" if is filled.
 
We have made this change, and we will use because we know our clients and think like them :)
 
Regards,
PV
Link to comment
Share on other sites

I guess the difference here is perspective.  From the customer and business operator's perspective, the Renew Date shown in the portal should represent when the current paid-for term expires/renews.  From Blesta's perspective it is when the next invoice needs to be generated.

 

PauloV has made a good suggestion, which seems to reaffirm my opinion that Blesta should represent the renew date from the customer's perspective whilst it tracks the next invoice date internally.  Can this thread be moved into the feature request forum?

Link to comment
Share on other sites

I guess the difference here is perspective.  From the customer and business operator's perspective, the Renew Date shown in the portal should represent when the current paid-for term expires/renews.  From Blesta's perspective it is when the next invoice needs to be generated.

 

PauloV has made a good suggestion, which seems to reaffirm my opinion that Blesta should represent the renew date from the customer's perspective whilst it tracks the next invoice date internally.  Can this thread be moved into the feature request forum?

 

Yes, I've moved it to the feature request forum.

 

PauloV's suggestion seems most feasible. The way renew dates are handled internally to Blesta cannot be changed, however the way they are displayed to customers would be much simpler to change.

Link to comment
Share on other sites

  • 1 month later...
PauloV's suggestion seems most feasible. The way renew dates are handled internally to Blesta cannot be changed, however the way they are displayed to customers would be much simpler to change.

 

 

I'm in agreement with everyone, the label "date renews" (and its variants) is incredibly confusing for end users, including ourselves. Now that the Blesta team have explained how it works it all makes perfect sense and is good design, but as PauloV said, those not in the know will only get confused. I'm going to take another approach. As Cody has explained that this is the date when the next invoice is due, I'm going to change the language files to say "Next due date" (like competitors do in their control panels). I think that the label is the issue here.

Unfortunately it is quite a few files to alter:

\language\en_us\admin_billing.php
\language\en_us\admin_clients.php
\language\en_us\admin_search.php
\language\en_us\client_services.php
\plugins\order\language\en_us\admin_main.php
\language\en_us\services.php
Link to comment
Share on other sites

  • 2 months later...

Hi,

 

Its actually nothing to do with how blesta works. It should be how blesta should work for the people who pay for it. By the people I mean who are using it in lie environments. I am also facing this same issue. The clients are not dumb, they are over smart. They are clever. They would use every trick / excuse in the book not to pay. Software should work for us and not the other way around. Anyways, the point is that it would be wise / good that is blesta atleast shows the expiring date and not the renewed date to the client until the invoice is paid. That would solve the issues. Nobody wants to get into arguments with a client over issues like these. WHMCS in this case works fine. And blesta should simply extend the term instead of calculating. If service that is being charged monthly expires on 1-8-2014 and customer pays on 7-8-2014 then blesta should simply increment the date to 1-9-2014.

 

Thanks.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...