Sendy E-Mail-Marketing mit Digistore24 verbinden

Nach dem Kauf ist vor dem Kauf und deshalb ist es so wichtig, dass du deine Kunden nach ihrem Kauf nicht alleine lässt.

Ein E-Mail-Marketing-Tool wie Sendy eignet sich hervorragend dazu, deine Kunden nach dem Kauf weiter zu betreuen und auf dem Laufenden zu halten.

Heute möchte ich dir daher zeigen wie du deine eigene Sendy-Installation mit deinem Digistore24-Account verbindest, so dass deine Kundenkontakte vollautomatisch in deiner Sendy-Liste landen.

Außerdem gebe ich dir am Ende noch einen Tipp, wie du ganz einfach dafür sorgen kannst, dass Interessenten vollautomatisch aus deiner Interessentenliste ausgetragen werden, sobald sie dein Produkt gekauft haben.

Los geht’s! 💪

Das brauchst du für die Umsetzung

Sendy

Du musst bereits eine einsatzbereite Sendy-Installation haben.

Du kennst Sendy noch nicht, möchtest es aber gerne ausprobieren? Den besten Start legst du mit meinem Sendy-Videokurs hin!

Digistore24

Logischerweise brauchst du auch einen Digistore24 Vendoren-Account, um eine Verbindung zur IPN-Schnittstelle herzustellen.

Die IPN-Schnittstelle informiert unser kleines Skript über neue Kunden und unser Skript trägt diese Kunden in der gewünschten Sendy-Liste ein.

Webhosting

Für die Umsetzung dieser Anleitung brauchst du auch ein PHP-fähiges Webhosting, was heutzutage Standard ist.

Das solltest du bereits haben, wenn du Sendy installiert hast. Denn auch Sendy braucht ein PHP-fähiges Webhosting.

Das müssen wir vorbereiten

Vorbereiten müssen wir hier glücklicherweise nicht viel.

Erstelle erstmal ein leeres Verzeichnis irgendwo auf deinem Computer. Ich nenne meins einfach „sendy“:

sendy verzeichnis

Die komische Datei .gitattributes brauchst du nicht weiter beachten. Die brauchst du nicht.

Sendy PHP API Wrapper herunterladen

Um uns die Arbeit etwas leichter zu machen und damit ich nicht so viel Code selber schreiben muss (😉), greifen wir auf bereits fertigen Code zurück.

sendy api wrapper screen

Keine Sorge, hierbei handelt es sich um keine Software, die du irgendwie auf deinem Computer installieren musst.

Es ist eine Sammlung von PHP-Funktionen, um schneller mit der Sendy-Schnittstelle arbeiten zu können. Sonst müssten wir die Funktionen selber schreiben.

Wir brauchen zwar nur eine Funktion davon, aber für die Zukunft ist es nicht verkehrt auch weitere Funktionen parat zu haben. 🙂

Lade dir das gesamte Skript hier herunter.

Entpacke das heruntergeladene ZIP-Archiv und kopiere bzw. verschiebe das Verzeichnis Sendy-PHP-API-master in dein zuvor erstelltes sendy-Verzeichnis. In deinem Verzeichnis sollte es nun so aussehen:

sendy verzeichnis mit api wrapper

Cool, das ist schon die halbe Miete. Weiter geht’s! 🚀

Kontakte zu Sendy übertragen

Jetzt müssen wir ein wenig programmieren. Aber keine Sorge. Du musst jetzt nicht gleich zum Hacker werden. Ich nehme dir die meiste Arbeit ab. 👨‍💻

Erstelle in deinem sendy-Verzeichnis einfach eine neue Datei und nenne sie: subscribe.php

Es sollte nun so in deinem Verzeichnis aussehen:

sendy verzeichnis subscribe

Danach öffnest du die Datei einfach mit einem geeigneten Editor (nicht mit dem Standard-Editor deines Betriebssystems).

Verwende stattdessen lieber Visual Studio Code. Das Programm musst du nicht einmal installieren, sondern kannst es direkt in deinem Browser nutzen. Rufe dazu einfach vscode.dev auf und schon kannst du dein sendy-Verzeichnis mit allen Dateien darin öffnen.

Öffne also die Datei subscribe.php und kopiere den folgenden Code in die Datei:

subscribe.php
<?php

/**
 * Trage hier die URL ohne / am Ende ein, unter der du Sendy installiert hast.
 */
define('SENDY_URL', 'https://news.meinedomain.de');

/**
 * Trage hier den API Key deiner Sendy-Installation ein.
 */
define('SENDY_API_KEY', 'T1j4wTXmm4FRQlcfRqmy');

/**
 * Hier legst du fest welche Daten von Digistore24 in welches Sendy-Feld
 * eingetragen werden sollen.
 * 
 * Unter "Order Events" findest du alle Daten, die Digistore24 via IPN
 * an dieses Skript überträgt:
 * https://dev.digistore24.com/en/articles/13-events
 * 
 * Links steht der Feldname von Sendy. Und rechts steht der Parametername von
 * Digistore24, die den entsprechenden Wert enthält.
 * 
 * Das 'email'-Feld ist das einzige Pflichtfeld. Ohne E-Mail-Adresse findet
 * keine Eintragung in Sendy statt.
 */
define('SENDY_FIELDS', [
    /**
     * Die E-Mail-Adresse wird im 'email'-Feld gespeichert.
     * Diese Feld ist Pflicht. Alle weiteren Felder sind optional.
     */
    'email' => 'email',

    /**
     * Der Nachname des Kunden wird im 'name'-Feld von Sendy gespeichert.
     */
    'name' => 'address_last_name',

    /**
     * Jetzt folgt ein Beispiel für ein selbst angelegetes Feld in Sendy.
     * Eigene Felder musst du vorher in deiner Sendy-Liste erstellen.
     * Das passiert nicht automatisch!
     * 
     * Du kannst dieses Beispiel natürlich jederzeit entfernen, wenn du es
     * nicht mehr brauchst.
     */
    'Bestellnummer' => 'order_id',
]);


/**
 * AB HIER NICHTS MEHR ÄNDERN!
 */

require_once('Sendy-PHP-API-master/src/API.php');

use AhmadAwais\Sendy\API as Sendy;

if(isset($_GET['id']) && !empty($_POST['email'])) {
    $list_id = htmlspecialchars(trim($_GET['id']));

    $fields = [];
    foreach(SENDY_FIELDS as $field => $param) {
        $fields[$field] = $_POST[$param];
    }

    $sendy = new Sendy([
        'sendyUrl'  => SENDY_URL,
        'apiKey'    => SENDY_API_KEY,
        'listId'    => $list_id
    ]);

    $sendy->subscribe($fields);
}

http_response_code(200);
exit;

Digistore24 sendet an dieses Skript Kundendaten und unser Skript sendet diese Daten an Sendy.

Ich habe für dich im Code bereits viele Kommentare hinterlegt, die erklären wo du etwas eintragen musst und kannst.

Zuerst musst du die URL hinterlegen, unter der du Sendy installiert hast. Das tust du in Zeile 6.

Achte dabei, dass du die URL ohne / am Ende einträgst.

In Zeile 11 brauchst du deinen Sendy API Key. Den bekommst du nach dem Einloggen in Sendy oben rechts unter Settings und dann auf der rechten Seite:

sendy api key

Anschließend kannst du alle Daten hinterlegen, die du gerne von Digistore24 in deine Sendy-Liste übertragen möchtest.

Die E-Mail-Adresse ist das einzige Pflichtfeld. Alle weiteren Felder sind optional. In Zeile 47 habe ich dir ein Beispiel für ein benutzerdefiniertes Feld eingefügt.

Du kannst also auch Felder mit Daten von Digistore24 füllen, die du selber angelegt hast.

Falls du das nicht möchtest, solltest du die Zeile 47 einfach auskommentieren. Damit sie keine Funktion hat. Das machst du mit // am Anfang der Zeile. Sieht dann so aus:

zeile47 auskommentiert

Anschließend speicherst du die Datei.

Skript hochladen

Jetzt, wo das Skript fertig ist, können wir es auf unseren Webspace hochladen.

Ich denke dafür brauchst du keine Anleitung, da du dich mit deinem Hosting selbst am besten auskennst.

Wichtig dabei ist, dass du gleich auch noch weißt unter welcher URL das Skript erreichbar ist, z.B. unter:

https://meinedomain.de/sendy/subscribe.php

Um die Verzeichnisstruktur deiner Webseite nicht durcheinanderzubringen, empfiehlt es sich einfach eine Subdomain für solche kleinen Skripte anzulegen und dort alles hochzuladen, z.B.:

https://ipn.meinedomain.de/sendy/subscribe.php

Unser Skript mit Digistore24 verbinden

Fast geschafft. Jetzt musst du nur noch eine neue IPN-Anbindung in deinem Digistore24-Account anlegen.

Log dich in deinen Account ein und klicke oben rechts im Menü auf Einstellungen -> Anbindungen (IPN).

digistore24 einstellungen anbindungen ipn

Auf der darauffolgenden Seite oben links auf den Button „Neue Anbindung hinzufügen“ klicken.

digistore24 neue anbindung hinzufuegen

Und weil du jetzt ein echter Profi bist, scrollst du nach ganz unten bis zum Abschnitt „Für Profis“ und klickst dort auf „Generisch“.

digistore24 neue anbindung generisch

Falls du den Weg hierhin abkürzen möchtest, kannst du auch direkt hier klicken, um sofort eine neue generische IPN-Anbindung zu erstellen. 😉

Erschreck dich nicht vor dem folgenden Screenshot. Es ist bei weitem nicht so kompliziert wie es für dich vielleicht zunächst aussieht. Ich erkläre dir gleich alles was du wissen musst.

digistore24 generische ipn anbindung konfiguration

Ich gehe jetzt auf alle Einstellungen ein, die du anpassen musst. Am Ende sollte es bei dir so wie auf dem Screenshot aussehen.

Name

Hier trägst du einen Namen für die IPN-Anbindung ein. Der ist nur für dich sichtbar und dient einfach nur dazu diese Anbindung später bei Bedarf schneller heraussuchen zu können.

Für Produkte

Wähle hier alle Produkte aus, die in deiner Sendy-Liste landen sollen.

Für Addons

Verkaufst du noch Addons mit den oben ausgewählten Produkten, solltest du hier „Nein“ wählen.

Hast du separate Sendy-Listen für deine Addons, solltest du lieber für jedes Addon eine eigene IPN-Anbindung anlegen.

Für Bestellungen in diesen Sprachen

Ich habe hier alle Sprachen ausgewählt, da ich sowieso nur auf Deutsch kommuniziere. Unabhängig davon wie jemand bestellt hat.

Sollte es bei dir anders sein, kannst du für jede Sprache eine eigene IPN-Anbindung anlegen und verschiedenen Sendy-Listen zuordnen.

Sende Benachrichtigungen bei

Da wir hier nur Bestellungen erfassen wollen, wählst du hier nur „Kunden-Bestellungen“ aus.

Für Bestellereignisse

Hier wählst du nur „Zahlung“ aus. Somit informiert Digistore24 unser Skript nur dann, wenn jemand gezahlt hat.

Bei Abo-/Ratenzahlungen wird ein Kunde somit bei jeder Zahlung erneut in deine Sendy-Liste eingetragen.

Das wird in dem Skript nicht berücksichtigt. Lässt dich aber natürlich mit ein wenig Code ändern.

Upsells gruppieren

Hier gilt im Prinzip dasselbe wie bei den Addons. Falls du für deine Upsell-Produkte eigene Listen hast, solltest du hier „Nein“ auswählen und anschließend für jedes Upsell-Produkt eine eigene Anbindung erstellen.

IPN-URL

Hier musst du die URL zu deiner subscribe.php angeben. Also z.B.:

https://ipn.meinedomain.de/sendy/subscribe.php

Jetzt musst du noch angeben in welcher Sendy-Liste deine Kunden landen sollen. Das tust du mit dem GET-Parameter „id“. Deine URL sollte also am Ende so aussehen:

https://ipn.meinedomain.de/sendy/subscribe.php?id=Sendy-Listen-ID

Die ID deiner Liste bekommst du in der Listenübersicht deines ausgewählten Sendy-Brands:

Erfolgserkennung

Hier wählst du „HTTP-Code (erwartet: 200)“ aus.

IPN-Timing

Das IPN-Timing kannst du frei wählen. Du kannst entscheiden, ob Digistore24 sofort dein Skript kontaktieren soll, noch bevor die Bestellung abgeschlossen ist oder erst ein paar Minuten später (verzögert).

Ich empfehle dir hier „Verzögert“ auszuwählen, damit deine Kunden ihre Bestellung schnell abschließen können und nach dem Klick auf „Kaufen“ nicht noch ein paar Sekunden warten müssen.

Sorgt für eine etwas bessere User-Experience. 🥰

Jetzt speicherst du alle Einstellungen.

Um zu testen, ob die Verbindung zum Skript tatsächlich funktioniert, klickst du jetzt au den Button „Verbindung testen“.

Du solltest folgende Rückmeldung erhalten:

digistore24 ipn verbindung erfolgreich

Wenn du einen Fehler bekommst, dann hast du irgendwo einen Fehler gemacht. Denn das Skript gibt immer eine Erfolgsmeldung an Digistore24 zurück.

Da die Verbindung jetzt steht, solltest du unbedingt eine Testzahlung durchführen, um zu kontrollieren, ob die Anbindung tatsächlich funktioniert.

Zum Testen setze ich das IPN-Timing übrigens immer auf „Vor dem Weiterleiten auf die Dankeseite“. Damit die Daten an das Skript sofort gesendet werden und ich nicht warten muss. Nach meinen Tests setze ich die Einstellung wieder auf „Verzögert“ zurück.

Du hast es geschafft! 👍

Deine Verbindung zwischen Digistore24 und Sendy steht nun und funktioniert.

Du kannst jetzt so viele IPN-Anbindungen für deine Produkte/Listen erstellen wie du möchtest.

Die Listen-ID kannst du direkt in der IPN-Anbindung über den GET-Parameter „id“ anpassen. So musst du das Skript nur ein einziges Mal bearbeiten und hosten.

Aber Moment, da fehlt doch noch etwas, oder? 😉

Kunden aus Interessentenliste(n) entfernen

Dafür sind überhaupt keine Programmierer-Skills notwendig. Denn Sendy gibt uns die Möglichkeit Regeln anzulegen, die Sendy automatisch für uns ausführt.

Du hast jetzt also eine Liste für Interessenten und eine für Kunden. In der Interessenten-Liste bewirbst du dein Produkt. Und natürlich ist es unnötig denjenigen dein Produkt weiter schmackhaft machen zu wollen, die es sowieso schon gekauft haben.

Deshalb legst du einfach eine Regel in Sendy an, die ausgeführt werden soll, sobald jemand in einer Liste landet:

sendy regel anlegen

Überlege dir vorab was du eigentlich tun möchtest. Sobald jemand in die Kunden-Liste eingetragen wird, soll derselbe Kontakt aus der Interessenten-Liste abgemeldet werden.

Ok, also sagen wir Sendy das einfach so:

sendy regel anlegen kunden interessenten

Und schon werden Kunden aus der Interessenten-Liste abgemeldet, sobald Digistore24 unserem Skript einen neuen Kunden gemeldet hat.

Perfekt! Jetzt hast du es aber wirklich geschafft. 💪