Gambio Affiliate Provisionen zurücksetzen

Das Modul komplett zurücksetzen können wir ganz einfach durch Deinstallation und Neuinstallation. Was aber, wenn wir nur die Provisionen oder Gutschriften einzelner Affiliates zurücksetzen möchten? Damit befasst sich das nachfolgende Tutorial.

Affiliate-Modul komplett zurücksetzen

Die radikale Methode: Wenn bisher nur Tests gemacht wurden und keinerlei Einstellungen und Daten mehr benötigt werden, setzen wir das Gambio Affiliate-Modul komplett zurück. Hierfür deinstallieren wir es im Gambio-Admin unter Module > Modul-Center. Die Deinstallation per Knopfdruck genügt bereits, um alle Datenbank-Tabellen einschließlich Konfiguration, Provisionen und Partner zu entfernen.

Installieren wir das Modul direkt im Anschluss wieder, sind alle Einstellungen im Auslieferungszustand. Einziger registrierter Partner mit 0,- EUR/CHF Guthaben sind zunächst wir selbst. Denn bei der Installation des Gambio Affiliate-Moduls legt die Software den aktuell angemeldeten Administrator automatisch als ersten Affiliate an.

Vorbereitung: Sicherung & phpMyAdmin/phpMiniAdmin

Beim Arbeiten mit der Datenbank ist der obligatorische erste Schritt das Anfertigen einer aktuellen Sicherung. Übertreiben müssen wir es nicht: Es reicht, die maximal in den nächsten Schritten geänderten bzw. geleerten Tabellen zu sichern:

  • pay_affiliate_customers
  • pay_affiliate_verguetung
  • pay_belege
  • pay_bestellung
  • pay_rechnung
  • pay_ref

Sowohl für die Sicherung als auch für die Ausführung der SQL-Befehle in den folgenden Beispielen sind phpMyAdmin und phpMiniAdmin geeignet. phpMyAdmin erreichen wir bei den meisten Gambio-Hosting­anbietern über das Kundenmenü, Plesk oder cPanel. phpMiniAdmin finden wir im Gambio-Admin unter Tools > SQL.

Alle Provisionen und Auszahlungen zurücksetzen

Bitte Vorsicht: Mit „zurücksetzen“ ist „löschen“ gemeint. Die folgenden SQL-Statements leeren alle Tabellen, in denen Provisionen und Auszahlungen gespeichert sind. Je nachdem, ob die Partner-Kunde-Beziehung bereits bei der Kundenregistrierung erfasst wurde oder nicht, geht auch diese durch das Leeren der Tabellen verloren. Hinweis unterhalb der SQL-Blöcke beachten!

TRUNCATE pay_affiliate_verguetung;
TRUNCATE pay_belege;
TRUNCATE pay_bestellung;
TRUNCATE pay_rechnung;
TRUNCATE pay_ref;

Soll die in den Tabellen gespeicherte Partner-Kunde-Zuordnung trotz Löschung der Provisionen erhalten bleiben, sichern wir sie vorab. Das erledigen wir mit folgendem SQL-Befehl, der die Zuordnung in pay_affiliate_customers schreibt, sofern sie dort noch nicht besteht:

INSERT INTO pay_affiliate_customers
(affiliate,
customer,
date)
SELECT p1.mitglied_id,
p2.gambio_customer_id,
NOW()
FROM pay_ref p1,
pay_bestellung p2
WHERE p1.bestellung_id = p2.id
AND p2.gambio_customer_id NOT IN (SELECT p3.customer
FROM pay_affiliate_customers p3);

Nicht ausbezahlte Provisionen löschen

Bereits ausbezahltes Guthaben zurückzubuchen, ist naturgemäß schwierig. Auch beim Löschen noch nicht ausbezahlter Provisionen kann die Werber-Kunde-Beziehung verloren gehen. Daher zuvor das Insert-Statement aus dem vorigen Abschnitt verwenden.

Nicht ausbezahlt bedeutet hier: noch in keiner Auszahlung verbucht (Status der Auszahlung – bereits „getätigt“ oder noch offen – ist egal).

DELETE FROM pay_affiliate_verguetung WHERE status NOT IN (2,3,4);
DELETE FROM pay_ref WHERE status NOT IN (3,4);
DELETE FROM pay_bestellung
WHERE id NOT IN (SELECT DISTINCT bestellung_id
FROM pay_ref);

Provisionen in einem bestimmten Zeitraum löschen

Es werden nur direkte Provisionen und Downline-Vergütungen gelöscht, die in keiner Auszahlung verbucht sind. Die Zeitangaben beziehen sich auf das Bestelldatum, nicht auf die bestätigte Gutschrift. Im Beispiel löschen wir alle Provisionen auf Bestellungen zwischen 1. Januar 2019 und 31. Dezember 2019.

DELETE FROM pay_ref WHERE status NOT IN (3,4) AND DATUM BETWEEN CAST('2019-01-01' AS DATE) AND CAST('2019-12-31' AS DATE);
DELETE FROM pay_bestellung
WHERE id NOT IN (SELECT DISTINCT bestellung_id
FROM pay_ref);
DELETE FROM pay_affiliate_verguetung WHERE status NOT IN (2,3,4) AND bestellung_id NOT IN (SELECT DISTINCT bestellung_id
FROM pay_ref);

Nicht ausbezahlte Provisionen eines Partners zurücksetzen

Zum Schluss löschen wir alle Provisionen eines bestimmten Affiliates, die in keiner Auszahlung verbucht sind. Beispielhaft nutzen wir die Affiliate-ID 123 (sie kommt in 2 der 3 Statements vor):

DELETE FROM pay_affiliate_verguetung WHERE id=123 AND status NOT IN (2,3,4);
DELETE FROM pay_ref WHERE mitglied_id=123 AND statusNOT IN (3,4); DELETE FROMpay_bestellungWHEREidNOT IN (SELECT DISTINCTbestellung_idFROMpay_ref`);