Automatische Generierung von Gutschein-Codes in Magento 1.7

Wer kennt die Situation nicht? Man möchte zur Ankurbelung des Umsatzes eine größere Menge von Gutscheinen an seine Kunden ausgeben. Jeder Kunde soll den Gutschein nur einmal einlösen können. Zugleich müssen auch Gäste (also nicht registrierte User) in der Lage sein, den Gutschein zu verwenden.

Damit das möglich wird, müssen für die Aktion Gutscheine mit individuellem Code erzeugt werden. Bisher gab es in Magento hierfür drei Möglichkeiten:

  1. Man setzt sich einen Tag lang vor den PC und legt alle Gutscheine händisch an.
  2. Man erwirbt eine Erweiterung von einem Drittanbieter, welche die Funktionalität nachrüstet.
  3. Man schreibt ein Skript (bzw. lässt eines programmieren), das sich um die Generierung kümmert.

Doch das ändert sich nun. Mit Magento 1.7 wird eine Funktion zur automatischen Erstellung von Coupon-Codes für Preisregeln eingeführt, sprich: Magento kann nun auf Knopfdruck beliebig viele Gutschein-Codes nach dem Zufallsprinzip generieren. Die Preisregel muss dafür nur einmal angelegt werden.

Anmerkung: ich habe diesen Artikel geschrieben, als Magento 1.7 in der Version Alpha 1 vorlag. Es kann also sein, dass es bis zur stabilen Version 1.7 noch Änderungen vorgenommen werden.

Automatisches Erstellen von Gutschein-Codes

Um die neue Funktionalität zu verwenden, meldet man sich wie gewohnt im Magento-Backend an und erstellt eine Warenkorb-Preisregel. Wenn man angibt, dass ein Gutschein-Code verwendet werden soll, wird ein Eingabefeld für den Gutschein-Code und – das ist nun neu – eine Option angezeigt, Codes automatisch zu generieren.

Man hakt die Option an und speichert die Preisregel ab. Nun kommt bei der Warenkorb-Preisregel im linken Menü ein neuer Punkt namens „Manage Coupons Codes“ zum Vorschein, wie in diesem Screenshot zu sehen:

Klickt man auf dem Menüpunkt, erhält man eine leere Liste und ein Formular, um die Codes zu erstellen:

Folgende Optionen existieren für die Erstellung von Gutschein-Codes:

  • Coupon Qty: Wie viele Gutschein-Codes sollen erstellt werden?
  • Code Length: Aus wie vielen Zeichen besteht der Gutschein-Code?
  • Code Format: Aus welchen Zeichen besteht der Gutschein-Code? Hier kann zwischen Buchstaben, Zahlen und einer Kombination von Buchstaben und Zahlen gewählt werden.
  • Code Prefix: Soll dem Gutschein-Code eine fixe Zeichenkette vorangestellt werden? Zum Beispiel könnte man dem zufällig generierten Code „Ostern-2012-“ voranstellen, um den Gutschein für eine Osteraktion zu branden.
  • Code Suffix: Soll eine fixe Zeichenkette an das Ende des Gutschein-Codes angefügt werden?
  • Dash Every X Characters: Soll der Code durch Gedankenstriche unterteilt werden? Zum Beispiel wird Kunden die Eingabe stark erleichtert, wenn die Zeichenfolge in Dreier-Gruppen unterteilt wird.

Nachdem die Parameter konfiguriert sind und man auf „Generate“ klickt, werden die Codes erstellt. In meinem kleinen Testsystem mit deaktiviertem Cache dauerte die Generierung von 5.000 Codes knapp 20 Sekunden. Das Ergebnis sieht wie folgt aus:

Neben jedem Gutschein-Code ist zu sehen, wann er erstellt wurde sowie ob und wie häufig er benutzt wurde.

Fazit

In Magento 1.7 wird mit der automatischen Gutschein-Code-Generierung ein Feature eingeführt, das von Shop-Betreibern stark und häufig nachgefragt wird. Es ist somit nicht mehr zwingend nötig, eine Erweiterung eines Drittanbieters zu implementieren und diese bei Software-Aktualisierungen zu überprüfen sowie zu warten.

Man kann sich erhoffen, dass die Funktionalität in Zukunft noch weiter ausgebaut wird. Was zum Beispiel in der aktuellen Alpha-Version fehlt ist die Option, leicht verwechselbare Buchstaben (wie „1“ versus „I“) bei der Generierung nicht zu verwenden.

46 Antworten

  1. Sascha sagt:

    Super, das das hat wirklich gefehlt. Weißt du ob man in der 1.7 dann auch die Gutscheine als Produkte verkaufen kann, sodass das System die generierten Codes automatisch per mail rausschickt?

    • Soweit ich weiß, gibt es das noch nicht. Bis jetzt ist nur die Alpha1 draußen, da können noch neue Features hinzukommen – ob es genau das wird, darauf möchte ich aber nicht wetten. 🙂

  2. Vielen Dank für den Beitrag – sehr informativ und interessant!

    Ich denke nicht, dass Gutschein-Produkte irgendwann für die Community Edition umgesetzt werden, da dies eine bereits existierende Enterprise-Funktionalität ist.

  3. Manuel sagt:

    Wie werden die Codes denn dann verwendet? Als .csv exportieren und dann in einem Skript verarbeiten um zu verschicken? Oder können die dann in irgendeiner Weise in einen Newsletter integriert werden automatisch?

    • Genau, die Codes können als CSV oder Excel-XML exportiert werden. Im Export sieht man dieselben Daten wie in der Gutscheine-Liste (inklusive verwendet ja/nein und Anzahl der Einlösungen). Soweit ich gesehen habe, gibt es aktuell keine Möglichkeit, die Codes in einen Newsletter zu integrieren.

  4. Manuel sagt:

    ..Was im Endeffekt wieder die Notwendigkeit eines eigenen Skriptes hervorbringt. Aber es ist schonmal ein Anfang. 1.7 bringt gute Neuerungen, insbesondere die separaten Preise für Benutzergruppen.

  5. Manuel sagt:

    BTW. gibt es irgendwo eine Info wann das Final Release veröffentlicht wird? Finde nirgends was im Internet

  6. Manuel sagt:

    BTW wann soll denn die Final Release veröffentlicht werden? Finde nirgends was dazu.

    • Es gibt kein offizielles Datum. Vor dem Final-Release erscheint sicher ein Release Candidate, es wird also noch ein wenig dauern.

  7. munter sagt:

    Hallo,

    vielen Dank für die Hilfestellung 😉

    Kennst du oder gibt es bereits eine Möglichkeit diese Gutscheincodes aus dem System heraus zu verschicken?

    • Hallo,

      die Möglichkeit bietet Magento CE von Haus aus bisher leider nicht. Man kann nur die Gutscheincodes als CSV exportieren und dann z.B. über ein Newsletter-System verschicken.

  8. Daniel sagt:

    Hallo Matthias,

    dein Beitrag ist schon ein paar Monate alt, ich weiß, aber mittlerweile sind 1.7 und das Gutscheintool ja veröffentlicht.

    Wir überlegen, diese Gutschein-Funktion zu verwenden, haben aber noch einige ungelöste Probleme: Gibt es eine Möglichkeit, dass ein Kunde mehrere Gutscheine bei einer Bestellung einlösen kann? Und weißt du, ob man irgendwie einstellen/programmieren kann, dass ein Gutschein nach Benutzung nicht immer verfällt, sondern ein eventuelles Restguthaben weiter erhalten bleibt?

    Wenn das alles nicht geht, kannst du andere Gutscheintools für Magento empfehlen?

    Danke für deine Hilfe!

    Daniel

    • Hallo Daniel,

      in Magento CE kann ein Kunde standardmäßig nur einen Gutschein einlösen. Es gibt verschiedene Extensions zum Verkauf, die das ändern sollen, z.B. von Amasty, Webtex oder Bytes Technolab.
      Ich kenne leider keine dieser Erweiterungen. Daher solltest du auf jeden Fall gut recherchieren, ob eine der Extensions etwas taugt.
      Restguthaben werden in der Community Edition leider ebenfalls nicht unterstützt.

      • Hi Matthias,

        gibt es für die Restguthaben keine Lösung in der Community Edition? Im deutschen Rechtsraum müsste das ein riesiges Problem für nahezu alle Shops sein. Dafür muss es doch ein Modul geben.

        Beste Grüße aus Hamburg, bis Sonntag / Montag 🙂

        • Hi,

          mir fällt spontan keine Lösung ohne Erweiterung ein. Es handelt sich eben um eine Warenkorbpreisregel, bei der man „zufällig“ auch einen Gutschein-Code hinzufügen kann und nicht um eine vollständige Gutschein-Lösung. 😉
          Ob die Möglichkeit einer Teileinlösung (in Ö) rechtlich vorgeschrieben ist, kann ich jetzt gar nicht sagen. Im schlimmsten Fall müsste man einen neuen Gutschein mit dem Restbetrag ausstellen (oder unterbinden, dass der Gutschein bei zu niedrigem Warenwert eingelöst wird, was eine miserable User-Experience wäre).
          Ich würde mich nach den typischen Gift-Card-Modulen umsehen…

          Bis zur MM!

          • Ganz naiv hätte ich jetzt gesagt, dass es sich ja um eine spezielle Art von Regel handelt (Rabatt um X Euro, Coupon Code, einmal einlösbar). Dann klemmt man sich in den Checkout rein und prüft, ob eine solche Regel gegriffen hat mit Warenwert < Rabattbetrag. Dann passiert folgendes:
            1. Rabattbetrag wird verringert (Rabattbetrag = Rabattbetrag – Discount-Amount)
            2. Die Regel wird erneut aktiviert
            3. In der Regel wird vermerkt, dass ein Teil in Bestellung #xyz genutzt wurde
            4. Der Kunde bekommt eine Mail, dass er den Rest noch mit demselben Code einlösen darf

            Reicht mit Sicherheit noch nicht an allen Stellen aus, aber wäre doch ein Ansatz, oder? Sieht für mich aus wie ein notwendiges Modul für deutsche Magento-Shops (siehe Magento DE).

            Für mich sind die Gift-Card-Module immer gleich so umfangreich, wenn man überlegt, dass es hier eigentlich nur um ein Stückchen mehr Rechtssicherheit in DE geht. Wenn es das noch nicht als Modul gibt, würden wir über eine Entwicklung bei der Shopwerft nachdenken.

          • Benjamin, hast du dich mit dem Problem eigentlich noch näher beschäftigt? Habe ich dich auf der Meet Magento gar nicht gefragt. 😉

          • Hi Matthias,

            wir sind noch an der Sache dran. Die Shopwerft entwickelt gerade ein Modul, das sich ausschließlich um die Restwert-Gutscheine kümmert.

  9. Boris sagt:

    Hallo Matthias,
    ich habe für unseren Kunden gerade eine Warenkorb-Preisregel für eine bestimmte Kategorie von Produkten eingerichtet. Leider erscheint im Zahlungsprozess (auch im Original-Theme) keine Möglichkeit, irgendwo einen der erstellten Rabattcodes einzugeben, sodass der Rabatt gültig wird. Hast Du dazu eine Idee?

    Beste Grüße,
    Boris

    • Hallo Boris,
      in der Standard-Magento-Installation kann man den Gutschein-Code auf der Warenkorbseite eingeben. Wenn hier nichts bei dir aufscheint, wurde wohl etwas verändert.

  10. Echt super Beitrag. Ein mir ist nicht klar. Warum soll ein Kunde mehrmals den Code einsetzten, wenn dieser doch nur einmal gülitg ist.

    • Danke. Man kann Gutscheine prinzipiell so konfigurieren, dass ein Gutscheincode mehrfach eingelöst werden kann. Mit der neuen Funktion, viele Codes für einen Gutschein zu generieren, ist das aber nicht mehr so sinnvoll.

  11. Danke für die Antwort. Was mich allerdings wundert, ist folgender Sachverhalt. Ich habe eine Warenkorbpreisregel angelegt. Jetzt versuche ich eine 2. Regel anlegen, diese wird im BE leider nicht angelegt. Sobald man eine Bedingung anlegen will, wird man ins Dashboard umgeleitet. Was könnte das sein?

  12. Nadine Lips sagt:

    Vielen Dank für den toll und v.a. einfach erklärten Beitrag!
    Hat mir sehr dabei geholfen, eine kleine Oster-Aktion zu starten 🙂

    Viele Grüße!

  13. Peter sagt:

    Hi vielen dank für die Anleitung, habe es genauso gemacht, jedoch bekomme ich ein Problem, wenn meine Artikel komplett kostenlos werden, stimmt die Gesammtsumme in der Rechung nichtmehr (überall sonst schon). Kann es daran liegen dass ich BundleArtikel nehme, die virtuelle produkte beinhalten? Eine genauere problembeschreibung habe ich noch hier gepostet:

    vielen Dank schonmal im vorraus.

    • Hi,
      die Kombination habe ich noch nie gehabt, kann ich daher nicht sagen. Seltsam finde ich, dass bei einem Euro Guthaben die Gesamtsumme so stark differiert (wie von dir bei Stack Overflow beschrieben). Vor 4 Minuten hast du dort ein Update gepostet, das danach klingt, als ob du auf einem guten Weg bist.

  14. Ralph sagt:

    Da ja in der Standard-Magento-Installation der Gutschein-Code auf der Warenkorbseite normal vorhanden ist, bei mir aber nicht vorhanden ist, wie kann man diesen Standard in diesem Zusammenhang wiederherstellen ohne dabei alle andere Konfioguationen zu verändern?

    • Zwei Voraussetzungen müssen (im Standard-Theme) erfüllt sein:
      1. Der Block „checkout.cart.coupon“ muss über die Layout-XML-Dateien eingebunden sein. Das geschieht in checkout.xml.
      2. In der Template-Datei checkout/cart.phtml muss der Block mittels echo $this->getChildHtml(‚coupon‘) ausgegeben werden.
      Ihr Theme wird voraussichtlich eine (oder beide) Voraussetzungen nicht erfüllen.

  15. Joey sagt:

    Hallo

    Dieser Beitrag ist zwar schon einige Monate alt und vieles wurde bereits implementiert. Ich habe dennich eine Frage: kann in der jetzigen Version, das ganze so eingestellt werden, dass ein beliebiger Shopbesucher automatisch ein Gutschein an einem oder mehrere Bekannte schicken kann? Faktisch würde dad dann so aussehen, dass im Shop ein Link auf eine Maske führt, auf welcher jeder einen Gutschein an beliebige email Adressen schicken kann (analog http://www.bijouteria.ch). Ich habe dazu keine Infos und auch keine Extensions gefunden). Wissen Sie hier mehr?

    Joey

  16. Siggi sagt:

    Hallo!

    Mich würde interessieren ob die die Gutschein als Produkt Variante soweit umgesetzt ist das es funktioniert und wie ich diese evtl. dann auch verwenden kann.

    Siggi

  17. Newbie sagt:

    Hallo Matthias,

    in meinem Shop möchte ich gerne ab einem Bestellwert von 100.- einen Rabattbetrag von 20.- einmalig anbieten. Also für jeden Kunden einmal.

    Ich habe dazu folgende Warenkorb-Regel erstellt:
    Verwendung pro Rabattcode=leer
    Verwendung pro Kunde=1
    Bedingung=Wenn ALLE dieser Bedingungen WAHR sind: Zwischensumme größer gleich als 100
    Aktion=Fester Betrag für gesamten Warenkorb: 20

    Beim Testen klappt alles, wenn ich eingeloggt bin. Dann kann ich den Gutschein nur einmal einlösen. Aber wenn ich als Gast bestelle, kann ich den so oft verwenden, wie ich will.

    Wie kann ich das einschränken? Ich möchte diesen Code eigentlich an meine Newsletter-Abonnenten (phpList) versenden (etwa 5’000). Geht das überhaupt so mit einem allgemeinen Code oder muss ich die individualisieren und dann als CSV exportieren und dann irgendwie „separat“ pro Empfänger ins phpList importieren.

    Danke & Gruss
    Newbie

    • Hallo Newbie,

      ein „Kunde“ im Magento-Sinne ist jemand mit einem Kundenkonto. Und genau darauf bezieht sich auch die Angabe „Verwendung pro Kunde“. Für Gäste ist diese Angabe also untauglich.

      Wenn du einen Magento-Shop ab Version 1.7 (Community Edition) hast, kannst du 5.000 Gutscheincodes vorgenerieren, die nur einmal gültig sind. Du kannst die dann als CSV exportieren und in dein Newsletter-Tool importieren.

      Beste Grüße
      Benjamin

    • Hallo,
      du hast das richtig erkannt. Möchtest du auch Gäste mit Gutscheincode bestellen lassen, dann musst du individuelle Codes ausschicken.

      Willst du nur einen Code verwenden, dann kannst du den Gutschein so einschränken, dass er nur für eingeloggte Kunden gilt. So greift die „Verwendung pro Kunde=1“-Regel. Bei Gastkunden ist es nämlich schwer bis unmöglich festzustellen, ob der Kunde zum zweiten Mal bestellt. Wann handelt es sich um denselben Kunde? Bei gleicher Adresse? Identer Anschrift? Was, wenn einmal der Mittelname unterschiedlich ist und sonst alles gleich? Natürlich kann jemand auch zwei Kunden-Accounts erstellen, aber irgendwo muss man halt machen.

  18. El ke sagt:

    Hallo! Ich komme bei der Google-Suche immer wieder auf deine Seite, das Problem ist nicht ganz passend zum Thema, ich wage jetzt aber doch meine Frage an dich – vielleicht kannst du mir weiterhelfen: Ich habe vorgefertigte Gutscheine mit den duchgehenden Zahlen 1 bis 5000, das heißt ich müsste die irgendwie manuell einbauen. Ich bin schon auf einigen Seiten gelandet, habe mir Scripts angesehen, aber so richtig traue ich mich da nicht ran. Was wäre denn dein Tipp wie man das am besten händelt? Kannst du mir das kurz – und wenn möglich DAU-gerecht – erklären? Lieben Dank!

  19. Ralph sagt:

    Hallo Matthias, das ist super beschrieben. Vielleicht habe ich aber etwas übersehen und bitte um Hilfe:
    Wie schalte ich es frei, dass der Kunde beim Bezahlvorgang (zur Kasse?) den Gutscheincode eingeben kann und automatisch die Regel berechnet wird. Bei mir ist das nämlich nicht der Fall.

  20. Ralph sagt:

    sorry, war schon beantwortet. Bitte daher ignorieren

  21. AP sagt:

    Hi, danke für den hilfreichen Artikel.

    Kannst Du mir sagen wie ich nun erkennen kann wie OFT die Warenkorb Preisregel nun benutzt wurde?

    Hintergrund: Wir haben einen Gutscheincode ausgegeben und haben die Verwendung pro Rabattcode offen gelassen. Die Verwendung pro Kunde auf 1 gesetzt. Jetzt, da einige Zeit vergangen ist seit dem wir den Code platziert haben, würde ich gerne nachschauen, wie oft er eingelöst wurde. Ich bin nach einigem googlen nicht fündig geworden. Hoffe Du kannst weiterhelfen.

    Vielen Dank schonmal!

    AP

    • Hallo, das findest du unter Reports > Sales > Coupons. Damit das funktioniert, müssen die Statistiken / Report-Tables gerneriert worden sein (über Cronjob oder Reports > Refresh Statistics.

      • AP sagt:

        Hallo Matthias,

        vielen Dank für Deine Hilfe. Funktioniert sehr gut. Im Nachhinein eigentlich recht einfach. Etwa wie den Wald vor lauter Bäumen nicht sehen.

        Beste Grüße

        AP

  1. 18.01.2012

    […] Automatische Generierung von Gutschein-Codes in Magento 1.7 […]