Bewertung: 5 / 5

Stern aktivStern aktivStern aktivStern aktivStern aktiv
 

In Joomshopping gibt es unter der Rubrik Options die Möglichkeit Gutscheine (Coupons) anzulegen. Diese Gutscheine sind entweder an einen bestimmten Benutzer gebunden oder können frei für alle Besucher im Shop aktiviert werden. Gutscheine können auf einen Zeitraum begrenzt oder auf unbestimmte Dauer aktiviert werden. Läßt sich für bestimmte Rabatt-Aktionen wie Newsletter, Gewinnspiele bzw. Werbeanzeigen in Printmedien das Zählen der eingelösten Gutscheine realisieren?

Wie oft werden Coupons (aus Print-Werbeanzeigen) genutzt?

Neben dem Zeitraum für einen Gutschein kann noch ein weiteres Attribut angeben werden, mit dem die Aktivierung des Gutscheines deaktiviert wird, nach dem der Gutschein eingelöst ist. Läßt man dieses Attribut auf FALSE (nicht angecheckt), dann ist der Gutschein in dem angebenen Zeitraum ohne Einschränkungen gültig. Das Feld "used" im Backend kann mit wenigen Codeänderungen zum Zählen der Gutscheinaktivierungen verwendet werden. In der Datenbank wurde dieses Feld vom Typ Integer(11) bisher nur zum Abspeichern des Benutzers (Benutzer-ID) genutzt, welcher zuletzt den Gutschein aktivierte. Was liegt also näher, dieses Feld im Falle eines Dauergutscheines zum Zählen der Vewendung eines bestimmten Gutscheincodes zu verwenden?

Schritt 1: Ändern der coupon.php

In der coupon.php als Schnittstelle zur Tabelle coupon wird bestimmt, ob der Gutschein noch gültig ist. Bisher war ein Gutschein gültig, solange in dem Feld "used" ein Wert ungleich 1 eingetragen war. Nun erweitern wir diese Frage nach der Gültigkeit um einen Test auf Dauergutschein. Ein Dauergutschein liegt vor, wenn der "Deaktivieren nach Verwendung" nicht zugestimmt wird (FALSE).

Schritt 2: Ändern der checkout.php

Der Kontroller zum Abwickeln eines Kaufes über den Shop gibt zuerst den Coupon frei, vermindert den Rechnungsbetrag um den Wert des Coupons und bittet den Kunden nach Eingabe der Rechnungsanschrift, Bezahlart und Bestätigung von AGB und Widerruf den Kauf abzuschließen. Danach wurde der Coupon in der Tabelle Coupon bisher mit dem Eintrag der UserID in dem Feld "used" aktuallisiert.

In der checkout.php wird bestimmt, ob die User-ID bei "Deaktivieren nach Verwendung" des Gutscheines in used eingetragen werden soll. Da wir einen Dauergutschein eingestellt haben, erweitern wir den IF-Zweig um einen ELSE Codeblock. In diesen ELSE Codeblock erhöhen wir einfach den Inhalt von used um den Wert Eins und speichern den Wert used in der Tabelle coupon ab.

Mit jeder Coupon-Aktivierung erhöht sich der Inhalt im Feld "used" und wird im Backend unter Coupons nach der Codeänderung im Schritt 3 entsprechend angezeigt.

Schritt 3: Anpassen des Templates zur Auflistung aller Coupons

Gehen Sie in dem default Template unter "joomla\administrator\components\com_jshopping\views\coupons_list\tmpl an die Stelle im Code, in der der Wert für "used" ausgegeben wird. Vor der Änderung wird hier einfach nur geprüft, ob der Wert "used" vorhanden ist, um anschließend den Wahrheitswert auszugeben. Nach unserer Änderung wird in Abhängigkeit von "finished_after_used" entweder angezeigt, ob der Einzelgutschein benutzt wurde oder in welcher Anzahl ein Dauergutschein verwendet wurde.

Schritt 4: Coupon als Dauergutschein zählen lassen

Nachdem Sie einen neuen Gutschein angelegt und das Attribut "Deaktivieren nach Verwendung" nicht gesetzt haben, läuft dieser Gutschein innerhalb des Zeitraumes als Dauergutschein. Jede Verwendung (Aktivierung im Shop) erhöht den Zähler in der Spalte "used".

Beenden Sie einen Dauergutschein jetzt einfach durch Sperren (unpublish) der Anzeige des Gutscheines. Ein Umstellen auf "Deaktivieren nach Verwendung" bewirkt beim nächsten Aktivieren des Gutscheines das Eintragen der UserId des letzten Benutzers im Feld "used" und Ausgabe des Wahrheitswertes "benutzt" anstatt der Gutscheinverwendungen.

coupon counter

Im Bildausschnitt sichtbar wurde der Coupon Nummer 3344 nach einmaliger Benutzung deaktiviert. Der Coupon 1234 hingegen wurde 44 mal im Aktionszeitraum eingelöst.

Alternativen:

Das Problem bei dieser Art von Codeänderung sind die Updates von Joomshopping. Solange es aber keine automatischen Updates gibt und man immer noch die Möglichkeit hat, in dem zip File den aktuellen Code mit den Files auf der Homepage abzugleichen, ist diese Lösung zu empfehlen.

Der Rabatt wird in den Orders mitgeführt und findet sich in der Spalte order_discount wieder. Hier wäre es sinnvoll gewesen, auch auf die Tabelle der Gutscheine zu verweisen. Alternativ könnten die Anbieter von Joomshopping die hier vorgestellten Schritte in das nächste Update einfliessen lassen, eingeschlossen des Mitzählens der Coupons in der Gutscheintabelle im Feld "used" anstelle des Eintrags der letzten UserID, mit welcher der Käufer und Benutzer des Gutscheines bereits über die Orders ermittelt werden kann.

Bitte fragen Sie mich direkt, damit ich Ihnen zeitnah helfen kann.