Bonus-/Punktesystem

Hallo zusammen,

wir sind auf die Idee gekommen ein „automatisiertes“ Bonus-/Punktesystem einzuführen welches z.B. bei einem Monatlichem Umsatz von 100€ den Kunden in die nächst höher priviligierte Kundengruppe verschiebt. Wenn der Kunde im Folgemonat diese 100€ wieder erreicht bleibt er in dieser Gruppe, beim Unterschreiten dieser Marke automatisch wieder runrtergestufft wird, jedoch beim überschreiten der 1000€ wieder in die nächst höher priviligierte Kundengruppe verschoben wird.

Händisch Verschobene Kunden werden jedoch nicht angefasst.

Gibt es so ein Plugin überhaupt? Alles was ich finden konnte war https://store.shopware.com/swagbonussystemextended/bonus-system.html und das ist es nicht so ganz. Vielleicht habe ich auch falsch gesucht bzw nennt sich das System anders.

 

Gruß Gari

 

Würde im Store nach Bonus, Punkte, Kundengruppen etc. suchen und die Pluginbeschreibung genau lesen ggf. die Plugins testen. Generell scheint mir Euer Konzept sehr individuell. Müsstest Du “händisch” machen oder programmieren lassen.

Wäre das nicht auch etwas, das sich ohne große Gefahr durch Direktzugriff auf die Datenbank lösen ließe?

  • a) Summe Umsatz im Zeitraum XYZ (READ)
  • b) Prüfen Kundengruppe (READ)
  • c) Anpassen Kundengruppe (WRITE) oder Keine Action

CronJob zum 1. des Monats oder per Aufruf nach Tagesabschluss am letzten des Monats starten.

Hallo jor,

das klingt gut nur wie müsste ich sowas realisieren?

Gruß gari

@ag83 schrieb:

Hallo jor,

das klingt gut nur wie müsste ich sowas realisieren?

Gruß gari

In dieser Richtung zum Beispiel:

query($kunde) as $row){
	$kdid = $row['id'];
	$kdgrp = $row2['customergroup'];
	
	//Schleife Alle Bestellungen eines Kunden, die abgeschlossen sind und im Prüfzeitraum stattfanden
	$bestellungen = "SELECT SUM(invoice_amount) as blsumme FROM s_order WHERE userID = $kdid AND status = 2 AND ordertime >= $zeitraum";
	$db->query($bestellungen) as $row2)
	$blsumme = $row2['blsumme'];
		
	unset($neukdgrp);
		
	if ($blsumme >= $umsatz) {
		//Umsatzziel erreicht oder überschritten
		for($i=0; $i < $hierarchie.length; $i++) {
			if($hierarchie[$i] == $kdgrp && $i < $hierarchie.length-1){
				//Kundengruppe im Array = Gruppe des Kunden
				$i++;
				//Neue Kundengruppe ist die nächtshöhere
				$neuekdgrp = $hierarchie[$i];
				break;
			}
		}
	} else {
			//Umsatzziel nicht erreicht
			for($i=$hierarchie.length; $i < 0; $i--) {
				if($hierarchie[$i] == $kdgrp && $i > 0){
					//Kundengruppe im Array = Gruppe des Kunden
					$i--;
					//Neue Kundengruppe ist die nächtsniedrigere
					$neuekdgrp = $hierarchie[$i];
					break;
				}
			}
	}
		
	//Wenn es eine Änderung der Kundengruppe gibt, dann jetzt Ausführung
	if ($neukdgrp) {
		$update = "UPDATE s_user SET customergroup = $neuekdgrp WHERE id = $kdid";
		$db->query($update);
	}
	
	//weiter zum nächsten Kunden
}

?>

Vorsicht! Nicht das übernehmen! Ich hab das jetzt nur eingetippt und nicht geprüft und sooooooooo fit bin ich dann auch wieder nicht in PHP, aber das wäre eine Richtung, in die das gehen könnte  Wink

Super Sache jor, werde ich baldmöglichst bei uns in der Testumgebung durchspielen.