Registrierungsformular anpassen

Kein Onlineshop ist wie der andere, die Konzepte für das Affiliate-Marketing unterscheiden sich und so sind auch die Anforderungen an das Registrierungsformular für Partner unterschiedlich. Erfahren Sie im Turorial, wie Sie Update-sichere Anpassungen vornehmen, um die Pflichtfelder zu bearbeiten, einen Link zu den AGB einzufügen oder Änderungen an den Auszahlungsmethoden vorzunehmen.

Teilnahmebedingungen als Modal anzeigen (ab Version 2.0)

Seit Version 2.0 des 📊 Gambio Affiliate-Moduls fügen wir den Link zu Teilnahmebedingungen für Partner einfach im Gambio-Admin ein.

Mauszeiger auf Teilnahmebedingungen Partnerprogramm
ID im Content-Manager
Content: Teilnahmebedingungen Partnerprogramm, Markierte Zahl in Adresseingabezeile
Content-ID aus Adresseingabezeile kopieren

Gehen wir nun davon aus, dass wir besagte Teilnahmebedingungen für Partner bereits als eigene Inhaltsseite im Content-Manager angelegt haben. Was wir für die Verlinkung als Modal benötigen, ist die Content-ID. Diese finden wir heraus, indem wir die im Content-Manager den Mauszeiger auf die entsprechende Tabellenzeile bewegen.

Alternativ rufen wir die Bearbeiten-Funktion des Content-Managers auf und kopieren uns die Content-ID aus der Adresseingabezeile des Browsers. In unserem Beispiel lautet die Content-ID 3210126.

Texte anpassen: HTML-Code für Modal
Modal für Teilnahmebedingungen einfügen

Unter Inhalte > Texte anpassen finden wir die Phrase wm_affiliate_accept_tos in der Section: wm_affiliate_signup. Auf deutsch lautet der Text standardmäßig: Ich akzeptiere die Teilnahmebedingungen. Diesen erweitern wir nun zum Beispiel so:

Ich akzeptiere die <a href="popup_content.php?coID=3210126&lightbox_mode=1" target=_blank class=lightbox_iframe data-modal-settings={"title":"Teilnahmebedingungen, "convertModal":"info", "sectionSelector":".content_text", "bootstrapClass":"modal-lg", "zIndex": 9999}' rel=nofollow>Teilnahmebedingungen</a>.

Update-sichere Anpassung

Unabhängig davon, welche Änderungen Sie am Registrierungsformular vornehmen möchten, sollten diese Update-sicher sein, also nicht die Original-Datei des Affiliate-Moduls verändern. Seit Version 2.0 geschieht das nicht mehr über eine gleichnamige „usermod“-Kopie im selben Verzeichnis, sondern über Smartys Template-Vererbung (extends): Ein eigenes, separates Modul überschreibt gezielt einzelne Bausteine („Blocks“) der Original-Datei.

Die Vorgehensweise zur Erstellung individueller Templates ist für alle Seiten des Affiliate-Moduls dieselbe. Im konkreten Fall handelt es sich um die folgende Datei:

/GXModules/Werbe-Markt/PayPerSale/Shop/themes/All/wm_affiliate_signup.html

Sie gliedert sich in klar benannte Blöcke, z. B. wm_affiliate_signup_form_group_company für das Firmenfeld oder wm_affiliate_signup_form_group_accept_tos für die AGB-Checkbox. Für eine Anpassung legen wir unter demselben Dateinamen eine Datei im Custom-Modul unseres Shops an:

/GXModules/Werbe-Markt/PayPerSaleCustom/Shop/themes/All/wm_affiliate_signup.html

Als erste Zeile enthält diese Datei stets die Vererbung von der Original-Datei:

{extends file="{$smarty.const.DIR_FS_CATALOG}GXModules/Werbe-Markt/PayPerSale/Shop/themes/All/wm_affiliate_signup.html"}

Darunter überschreiben wir nur die Blöcke, die wir tatsächlich anpassen möchten – alle übrigen Blöcke, und damit auch künftige Modul-Updates, bleiben unangetastet. Innerhalb eines überschriebenen Blocks lässt sich mit {$smarty.block.parent} außerdem der ursprüngliche Inhalt mit einbinden, statt ihn komplett zu ersetzen; mit dem Zusatz append direkt hinter dem Blocknamen wird eigener Inhalt automatisch hinter den Original-Inhalt gehängt, ganz ohne {$smarty.block.parent}.

Fallbeispiele

Soweit zur allgemeinen Vorgehensweise. Kommen wir nun zu konkreten Anpassungen, wie sie in der Praxis häufig vorkommen.

AGB verlinken

Gegebenenfalls ist „AGB“ bereits die falsche Bezeichnung, wenn Sie beispielsweise gesonderte Teilnahmebedingungen für das Partnerprogramm verwenden möchten. Da der Text der AGB-Checkbox über die weiter oben beschriebene Phrase wm_affiliate_accept_tos ausgegeben wird, reicht dafür bereits eine Anpassung unter Inhalte > Texte anpassen – ganz ohne Template-Override. Möchten Sie statt des Modals einen normalen Link verwenden, der in einem neuen Tab öffnet, tragen Sie dort einfach ein:

Die 
<a href="/info/partnerprogramm-teilnahmebedingungen.html" target="_blank">
    Teilnahmebedingungen für das Partnerprogramm
</a> 
habe ich gelesen und akzeptiere diese.

Auszahlungsdaten ausblenden

Wenn Sie nur eine einzige Auszahlungsmethode anbieten möchten, macht ein Auswahlfeld mit nur einer Option wenig Sinn. Ein weiterer möglicher Anwendungsfall wäre, dass Sie Partnern die Angabe von Zahlungsinformationen erst nach erfolgter Registrierung im Login-Bereich anbieten möchten.

Auswahl aktiver Auszahlungsmethoden im Admin-Menü

Die verfügbaren Auszahlungsmethoden wählen Sie im Admin-Menüpunkt Optionen aus. Das Auswahlfeld passt sich sowohl im Registrierungsformular als auch der Datenbearbeitung im Login-Bereich automatisch an. Betrachten wir zwei konkrete Fälle, in denen die Auswahl von Auszahlungsmethoden im Registrierungsformular gar nicht erst erscheinen soll.

Das Formular ist heute in einzeln benannte Blöcke aufgeteilt, jeweils einer pro Feld: wm_affiliate_signup_form_group_payout_info (Auswahlfeld), wm_affiliate_signup_form_group_bank, _iban, _swift, _paypal und _moneybookers. Statt HTML-Tabellenzeilen von Hand herauszuschneiden, überschreiben wir in unserer PayPerSaleCustom-Datei (siehe oben) einfach diese Blöcke mit versteckten Feldern. Wichtig: Die Feldnamen (bank, kontonr, blz, paypal, moneybookers, payout_method) müssen als verstecktes Feld erhalten bleiben, auch wenn sie leer sind – sonst bricht die Registrierung serverseitig ab, weil das Modul das Vorhandensein aller Formularfelder prüft.

CashBack-System statt Auszahlung

Nehmen wir an, dass eine Barauszahlung von Guthaben überhaupt nicht möglich sein soll. Ihre Partner sind allesamt auch Kunden und sollen in „Naturalien“ vergütet werden. Das heißt, jedes Partner-Account ist mit einem Kundenkonto verknüpft. Provisionen sollen als Guthaben auf das Kundenkonto umgebucht werden. Dazu ergänzen wir in unserer wm_affiliate_signup.html im PayPerSaleCustom-Modul:

{extends file="{$smarty.const.DIR_FS_CATALOG}GXModules/Werbe-Markt/PayPerSale/Shop/themes/All/wm_affiliate_signup.html"}
{block name="wm_affiliate_signup_form_group_payout_info"}
<input type="hidden" name="payout_method" value="4">
{/block}
{block name="wm_affiliate_signup_form_group_bank"}
<input type="hidden" name="bank" value="">
{/block}
{block name="wm_affiliate_signup_form_group_iban"}
<input type="hidden" name="kontonr" value="">
{/block}
{block name="wm_affiliate_signup_form_group_swift"}
<input type="hidden" name="blz" value="">
{/block}
{block name="wm_affiliate_signup_form_group_paypal"}
<input type="hidden" name="paypal" value="">
{/block}
{block name="wm_affiliate_signup_form_group_moneybookers"}
<input type="hidden" name="moneybookers" value="">
{/block}

Durch das versteckte Feld payout_method mit dem Wert 4 erfasst das Affiliate-Modul für den neu registrierten Partner automatisch die Zahlungsart Kunden-Guthabenkonto, ohne dass im Registrierungsformular weitere Angaben nötig sind.

Wichtig dabei: Standardmäßig würde die Auszahlungsmethode Kunden-Guthabenkonto erst zur Auswahl stehen, wenn das Affiliate-Account mit einem Kundenkonto verknüpft ist. Bei der Beantragung einer Auszahlung erfolgt daher keine weitere Prüfung auf Existenz der Verknüpfung oder des verknüpften Kundenkontos. Wenn Sie sich für diese Vorgehensweise entscheiden, müssten Sie also darauf achten, dass bis zum Erreichen der Auszahlungsgrenze die entsprechende Verknüpfung besteht.

Für das genannte Problem gibt es praktikable Lösungswege:

  1. Sie können es umgehen, indem Sie die Seiten zum Partnerprogramm nur für angemeldete Kunden sichtbar machen. Auf diese Weise nimmt das Modul bei der Partnerregistrierung automatisch die Verknüpfung mit dem Kundenkonto vor, in das der Kunde respektive neue Partner eingeloggt ist.
  2. Sie geben nicht die Auszahlungsart Kundenkonto vor, sondern beispielsweise Banküberweisung, indem Sie beim Block wm_affiliate_signup_form_group_payout_info den Wert 1 statt 4 angeben.

Auszahlungsmethode erst nach der Registrierung auswählbar

Die Vorgehensweise ist annähernd identisch mit der für das CashBack-System bzw. entspricht genau dem letztgenannten Lösungsvorschlag. Sie geben im Hintergrund die Auszahlungsmethode Bank vor, ohne die Angabe einer IBAN zu verlangen:

{extends file="{$smarty.const.DIR_FS_CATALOG}GXModules/Werbe-Markt/PayPerSale/Shop/themes/All/wm_affiliate_signup.html"}
{block name="wm_affiliate_signup_form_group_payout_info"}
<input type="hidden" name="payout_method" value="1">
{/block}
{block name="wm_affiliate_signup_form_group_bank"}
<input type="hidden" name="bank" value="">
{/block}
{block name="wm_affiliate_signup_form_group_iban"}
<input type="hidden" name="kontonr" value="">
{/block}
{block name="wm_affiliate_signup_form_group_swift"}
<input type="hidden" name="blz" value="">
{/block}
{block name="wm_affiliate_signup_form_group_paypal"}
<input type="hidden" name="paypal" value="">
{/block}
{block name="wm_affiliate_signup_form_group_moneybookers"}
<input type="hidden" name="moneybookers" value="">
{/block}

Pflichtfelder ändern

Die serverseitige Prüfung des Registrierungsformulars ist heute rein strukturell: Das Modul verlangt lediglich, dass alle erwarteten Formularfelder überhaupt übertragen werden – nicht, dass sie befüllt sind. Ob ein Feld tatsächlich ausgefüllt werden muss, entscheidet allein das HTML5-Attribut required im jeweiligen Template-Block. Eine separate Helfer-Klasse für die Pflichtfeld-Prüfung, wie sie frühere Versionen des Moduls hatten, gibt es nicht mehr.

Für Anpassungen legen wir wie oben beschrieben eine wm_affiliate_signup.html im Verzeichnis /GXModules/Werbe-Markt/PayPerSaleCustom/Shop/themes/All/ an, die von der Original-Datei erbt.

Telefonnummer als Pflichtfeld entfernen

Szenario: Die Angabe der Telefonnummer soll erhalten bleiben, allerdings optional sein. Dazu überschreiben wir den betreffenden Block und entfernen das required-Attribut:

{extends file="{$smarty.const.DIR_FS_CATALOG}GXModules/Werbe-Markt/PayPerSale/Shop/themes/All/wm_affiliate_signup.html"}
{block name="wm_affiliate_signup_form_group_phone"}
<div class="form-group">
   <div class="col-xs-12 col-md-2"><label for="tel" class="control-label">{$txt.wm_affiliate_phone}</label></div>
   <div class="col-xs-12 col-md-10 input-container"><input type="tel" name="tel" id="tel" value="{$data.tel}" class="form-control"></div>
</div>
{/block}

Firma als Pflichtfeld hinzufügen

Gehen wir nun davon aus, Sie möchten nur gewerblich tätige Partner bzw. Unternehmen zulassen und daher das Eingabefeld Firma als Pflichtfeld deklarieren. Auch hier genügt es, im überschriebenen Block das required-Attribut zu ergänzen:

{extends file="{$smarty.const.DIR_FS_CATALOG}GXModules/Werbe-Markt/PayPerSale/Shop/themes/All/wm_affiliate_signup.html"}
{block name="wm_affiliate_signup_form_group_company"}
<div class="form-group">
   <div class="col-xs-12 col-md-2"><label for="firma" class="control-label">{$txt.wm_affiliate_company}</label></div>
   <div class="col-xs-12 col-md-10 input-container"><input type="text" name="firma" id="firma" value="{$data.firma}" class="form-control" required></div>
</div>
{/block}

Einverständnis mit Datenschutzerklärung

Einverständnis zur Datenverarbeitung bei der Affiliate-Registrierung

In diesem Beispiel fügen wir ein weiteres, von der AGB-Checkbox unabhängiges Kontrollkästchen zur Akzeptanz der Datenschutzerklärung ein. Dieses muss der Partner zwingend aktivieren, um am Partnerprogramm teilnehmen zu können. Mit einem Verbreitungsgrad von weit über 97% für die Formularvalidierung verlassen wir uns auch hier auf das required-Attribut, eine serverseitige Prüfung ist nicht nötig. Mit dem Zusatz append hängen wir das neue Feld direkt hinter die AGB-Checkbox, ohne deren Block komplett neu schreiben zu müssen:

{extends file="{$smarty.const.DIR_FS_CATALOG}GXModules/Werbe-Markt/PayPerSale/Shop/themes/All/wm_affiliate_signup.html"}
{block name="wm_affiliate_signup_form_group_accept_tos" append}
<div class="form-group">
   <div class="col-xs-12 col-md-12 input-container">
      <label><input type="checkbox" name="privacy" value="1" required> Ich bin mit Speicherung und Verarbeitung meiner Daten einverstanden.</label>
      <br><small>Weitergehende Hinweise entnehmen Sie bitte der <a href="/datenschutz.htm">Datenschutzerklärung</a>.</small>
   </div>
</div>
{/block}

An Stelle von /datenschutz.htm tragen Sie bitte den Link zu Ihrer Datenschutzerklärung ein.

Weitere Beispiele

Beispiele zu weiteren Anwendungsfällen für die Anpassung des Partner-Registrierungsformular benötigt? Bitte einfach anfragen…

Schreiben Sie einen Kommentar