Cancellation Manager

Aus Plambee.de Webhosting Wiki
Zur Navigation springen Zur Suche springen

Der Cancellation Manager bietet Ihnen die Möglichkeit ihre WHMCS Produkte mit Vertragslaufzeiten und Kündigungsfristen zu versehen. Dem Kunden werden bei einer Kündigung die nächsten 5 möglichen Kündigungszeitpunkte angezeigt.

Systemvorraussetzungen

Zur Nutzung und Installation des Cancellation Manager Moduls müssen folgende Voraussetzungen erfüllt sein:

  • Lauffähige WHMCS Installation Version 7.2 - 7.6
  • Admin Zugang zu WHMCS
  • FTP Zugang
  • installierter Ioncube Loader (mindestens Version 10.2)
  • PHP 5.6 - 7.2

Installation

  • Loggen Sie sich bitte im Kundenbereich von Plambee.de Webhosting ein und laden sich dort die aktuelle Version des Cancellation Manager herunter.
  • Entpacken Sie die zip.Datei auf Ihrem Rechner
  • laden Sie die Ordner modules und templates via FTP in Ihr WHMCS Verzeichnis.
  • Loggen Sie sich nun in Ihrem WHMCS Adminbereich ein
  • In der Addonauflistung suchen Sie nun bitte nach dem Modul „Cancellation Manager“ und klicken dort bitte auf „Activate“ und danach auf „Configure“
  • In dem Feld „Module license“ tragen Sie bitte ihren Lizenzcode ein, diesen finden Sie im Plambee.de Kundenbereich in den Produktdetails.
  • In dem Feld "Admin Reminder Days" können Sie angeben wie viele Tage vor Durchführung der Kündigung der Admin eine Erinnerung erhalten soll, sofern die Option darunter entsprechend aktiviert ist.
  • In dem Feld "Client Reminder Days" können Sie angeben wie viele Tage vor Durchführung der Kündigung der Kunde eine Erinnerung erhalten soll, sofern die Option darunter entsprechend aktiviert ist.
  • Mit der Option "Redirect" können Sie die WHMCS eigene Kündigungsübersicht im Adminbereich direkt auf das Modul umleiten lassen, so können Sie weiterhin den Menüpunkt Cancellation Requests verwenden.
  • Deaktivieren Sie unbedingt das WHMCS eigene Kündigungssystem in den Automation Settings

Ist das Modul fertig installiert können Sie nun in das Modul gehen und dort für Ihre Produkte die jeweiligen Fristen hinterlegen. Wenn Sie die Fristen hinterlegt haben müssen dann noch ein paar Templateanpassungen gemacht werden, sofern Sie nicht die mitgelieferten Templatedateien verwenden.

Templateanpassungen

Das Modulpaket enthält bereits für das six Template angepasste Dateien, sollten Sie aber ein eigenes Template verwenden oder sollten die entsprechenden TPL Dateien von Ihnen bereits modifiziert werden müssen Sie Ihre Templatedateien manuell anpassen. In der Beschreibung orientieren wir uns am Six Template von WHMCS, bei anderen Templates können die erforderlichen Anpassungen abweichen, wenn Sie die entsprechenden Anpassungen nicht selbst vornehmen können wenden Sie sich bitte zwecks Angebot an unseren Support.

clientareaproductdetails.tpl

Wenn Sie dem Kunden in den Produktdetails anzeigen möchten zu wann das Produkt gekündigt wurde, öffnen Sie die clientareaproductdetails.tpl in einem Editor und fügen Sie an geeigntere Stelle folgendes hinzu:

{if $cancellation_manager_canceldate}
<h4><strong>{$canceled_to} {$cancellation_manager_canceldate}</strong></h4>
{/if}

Durch die IF Abfrage wird der Hinweis nur angezeigt wenn es für das Produkt auch eine Kündigung gibt.

clientareacancelrequest.tpl

Die Anpassung der clientareacancelrequest.tpl ist erforderlich damit dem Kunden die Kündigungszeitpunkte angezeigt werden und damit die Kündigung beim Modul ankommt. Ohne diese Anpassung landet die Kündigung im WHMCS eigenen Kündigungssystem und das Produkt kann zum falschen Zeitpunkt gekündigt werden wenn das WHMCS eigene Kündigungssystem nicht deaktiviert ist.


Fügen Sie unter dem

{elseif $requested}

bitte ein

{if $cm_remove_cancel == '1'}

ein.

Suchen Sie dann bitte die Zeile

{include file="$template/includes/alert.tpl" type="success" msg=$LANG.clientareacancelconfirmation textcenter=true}

und fügen darunter folgendes ein

<form role="form" method="post" action="" id="form" class="form-stacked">
    <div class="form-group">
                <div class="form-inline text-center">
                    <input class="btn btn-danger" type="submit" name="cm_remove_cancel" value="Kündigung widerrufen">
                </div>
            </div>
    </form>
{else}
<div class="alert alert-danger">
  {$cm_remove_late}
</div>
{/if}

nun ersetzen Sie die Zeile

    
<form method="post" action="{$smarty.server.PHP_SELF}?action=cancel&id={$id}" class="form-stacked">
        <input type="hidden" name="sub" value="submit" />

mit

{if $cm_cancel_dates != ''}
    <form role="form" method="post" action="" id="form" class="form-stacked">

Den Block

<div class="form-group">
                <div class="form-inline text-center">
                    <label class="control-label" for="type">{$LANG.clientareacancellationtype}</label>
                    <select name="type" id="type" class="form-control">
                        <option value="Immediate">{$LANG.clientareacancellationimmediate}</option>
                        <option value="End of Billing Period">{$LANG.clientareacancellationendofbillingperiod}</option>
                    </select>
                </div>
            </div>
            <div class="form-group">
                <div class="form-inline text-center">
                    <input type="submit" value="{$LANG.clientareacancelrequestbutton}" class="btn btn-danger" />
                    <a href="clientarea.php?action=productdetails&id={$id}" class="btn btn-default">{$LANG.cancel}</a>
                </div>
            </div>

ersetzen Sie bitte mit

<div class="form-group">
                <div class="form-group"><div class="form-inline text-center">
                  <label class="control-label" for="type">{$cm_lang_cancelation_date}</label>
                    <select name="date" class="form-control">
                      {foreach from=$cm_cancel_dates item=date}
                        <option value={$date.systemdate}>{$date.clientdate}</option>
                      {/foreach}
                    </select>
                  </div>
                </div>
            </div>
            <div class="form-group">
                <div class="form-inline text-center">
                    <input class="btn btn-danger" type="submit" name="cm_cancel_product" value="{$LANG.clientareacancelrequestbutton}">
                </div>
            </div>

und nach dem </form> fügen Sie folgendes ein

{else}
    <div class="alert alert-success">
  {$cm_free_product}
</div>
{/if}
    {if $cancelation_manager_hasaddon}

    <table class="table">
    <thead>
      <tr>
        <th>Addonname</th>
        <th>Kündigungsdatum</th>
        <th></th>
      </tr>
    </thead>
     <tbody>
{foreach from=$cm_addon_dates item=addon}
   <form action="" method="post">
   <tr>
   <td>{$addon.name}</td>
   {if $addon.dates neq ""}
      <input type="hidden" value="{$addon.id}" name="addon_cancel_id" id="addon_cancel_id">
      {if !$addon.hascancel}  
         <td><select name="date" class="form-control">
         {foreach from=$addon.dates item=addondate}
            <option value={$addondate.systemdate}>{$addondate.clientdate}</option>
         {/foreach}
         </select></td>
        <td><input class="btn btn-danger" type="submit" name="cm_cancel_addon" value="{$cm_cancel_addon}"></td>
       {else}
          <td>{$addon.hascancel}</td>
          <td><input class="btn btn-danger" type="submit" name="cm_remove_addon_cancel" value="{$cm_remove_cancellation}"></td>
       {/if}
       {else}
           <td>{$cm_addon_no_entries}</td>
       {/if}
       </tr></form>                      
   {/foreach}    
   </tbody>
   </table>
{/if}

Verwendung

Fristen hinterlegen

Fristen im Modul speichern

Um eine Frist für ein Produkt im Modul zu hinterlegen gehen Sie bitte in das Modul und klciken oben auf "Fristen" und dann auf Frist hinzufügen.
Wählen Sie dnn bitte das Produkt aus für welches Sie die Frist hinterlegen möchten. Nun haben Sie folgende Einstellungsmöglichkeiten:

  • Verwende Configoption für die Vertragslaufzeit: Aktivieren Sie diese Option wenn Sie die Vertragslaufzeit nicht direkt im Modul hinterlegen möchten sondern dafür eine Config Option verwenden möchten (Details weiter unten).
  • Verwende Configoption für die Kündigungsfrist: Aktivieren Sie diese Option wenn Sie die Kündigungsfrist nicht direkt im Modul hinterlegen möchten sondern dafür eine Config Option verwenden möchten (Details weiter unten).
  • Abrechnungsinterval = Vertragslaufzeit: Mit dieser Option entspricht die Mindestvertragslaufzeit dem Abrechnungsinterval. Hat der Kunde z.B. eine Halbjährliche Abrechnung dann beträgt die Laufzeit 6 Monate.
  • Vertragslaufzeit in Monaten: Wenn Sie die Laufzeit nicht über eine ConfigOption regeln möchten tragen Sie hier bitte die Anzahl der Monate für die Vertragslaufzeit ein. Also z.B. 6
  • Config Option für die Vertragslaufzeit: Wenn Sie oben das Kästchen für die ConfigOptions ausgewählt haben können Sie hier die entsprechende Config Option auswählen. Sofern Sie noch keine entsprechende ConfigOption erstellt haben legen Sie diese bitte an.
  • Kündigungsfrist in Tagen: Wenn Sie die Frist nicht über eine ConfigOption regeln möchten tragen Sie hier bitte die Anzahl der Tage für die Vertragslaufzeit ein. Also z.B. 14
  • Config Option für die Kündigungsfrist: Wenn Sie oben das Kästchen für die ConfigOptions ausgewählt haben können Sie hier die entsprechende Config Option auswählen. Sofern Sie noch keine entsprechende ConfigOption erstellt haben legen Sie diese bitte an.
  • erst Sperren: Aktivieren Sie dieses Kästchen wenn Sie die Produkte zum Kündigungszeitpunkt sperren und nicht Kündigen möchten
  • endgültig kündigen nach X Tagen: Geben Sie hier bitte an wie viele Tage nach der Sperrung das Produkt gekündigt werden soll
  • Kündigung Widerrufen bis X Tage vor Kündigung: Hier können Sie die Anzahl der Tage (z.B. 4) eintragen ab wann der Kunde eine hinterlegte Kündigung nicht mehr über den Kundenbereich widerrufen kann. Die Eingabe von z.B. 4 bedeutet das die Kündigung 4 Tage vor Durchführung nicht mehr widerrufen werden kann.

Wenn Sie alles eingestellt haben klicken Sie bitte auf Speichern

Fristen aktualisieren

Wenn Sie eine bereits vorhandene Frist ändern möchten dann erstellen Sie diese einfach neu, als wenn es für das Produkt noch keine Frist geben würde. Die vorhandene Frist wird beim Speichern dann aktualisiert

ConfigOptions

Wenn Sie die Frist und/oder Laufzeit mittels ConfigOption realisieren möchten gehen Sie bitte wie folgt vor:

  • Erstellen Sie eine neue ConfigOption in einer neuen oder bestehenden Gruppe
  • Für die Kündigungsfrist muss die Option wie folgt aussehen: ANZAHL_DER_TAGE|Ihr Text. Also z.B. 14|14 Tage Kündigungsfrist
  • Für die Vertragslaufzeit muss die Option wie folgt aussehen: ANZAHL_DER_Monate|Ihr Text. Also z.B. 1|1 Monat Mindestvertragslaufzeit
  • Weisen Sie die ConfigOptions dem Produkt zu


E-Mail Vorlagen

E-Mails die an den Kunden und den Admin gesendet werden, können über das Vorlagensystem von WHMCS angepasst werden. Die Vorlagen werden teilweise vom Modul bei der Installation angelegt oder sind bereits bei WHMCS selbst enthalten, zur Verfügung stehen hier je nach Vorlage unterschiedliche Variablen.

Cancellation Request Confirmation

Bei der WHMCS eigenen Kündigungsbestätigung steht mit dem Modul zusätzliche Variablen zur Verfügung:

  • {$cancellation_date} = Anzeige des Kündigungsdatums

Cancellation of termination

Diese E-Mail Vorlage wird an den Kunden geschickt wenn die Kündigung für sein Produkt widerrufen wurde. Hier stehen folgende Variablen zur Verfügung

  • {$cancel_date} = Das Datum an welchen das Produkt gekündigt wurde
  • {$product} = Das Produkt für das die Kündigung widerrufen wurde

Cancellation Reminder

Diese E-Mail wird für die Erinnerung des Kundens an die Kündigung verwendet. Hier stehen folgende Variablen zur Verfügung

  • {$days} = Anzahl der Tage wann die Produkte gekündigt werden
  • {$canceled_product} = Array welcher die entsprechenden Produkte mit Service ID und Kündigungsdatum enthält

New Cancellation Request

Diese E-Mail wird an den Admin des Systemes versendet wenn eine Kündigung hinterlegt wird. Hierbei handelt es sich um eine Vorlage die von WHMCS kommt. Neben den WHMCS eigenen Variablen steht hier noch die Variable {$domain_cancelled} zur Verfügung. Diese Variable kann 2 Werte beinhalten, 0 und eins. Hierdurch können Sie z.B eine If Abfrage hinterlegen.

{if $domain_cancelled == '1'}Die Domain {$domain_name} wurde durch den Kunden gekündigt{/if}

Template Variablen

Für die Seite der Produktdetails stehen Ihnen zur Darstellung der Laufzeit und Frist zusätzlich die Variablen zur Verfügung:

  • {cm_notice_time} = Kündigungsfrist
  • {$cm_contracttime} = Vertragslaufzeit

ProRata Besonderheiten

Um auch bei Produkten mittels ProRata Abrechnung Fristen und Vertragslaufzeiten zu realisieren gibt es hier eine kleine Besonderheit im Modul. Bei der ProRata Abrechnung wird das Produkt immer an einem bestimmten Tag im Monat abgerechnet (häufig der 1. des Monats), egal wann der Kunde dieses ursprünglich bestellt hat. Hierbei erhält der Kunde bei der Bestellung nur eine anteilige Rechnung z.B. 11-30. und am dem 1. des folgen Monats wird er immer vom ersten bis zum letzten abgrechnet. Nun hat man aber das Problem das die Vertragslaufzeit von zum Beispiel 1 Monat, dem Kunden die Möglichkeit gibt zum 11. eines Monats zu kündigen, da WHMCS aber vom 1. bis zum letzten des Monats abgerechnet hat müsste man dem Kunden eine Gutschrift für die restlichen Tage geben. Ein Umstand der wieder Personalaufwand und Kosten verursacht. Um dies zu erleichtern sorgt das Modul dafür das die letzte Rechnung des Kundens nur anteilig berechnet wird also z.B. vom 1.-10. So ist es auch bei ProRata möglich Vertragslaufzeiten korrekt zu nutzen ohne zusätzlichen Aufwand durch Erstattungen befürchten zu müssen. Sollte der Kunde seine Kündigung nun zurücknehmen, erstellt das Modul 1 Tag nachdem die Kündigung hätte durchgeführt werden sollen eine erneute Rechnung für die restliche Zeit des Monats, also z.B. 10.-30. damit WHMCS ab dem nächsten Monat wieder die gewohnte Abrechnung zum 1. durchführen kann.

Hinweis zu PayPal Subscriptions

Sollte Ihr Kunde irgendwelche Abo Zahlungen haben, dann achten Sie bitte drauf diese zu kündigen. WHMCS kündigt zwar z:b. PayPal Abozahlungen bei der Kündigung des Produktes selber, aber es besteht keine Möglichkeit die Abozahlung zu verändern damit PayPal bei der letzten Rechnung nur einen anteiligen Betrag abbucht. Somit würden Sie dem Kunden zwar eine anteilige Rechnung schicken, erhalten von PayPal aber eine vollständig abgerechnete Zahlung.

Hinweise

Addons

Wenn das Hauptprodukt gekündigt wird, werden von WHMCS alle Addons zu diesem Produkt ebenfalls gekündigt. Addons können nicht alleine bestehen.

Domains

Wenn das Hauptprodukt mit einer Domain verbunden ist, erhält der Kunde die Möglichkeit die Domain mit dem Hauptprodukt zu kündigen. Das Modul führt mit dem Absenden der Kündigung die WHMCS API Funktion updateclientdomain aus und setzt den Parameter "donotrenew" auf false, damit die Domain nicht verlängert wird. Dies setzt aber den Support dieser FUnktion bei Ihrem Registrarmodul vorraus.