ag83ag83 MemberComments: 13 Received thanks: 0 Member since: March 27

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

 

Answers

  • NextMikeNextMike MemberComments: 2447 Received thanks: 387 Member since: December 2014

    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.

  • jorjor MemberComments: 51 Received thanks: 5 Member since: May 2

    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.

  • ag83ag83 MemberComments: 13 Received thanks: 0 Member since: March 27

    Hallo jor,

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

    Gruß gari

  • jorjor MemberComments: 51 Received thanks: 5 edited May 6 Member since: May 2

    Hallo jor,

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

    Gruß gari

    In dieser Richtung zum Beispiel:

    <?php
    //Datenbankverbindung
    include("db.php");
    
    //Kundengruppen von niedrigster zu höchster
    $hierarchie = array('EK', 'FK', 'GK', 'HK', 'IK');
    //Prüfzeitraum - Zieldatum letzter zu berücksichtigender Tag
    $zeitraum = date('Y-m-d 00:00:00', strtotime('-30 days'));
    //Mindestumsatz für Promotion
    $umsatz = 100;
    
    //Schleife Alle Kunden, deren Konto aktiv ist und die in Shop ID = 1 registriert sind
    $kunde = "SELECT id, customergroup, firstname, lastname, customernumber FROM s_user WHERE active = 1 AND subshopID = 1";
    foreach($db->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

  • ag83ag83 MemberComments: 13 Received thanks: 0 Member since: March 27

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

Sign In or Register to comment.