# Bonus-/Punktesystem

**URL:** <https://forum.shopware.com/t/bonus-punktesystem/59229>\
**Category:** Shopware 5\
**Created:** [25. April 2019 um 07:40 UTC](https://forum.shopware.com/t/bonus-punktesystem/59229 "2019-04-25T07:40:24Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![ag83](https://avatars.discourse-cdn.com/v4/letter/a/c37758/32.png) [@ag83](https://forum.shopware.com/u/ag83)\
**Post date:** [25. April 2019 um 07:40 UTC](https://forum.shopware.com/t/bonus-punktesystem/59229/1 "2019-04-25T07:40:24Z")

</div>

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&nbsp;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&nbsp;[https://store.shopware.com/swagbonussystemextended/bonus-system.html](https://store.shopware.com/swagbonussystemextended/bonus-system.html)&nbsp;und das ist es nicht so ganz. Vielleicht habe ich auch falsch gesucht bzw nennt sich das System anders.

&nbsp;

Gruß Gari

&nbsp;

---

<div class="post-metadata">

**Author:** ![NextMike](https://avatars.discourse-cdn.com/v4/letter/n/838e76/32.png) [@NextMike](https://forum.shopware.com/u/NextMike)\
**Post date:** [25. April 2019 um 07:42 UTC](https://forum.shopware.com/t/bonus-punktesystem/59229/2 "2019-04-25T07:42:52Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![jor](https://avatars.discourse-cdn.com/v4/letter/j/958977/32.png) [@jor](https://forum.shopware.com/u/jor)\
**Post date:** [4. Mai 2019 um 09:05 UTC](https://forum.shopware.com/t/bonus-punktesystem/59229/3 "2019-05-04T09:05:20Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![ag83](https://avatars.discourse-cdn.com/v4/letter/a/c37758/32.png) [@ag83](https://forum.shopware.com/u/ag83)\
**Post date:** [6. Mai 2019 um 05:30 UTC](https://forum.shopware.com/t/bonus-punktesystem/59229/4 "2019-05-06T05:30:33Z")

</div>

Hallo jor,

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

Gruß gari

---

<div class="post-metadata">

**Author:** ![jor](https://avatars.discourse-cdn.com/v4/letter/j/958977/32.png) [@jor](https://forum.shopware.com/u/jor)\
**Post date:** [6. Mai 2019 um 07:04 UTC](https://forum.shopware.com/t/bonus-punktesystem/59229/5 "2019-05-06T07:04:33Z")

</div>

> [@ag83 schrieb:](https://forum.shopware.com/profile/31192/ag83 "ag83")
> 
> 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&nbsp; ![Wink](https://forum.shopware.com/plugins/CKEditor/plugins/smiley/images/wink.png "Wink")

---

<div class="post-metadata">

**Author:** ![ag83](https://avatars.discourse-cdn.com/v4/letter/a/c37758/32.png) [@ag83](https://forum.shopware.com/u/ag83)\
**Post date:** [6. Mai 2019 um 15:06 UTC](https://forum.shopware.com/t/bonus-punktesystem/59229/6 "2019-05-06T15:06:20Z")

</div>

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