jdwalte3 Posted October 28, 2009 Share Posted October 28, 2009 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 0 Quote Link to comment Share on other sites More sharing options...
web2008 Posted October 29, 2009 Share Posted October 29, 2009 We have disabled the manually renew button. 0 Quote Link to comment Share on other sites More sharing options...
simplybe Posted October 30, 2009 Share Posted October 30, 2009 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. 0 Quote Link to comment Share on other sites More sharing options...
jdwalte3 Posted October 30, 2009 Author Share Posted October 30, 2009 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. 0 Quote Link to comment Share on other sites More sharing options...
othellotech Posted October 30, 2009 Share Posted October 30, 2009 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 0 Quote Link to comment Share on other sites More sharing options...
simplybe Posted October 30, 2009 Share Posted October 30, 2009 "The renew button should be disabled if there is an open invoice" please can you provide more info on how to do this with the tpl files ? If domain 'Abc' has an open invoice how do you disable the manual renew button just for domain 'Abc' ? thanks 0 Quote Link to comment Share on other sites More sharing options...
othellotech Posted October 31, 2009 Share Posted October 31, 2009 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 0 Quote Link to comment Share on other sites More sharing options...
simplybe Posted November 1, 2009 Share Posted November 1, 2009 Thanks for the code, will give it a go. 0 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.