Gambio Affiliate Provisionen zurücksetzen

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

Affiliate-Modul komplett zurücksetzen

Die radikale Methode: wenn Sie bisher nur Tests gemacht haben und keinerlei Einstellungen und Daten mehr benötigen, setzen Sie das Gambio Affiliate-Modul komplett zurück. Hierfür deinstallieren Sie 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 Sie das Modul direkt im Anschluss wieder, sind alle Einstellungen im Auslieferungszustand. Einziger registrierter Partner mit 0,- EUR/CHF Guthaben sind Sie selbst. Denn bei der Installation des Gambio Affiliate-Moduls legt dieses den aktuell angemeldeten Administrator automatisch als ersten Affiliate an.

Vorbereitung: Sicherung & phpMyAdmin/phpMiniAdmin

Wenn wir mit der Datenbank hantieren, ist der obligatorische erste Schritt das Anfertigen einer aktuellen Sicherung. Übertreiben müssen wir es aber auch nicht. Wir beschränken uns auf eine Sicherung der maximal in den nächsten Schritten geänderten bzw. geleerten Tabellen:

  • pay_affiliate_customers
  • pay_affiliate_verguetung
  • pay_belege
  • pay_bestellung
  • pay_rechnung
  • pay_ref
Screenshot phpMyAdmin: Run SQL query/queries on database gambio_shop: TRUNCATE `pay_affiliate_verguetung`; TRUNCATE `pay_belege`; TRUNCATE `pay_bestellung`; TRUNCATE `pay_rechnung`; TRUNCATE `pay_ref`;

Sowohl für die Sicherung als auch die Ausführung der SQL-Befehle in den nachfolgendem Beispielen sind die Tools phpMyAdmin und phpMiniAdmin geeignet. phpMyAdmin ist bei den meisten Hostinganbietern über das Kundenmenü, Plesk oder cPanel erreichbar. phpMiniAdmin finden Sie im Gambio-Adminmenü unter Tools > SQL.

Alle Provisionen und Auszahlungen zurücksetzen

phpMiniAdmin 1.9.170117 mit Eingabefeld und SQL-Befehlen

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 Datenbanktabellen verloren. Bitte beachten Sie daher den Hinweis unterhalb der SQL-Blocks.

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

Wenn die in den Tabellen gespeicherte Partner-Kunde-Zuordnung trotz Löschung der Provisionen erhalten bleiben soll, müssen wir diese vorab sichern. Das erledigen wir, indem wir sie mit folgendem SQL-Befehl in die pay_affiliate_customers schreiben, sofern sie darin 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

Naturgemäß ist es schwierig, bereits ausbezahltes Guthaben zurückzubuchen, wenn es nicht gerade um Tests mit fiktiven Buchungen geht. Auch bei der Löschung noch nicht ausbezahlter Provisionen geht unter Umständen die Werber-Kunde-Beziehung verloren. Verwenden Sie daher das Insert-Statement aus dem vorangegangenen Abschnitt, um diese zu sichern.

Nicht ausbezahlt bedeutet in dem Fall, dass die Provisionen noch in keiner Auszahlung verbucht sind. Der Status der Auszahlung, also ob diese bereits als getätigt deklariert ist oder noch offen, spielt dabei keine Rolle.

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

Wiederum löschen wir nur direkte Provisionen und Vergütungen aus der Downline, die in noch keiner Auszahlung verbucht sind. Die Zeitangaben beziehen sich nicht auf den Zeitpunkt der bestätigten Gutschrift, sondern das Bestelldatum. 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

Im letzten Beispiel löschen wir alle Provisionen eines bestimmten Affiliates, die in noch keiner Auszahlung verbucht sind. Exemplarisch verwenden wir den Affiliate mit der ID 123. Diese kommt in 2 der 3 Delete-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 status` NOT IN (3,4);
DELETE FROM `pay_bestellung` WHERE `id` NOT IN (SELECT DISTINCT `bestellung_id` FROM `pay_ref`);