Jump to content

Clients Manually Renew Domain when Invoice already Exist


jdwalte3

Recommended Posts

Hi,

 

I am hoping to learn how you handle this scenario.

 

We Invoice clients 30 days in advance of domain renewal/expire date. Client may have abc.com and xyz.com expiring on Nov 30 so WHMCS would automatically send 1 Invoice for both domains on Nov 1.

 

Issue 1: Customer may manually renew abc.com by placing a new renewal order. This new renewal order creates a separate Invoice yet results in abc.com remaining on the Invoice created Nov 1. Do you still renew the customer domain for yet another year on the Invoice due date or do you manually check renewal orders and remove the domain from the initial Invoice?

 

Issue 2: Customer receives the Invoice notice on Nov 1 and decides they will log into WHMCS and set the domains to Do Not Renew. However, this process keeps the Nov 1 Invoice open and their card will be charged. How do you prevent this from happening?

 

I can see this becoming a mess for us and would love to learn how you handle these situations.

 

JD

Link to comment
Share on other sites

it is a mess. I have had to issue refunds for domains that clients set to do not renew after the invoice was created. I have now changed the email to inform clients that they must email to cancel a domain that has an unpaid invoice before they are charged.

 

A little more work on whmcs in this area is needed. The renew button should be disabled if there is an open invoice. There is also a problem with uk domains and eu domains. clients can renew an eu domain but enom don't accept renewals only autorenew. Uk domains can also be renewed at any time but enom do not accept renewals until near the expiry date.

Link to comment
Share on other sites

Interesting problem we have here. I am "encouraging" customers to pay their domain Invoices in advance as sometimes credit cards do not process automatically, domains then expire, and customers have a fit thinking it is our fault. I am putting this responsibility to pay their Invoice on them.

 

I guess I just have to revise my domain expiration notice emails to indicate that customers need to submit tickets to cancel domains (especially when there are multiple domains on one Invoice).

 

I would like to see the process in whmcs revised to allow a client to cancel a product and the relevant line item on an Invoice, if an Invoice exist Unpaid.

 

Thanks for the feedback.

Link to comment
Share on other sites

I have had to issue refunds for domains that clients set to do not renew after the invoice was created

add a cron job to set the invoice to cancelled if thats what you *allow* clients to do ...

 

The renew button should be disabled if there is an open invoice

An easy enough change to your .tpl if you dont want them being able to decide to renew it for a different number of years ...

 

Uk domains can also be renewed at any time but enom do not accept renewals until near the expiry date.

 

The solution for this has already been posted on the forums

Link to comment
Share on other sites

something like this :)

{if $renew}<td align=right>
{php}
// get smarty variables $domain and $nextduedate
$domain = $this->get_template_vars('domain');
$duedate = explode("/",$this->get_template_vars('nextduedate'));
$duedate = array($duedate[2], $duedate[1], $duedate[0]);
$nextduedate=implode("-", $duedate);

// find in tblinvoiceitems to see if invoiced
$invoicequery = "SELECT * FROM tblinvoiceitems WHERE type='Domain' AND duedate ='".$nextduedate."' AND description LIKE 'Domain Renewal - ".$domain." -%';";
$invoiceresult = mysql_query($invoicequery);
$invoicedalready = mysql_num_rows($invoiceresult);
$renewalinvoice = 0;
if ($invoicedalready >= 1)
{
       $renewalinvoice = 1;
}
$this->assign('renewalinvoice',$renewalinvoice);
{/php}
<form method="post" action="{$smarty.server.PHP_SELF}?action={if $renewalinvoice}invoices{else}domainrenew{/if}">
<input type="hidden" name="domainid" value="{$domainid}">
<input type="submit" value="{$LANG.domainrenew}" class="button">
</form>
</td>
{/if}
</tr>
</table>

which redirects them to the invoice if they click renew ... adjust as required to suit your methodologies :D

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.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

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