Oxid Benutzeranalyse & Benutzergruppen zuordnen mit SQL

am 4. Juli 2012
von bioraum

Öfters kommt es vor, dass man Benutzer mit bestimmten Eigenschaften gerne gezielt herauspicken möchte, etwa um diese zunächst einmal zu zählen und dann ggf. gezielt Rabatte anzuzeigen, mit Gutscheinen zu beglücken oder mit einem speziellen Newsletter zu versorgen. Kriterien für eine Benutzerauswahl können dabei zum Beispiel die Anzahl der Bestellungen im letzten Jahr sein, das Alter oder, dass der Benutzer Artikel aus einer bestimmten Kategorie bestellt hat.

Dafür müssen die entsprechenden Benutzer zuerst einmal einer Benutzergruppe zugeordnet werden. Das geht manuell – jeder kann sich vorstellen, welcher Aufwand hiermit verbunden sein kann – oder aber automatisch und sehr flexibel mit SQL.

Schritt 1: Falls noch nicht vorhanden, Benutzergruppe im Oxid-Admin anlegen.

Schritt 2: Die OXID der Ziel-Benutzergruppe heraussuchen, z.B., indem der Link zum Bearbeiten der Benutzergruppe in der Liste der Benutzergruppen im Admin kopiert wird. Dabei erhält man etwas in folgender Art zurück: javascript:top.oxid.admin.editThis(‚7b4f0df4358832c38741724f2e61e360‘); – 7b4f0df4358832c38741724f2e61e360 ist dabei die Benutzergruppe.

Schritt 3: Das folgende SQL den eigenen Bedürfnissen anpassen. Im Beispiel werden alle Benutzer, die als Bundesland Baden-Württemberg ausgewählt haben, zugeordnet:

REPLACE INTO oxobject2group (oxid,oxshopid,oxobjectid,oxgroupsid) (SELECT
MD5(CONCAT(‚myprefix‘,oxuser.oxid,‘groupoxid‚)) as oxid,
‚oxbaseshop‘ as oxshopid,
oxuser.oxid as oxobjectid,
‚groupoxid‘ as oxgroupsid
FROM oxuser
LEFT JOIN oxobject2group ON(oxobject2group.oxgroupsid=‘groupoxid‚ AND oxobject2group.oxid=oxuser.oxid)
WHERE OXSTATEID=’BW‘ AND OXCOUNTRYID=’a7c40f631fc920687.20179984′ AND oxobject2group.oxid IS NULL);

Erläuterung:

  • myprefix: Bitte hier einen kurzen Prefix ausdenken, z.B. #39dks~s
  • groupoxid: Bitte hier jeweils die in Schritt 2 erhaltene Benutzergruppen-ID eintragen
  • Im Bereich hinter where können die Eigenen Bedingungen gesetzt werden. Im Beispiel werden nur Benutzer, die aus dem Bundesland mit dem Kürzel BW und dem Land Deutschland kommen, herausgesucht. (AND oxobject2group.oxid IS NULL ist vorhanden, um sicherzustellen, dass ein Benutzer nicht unnötigerweise doppelt ein und derselben Benutzergruppe zugeordnet wird).
  • Bei Bedarf können etwa über Joins sehr vielschichtige Bedingungen gesetzt werden, so können etwa Abhängigkeiten zum Bestellverhalten oder zum Artikel-Bewertungsverhalten hergestellt werden.

Hinweise: Die Erläuterung bezieht sich auf Oxid 4 PE/CE, für EE sind geringfügige Änderungen am SQL notwendig.

Alle, die technisch weniger versiert sind bzw. sich eine noch komfotortablere Möglichkeit zur Zuordnung wünschen, können sich bei uns per Mail an support@commodule.de auf die Vormerkliste für unser noch nicht fertiggestelltes Benutzerverwaltungsnodul setzen lassen.

Keine Kommentare

kommentieren

Du musst angemeldet sein, um einen Kommentar abzugeben.

nach oben