Wiederkehrende Kunden nachträglich in eigene Kundengruppe einordnen

Kaffee4You

Aktives Mitglied
18. Juni 2021
59
3
Hallo,

ich habe einige wiederkehrende Kunden, die ich gerne nachträglich in eine eigene Kundengruppe einordnen möchte.
Geht das über einen Workflow und wenn ja wie?

Gibt es eine andere Möglichkeit die Anzahl an wiederkehrenden Kunden mit mehr als x Bestellungen in der Wawi oder über die Datenbank herauszufiltern?

Danke für eure Tipps
 

Morimus

Sehr aktives Mitglied
16. Mai 2019
629
140
Ja, das lässt sich grundsätzlich umsetzen.
In der Wawi-Datenbank kann man über Verkauf.tAuftrag die echten Aufträge eines Kunden zählen.
Dabei sollte man Angebote und Stornos ausfiltern.

Bei uns wäre der relevante Filter z. B.:
SQL:
WHERE nType = 1
  AND nStorno = 0

Eine Auswertung für alle Kunden mit mindestens 5 Bestellungen könnte dann z. B. so aussehen:
SQL:
SELECT
    K.kKunde,
    K.cKundenNr AS Kundennummer,
    K.cKundeFirma AS Firma,
    K.cKundengruppe AS Kundengruppe,
    COUNT(A.kAuftrag) AS AnzahlBestellungen,
    MIN(A.dErstellt) AS ErsteBestellung,
    MAX(A.dErstellt) AS LetzteBestellung
FROM Verkauf.vStandardKunde K
INNER JOIN Verkauf.tAuftrag A
    ON A.kKunde = K.kKunde
WHERE
    A.nType = 1
    AND A.nStorno = 0
GROUP BY
    K.kKunde,
    K.cKundenNr,
    K.cKundeFirma,
    K.cKundengruppe
HAVING COUNT(A.kAuftrag) >= 5
ORDER BY
    AnzahlBestellungen DESC;

Die Schwelle kann man über HAVING COUNT(...) >= X frei festlegen.

Je nach gewünschter Logik sollte man zusätzlich einen Zeitraum berücksichtigen, z. B. „mindestens 5 Bestellungen in den letzten 24 Monaten“, damit uralte Kunden nicht automatisch als aktuelle Stammkunden gelten.
 

Kaffee4You

Aktives Mitglied
18. Juni 2021
59
3
Danke für deine ausführliche Antwort.

Ich kenne mich mit der Datenbank und solchen Abfragen allerdings gar nicht aus, daher wäre ich über einen konkreten Plan dankbar. Gerne auch als PN.
Sicherlich ergeben sich für mich noch andere Kennzahlen, die ich gerne ermitteln würde.

Danke für deine Hilfe und Grüße
 

Morimus

Sehr aktives Mitglied
16. Mai 2019
629
140
Ich habe das in einer Wawi 2.0.6 gebaut.

Die Idee ist:

Beim Erstellen eines Auftrags wird per SQL gezählt, wie viele nicht stornierte Aufträge der Kunde bereits hat.
Der Workflow prüft diese Zahl.
Ab einer frei wählbaren Anzahl wird die Kundengruppe geändert.

Die Datenbank wird dabei nur gelesen.
Die eigentliche Änderung der Kundengruppe erfolgt ganz normal über den JTL-Workflow.

Zuerst unter Admin -> JTL-Workflows -> Aufträge -> Erstellt einen neuen Workflow anlegen.
Danach unten bei den Bedingungen auf „Erweiterte Eigenschaften verwalten“ gehen und eine neue Eigenschaft anlegen.

Name: AnzahlBestellungen
Rückgabetyp: Zahl
Als Inhalt:
Code:
{% capture query %}
SELECT COUNT(*)
FROM Verkauf.tAuftrag
WHERE kKunde = {{ Vorgang.Stammdaten.Kunde.InterneKundennummer }}
  AND nType = 1
  AND nStorno = 0
{% endcapture %}

{% assign result = query | DirectQueryScalar %}
{{ result }}

Dabei bedeutet:
nType = 1 -> Aufträge
nStorno = 0 -> nicht storniert

Danach die erweiterte Eigenschaft speichern und im eigentlichen Workflow zwei Bedingungen anlegen.

Erste Bedingung:
Stammdaten -> Kunde -> KundenGruppe -> Name
ungleich
Stammkunde

Zweite Bedingung:
Erweiterte Eigenschaft -> AnzahlBestellungen
größer oder gleich
5

Oben muss „Alle Bedingungen erfüllen“ aktiviert sein.

Der Workflow prüft damit also:
Kundengruppe ist noch nicht Stammkunde
UND
Kunde hat mindestens 5 Aufträge

Anschließend als Aktion: Werte setzen
und dort: Stammdaten -> Kunde -> KundenGruppe
auswählen und als Zielgruppe z. B. „Stammkunde“ setzen.

Für eine bestehende Kundenbasis müsste man noch überlegen, wie man die bereits vorhandenen Kunden einmalig nachzieht.
Für neue Aufträge läuft die Zuordnung danach automatisch.

Die verwendeten Kundengruppen sind natürlich nur Beispiele.
Stammkunde kann durch jede beliebige vorhandene oder neu angelegte Kundengruppe ersetzt werden.
 

Kaffee4You

Aktives Mitglied
18. Juni 2021
59
3
Das klingt schon einmal gut.
Aber ich möchte es in der Tat nachträglich für vorhandene Kunden nachziehen.
Ist es dabei möglich, nur die letzten 3 oder 5 Jahre zu betrachten?
 

Morimus

Sehr aktives Mitglied
16. Mai 2019
629
140
Für die einmalige Nachpflege der bereits vorhandenen Kunden kommst du um eine Auswertung über die Datenbank kaum herum.
Ich würde die Datenbank dabei aber nur zum Auslesen verwenden und die Kundengruppe anschließend über die Wawi ändern.

Für die Bestandskunden ist es im Grunde recht simpel.
Du führst einmal eine fertige SELECT-Abfrage in SSMS aus und bekommst genau die Kunden zurück, die deine Kriterien erfüllen.
Du musst dafür selbst kein SQL können, solange du nur die Werte für Zeitraum und Bestellanzahl anpasst.

Zum Beispiel:
SQL:
SELECT
    K.kKunde,
    K.cKundenNr AS Kundennummer,
    K.cKundeFirma AS Firma,
    K.cKundengruppe AS AktuelleKundengruppe,
    COUNT(A.kAuftrag) AS AnzahlBestellungen
FROM Verkauf.vStandardKunde K
INNER JOIN Verkauf.tAuftrag A
    ON A.kKunde = K.kKunde
WHERE
    A.nType = 1
    AND A.nStorno = 0
    AND A.dErstellt >= DATEADD(YEAR, -3, GETDATE())
GROUP BY
    K.kKunde,
    K.cKundenNr,
    K.cKundeFirma,
    K.cKundengruppe
HAVING COUNT(A.kAuftrag) >= 5
ORDER BY AnzahlBestellungen DESC;
 

Ähnliche Themen