Ein einzelner Rabattcode ist schnell erstellt. Ein verlässliches Empfehlungsprogramm entsteht daraus noch nicht. Sobald mehrere Partner, Produkte und Kampagnen beteiligt sind, müssen Daten in einer festen Reihenfolge verarbeitet werden. Die frühe Architekturplanung der CROPS SRM Affiliate Suite konzentrierte sich deshalb auf klar getrennte Module. Jedes Modul übernimmt eine eigene Aufgabe, bleibt aber über nachvollziehbare Beziehungen mit den anderen Bereichen verbunden. So soll aus vielen Einzelaktionen ein kontrollierbarer Arbeitsablauf werden.
Die Stripe-Verbindung bildet die technische Basis
Am Anfang steht die sichere Verbindung zum Stripe-Konto. Ohne sie kann die Suite weder Produkte noch Coupons oder Promotion Codes abgleichen. Die Verbindung muss überprüfbar sein und darf sensible Zugangsdaten nicht unnötig offen anzeigen. Für den Betreiber soll klar erkennbar sein, ob die Verbindung funktioniert, welche Umgebung genutzt wird und wann der letzte erfolgreiche Abgleich stattgefunden hat.
Dieser Basisbereich bleibt bewusst getrennt von Kampagnen und Partnerdaten. Eine fehlerhafte Verbindung soll nicht dazu führen, dass vorhandene lokale Zuordnungen unverständlich verschwinden. Stattdessen braucht es Statusanzeigen, Tests und Protokolle. Die technische Grundlage wird damit zu einem eigenständigen Modul, das alle weiteren Funktionen versorgt.
Synchronisation macht Stripe-Daten nutzbar
Produkte, Coupons und Promotion Codes besitzen in Stripe eigene Kennungen und Eigenschaften. In der WordPress-Oberfläche müssen diese Daten jedoch so dargestellt werden, dass ein Betreiber damit arbeiten kann. Das Synchronisationsmodul übernimmt den Abgleich und speichert die relevanten Informationen für Kampagnen, Filter und Auswertungen.
Dabei ist wichtig, welche Richtung eine Änderung nimmt. Coupons werden grundsätzlich in Stripe angelegt und anschließend importiert. Die Suite soll nicht so tun, als wäre eine lokale Fantasie-ID bereits ein gültiges Stripe-Objekt. Diese klare Datenhoheit reduziert Fehler. Gleichzeitig kann das Plugin Promotion Codes kontrolliert erzeugen und deren Status wieder mit Stripe abgleichen.
Kampagnen bündeln Regeln und Kommunikation
Eine Kampagne verbindet Angebot, Coupon, Käuferhinweis, Provisionsregel und Laufzeit. Ohne diese Ebene würden Codes nur lose nebeneinanderstehen. Betreiber könnten später kaum erkennen, warum ein Code angelegt wurde oder welche Bedingungen damals galten. Das Kampagnenmodul schafft deshalb den fachlichen Rahmen.
Kampagnen sollen dupliziert, aktiviert oder für das Frontend deaktiviert werden können. Eine bestehende Aktion kann so als Vorlage dienen, ohne dass alle Werte erneut eingegeben werden müssen. Gleichzeitig verhindert der Status, dass Partner Codes für eine beendete Kampagne erzeugen. Die Kampagne ist damit sowohl Organisationsmittel als auch Kontrollpunkt.
Generator und Partneransicht trennen Ausgabe und Verwaltung
Der Frontend-Generator richtet sich an Partner oder Interessenten, die einen persönlichen Code anfordern. Die Administration richtet sich an den Betreiber, der Kampagnen, Daten und Regeln kontrolliert. Diese Rollen benötigen unterschiedliche Oberflächen. Ein Partner soll keine Stripe-Objektlisten sehen, während der Betreiber mehr Informationen als nur den fertigen Code braucht.
Die modulare Trennung ermöglicht einen einfachen Generator mit den notwendigen Feldern, Schutzmechanismen und verständlichen Hinweisen. Im Partner-Dashboard können später persönliche Codes, Einlösungen und Auszahlungsinformationen angezeigt werden. Beide Frontend-Bereiche greifen auf dieselben geprüften Kampagnendaten zu, ohne administrative Funktionen offenzulegen.
Tracking, Provision und Auszahlung folgen nacheinander
Eine erfolgreiche Stripe-Zahlung ist zunächst ein Ereignis. Erst die Zuordnung zum Promotion Code macht daraus eine relevante Einlösung. Anschließend prüft die Provisionslogik, welche Regel für die Kampagne gilt. Der Auszahlungsbereich übernimmt danach nur freigegebene Beträge. Diese Reihenfolge ist wichtig, weil eine Auszahlung nicht direkt aus einem ungeprüften Ereignis entstehen darf.
Durch getrennte Status wie neu, freigegeben, bezahlt oder abgelehnt bleibt der Bearbeitungsstand sichtbar. Exporte und Auszahlungsdateien sind ein nachgelagerter Schritt, nicht die Quelle der Berechnung. Damit wird verhindert, dass manuelle Zahlungsaktionen die ursprüngliche Zuordnung überschreiben.
Module erleichtern späteren Ausbau
Eine modulare Architektur bedeutet nicht, dass jedes denkbare Modul sofort produktiv sein muss. Sie schafft vielmehr klare Anschlussstellen. Marketingunterstützung, Bildarchive, zusätzliche Exporte oder weitergehende Automatisierungen können ergänzt werden, ohne den Kern neu zu schreiben. Nicht benötigte Funktionen sollen deaktivierbar oder getrennt bleiben.
Auch für Wartung und Sicherheit ist diese Gliederung hilfreich. Fehler im Synchronisationsbereich lassen sich gezielter untersuchen als in einer einzigen großen Verwaltungsseite. Protokolle können nach Prozessarten getrennt werden. Für Anwender entsteht eine Navigation, die dem tatsächlichen Arbeitsablauf folgt, statt technische Dateien oder interne Klassen abzubilden.
Datenbeziehungen statt lose Listen
Im Datenmodell erhält jeder wichtige Vorgang eine feste Beziehung: Kampagne zu Coupon und Produkt, Partner zu persönlichem Code, Einlösung zu Stripe-Ereignis, Provision zu Einlösung und Auszahlung zu freigegebenen Positionen. Diese Kette ermöglicht Filter und Prüfungen, ohne Inhalte aus Freitextfeldern erraten zu müssen.
Für Migrationen und Updates werden stabile interne Kennungen benötigt. Sichtbare Namen dürfen geändert werden, ohne dass alte Zuordnungen brechen. Deshalb unterscheidet die Architektur zwischen lesbaren Bezeichnungen und technischen Schlüsseln. Diese Entscheidung ist für Anwender kaum sichtbar, schützt aber die langfristige Wartbarkeit.
Der Weg zur Affiliate Suite beginnt daher nicht mit einer möglichst langen Funktionsliste, sondern mit klaren Verantwortlichkeiten. Stripe-Verbindung, Synchronisation, Kampagnen, Generator, Tracking, Provisionen und Auszahlungen bilden eine Kette. Je verständlicher diese Kette aufgebaut ist, desto leichter lässt sich das System später bedienen und erweitern.

