Rabattcodes
Rabattcodes gewähren Käufern einen Preisnachlass im Checkout. Sie sind etwas anderes als versteckte Tickets, die den Zugriff auf ein Ticket einschränken — ein Rabattcode reduziert den Preis. Du kannst beide kombinieren: ein verstecktes VIP-Ticket, dessen Preis durch einen Code zusätzlich sinkt.
Was du einstellen kannst
Jeder Code trägt fünf Eigenschaften, die du wählst:
| Feld | Wirkung |
|---|---|
| Typ & Betrag | Prozent (1–100 %) oder ein Festbetrag in der Währung deines Kontos. |
| Event-Beschränkung | Optional. Auf ein einzelnes Event begrenzen oder kontoweit gültig lassen. |
| Ablauf | Optionales Datum / Uhrzeit. Danach gilt der Code nicht mehr. |
| Gesamtlimit | Optionale Anzahl. Käuferübergreifend; bei hoher Last ist es ein weiches Limit. |
| Pro-Käufer-Limit | Optionale Anzahl. Wird per Checkout-E-Mail gezählt — erstattete Bestellungen geben einen Slot frei. |
Codes haben 3–32 Zeichen, nur Buchstaben / Ziffern / Bindestriche. Wir speichern alles in Großbuchstaben, also sind news10 und NEWS10 derselbe Code.
Wann du sie einsetzt
- Newsletter- & Treuerabatte — teile einen Code, der jedem Empfänger 10 % auf jedes Ticket gibt.
- Erstkäufer-Anreize — setze
Pro Käufer = 1, damit jede E-Mail genau einmal einlösen kann. - Influencer-Kooperationen — gib jedem Partner einen eigenen Code, damit du im Bestellverlauf siehst, welche Codes Verkäufe gebracht haben.
- Freikarten für eine bestimmte Gruppe — 100 % Rabatt mit kleinem Gesamtlimit, auf ein Event beschränkt.
- Zeitlich befristete Kampagnen — setze ein Ablaufdatum, damit du nicht selbst daran denken musst, den Code zu deaktivieren.
So lösen Käufer einen Code ein
Zwei Wege, beide eingebaut:
- Eingabe im Checkout — über den Bezahl-Buttons steht eine kleine “Hast du einen Rabattcode?”-Klappleiste. Käufer klappen sie auf, geben den Code ein, der Warenkorb aktualisiert sich sofort.
?promo=CODEin der URL — hänge?promo=NEWS10an jeden Shop-Link. Usetix speichert den Code in der Sitzung des Käufers, sodass der Rabatt im Checkout schon angewendet ist. Perfekt für Newsletter-, Ad- und Influencer-Links.
Codes, die nicht passen, werden im Shop stillschweigend ignoriert — kein abschreckender Fehler vor der Kaufentscheidung.
So legst du einen Code an
Im Admin-Dashboard: Seitenleiste → Rabattcodes → Neuer Code.
| Feld | Hinweis |
|---|---|
| Code | Was Käufer eingeben. 3–32 Zeichen, alphanumerisch + Bindestrich. Automatisch großgeschrieben. |
| Rabatt-Typ | Prozent oder Festbetrag. |
| Rabatt-Betrag | Prozent: Ganzzahl 1–100. Festbetrag: Betrag in deiner Kontowährung (z. B. 1,50 für 1,50 € Rabatt). |
| Event | Standard “Alle Events” oder auf ein Event beschränken. |
| Ablauf | Optional. Nach diesem Zeitpunkt gilt der Code nicht mehr. |
| Gesamtlimit | Optionale Obergrenze. |
| Pro Käufer | Optionales Limit je Käufer. |
| Aktiv | Häkchen entfernen, um den Code zu deaktivieren ohne ihn zu löschen. |
Speichern. Der Code ist sofort aktiv.
Auch der eingebaute KI-Assistent kennt Rabattcodes. Sag einfach: „Erstelle einen Code FALL26 — 15 % Rabatt, max. 1 pro Käufer” und er legt ihn an.
So wirkt der Rabatt auf Stripe & PayPal
Der Rabatt wird anteilig auf die Bestellpositionen verteilt, basierend auf den Originalpreisen. Die Stripe-Checkout-Seite zeigt die rabattierten Einzelpreise, der Käufer sieht die echten Zahlen und zahlt genau das. PayPal prüft gegen den rabattierten Gesamtbetrag. Bei vollständig rabattierten Bestellungen (Total = 0) entfällt der Zahlungsanbieter komplett — der Käufer bekommt seine Tickets direkt.
Die MwSt wird auf den rabattierten Gesamtbetrag berechnet, deine Käuferrechnung liest sich also korrekt: Positionen mit rabattiertem Preis, eine „Rabattcode”-Zeile, dann Netto / MwSt / Gesamt.
Limits, Races und Erstattungen
Das Gesamtlimit ist ein weiches Limit. Bei hoher gleichzeitiger Last auf einem fast erschöpften Code (z. B. Limit = 1 mit zwei parallelen Käufern) können einzelne Bestellungen das Limit überschreiten. Hartes Sperren würde Käufer im asynchronen Zahlungsfenster (Stripe-Checkout-Sessions können Stunden bestehen) stranden lassen. Geringe Überschreitung ist der richtige Kompromiss.
Das Pro-Käufer-Limit wird per Checkout-E-Mail gezählt und umfasst bezahlte + aktuell reservierte Bestellungen. Erstattete Bestellungen geben einen Slot frei — wer in gutem Glauben storniert, kann erneut einlösen, automatisch.
Einlösungen wird bei einer Erstattung nicht zurückgesetzt. Wer „100 Gratis-Coupons” ausgibt, möchte nicht, dass Erstattungen das Kontingent stillschweigend auffüllen. Wenn du nach Erstattungen mehr Einlösungen erlauben willst, bearbeite den Code und erhöhe das Limit.
Deaktivieren oder Löschen
In der Liste auf den Papierkorb:
- Codes ohne Einlösungen — werden sofort gelöscht.
- Codes mit mindestens einer Einlösung — werden deaktiviert (
Aktiv = false). Die historischen Bestellungen behalten ihren Snapshot des Code-Namens und des Rabatts; Belege und Rechnungen bleiben korrekt, auch wenn der Code aus der Übersicht verschwindet.
Was in der Bestelldetailseite zu sehen ist
Für jede Bestellung mit Code zeigt die Admin-Bestellseite:
- Zwischensumme — Summe der Originalpreise
- Rabattcode NAME — der gespeicherte Code-Name, mit abgezogenem Rabatt
- Gesamt — was tatsächlich gezahlt wurde
Der Webhook-Payload enthält discount_amount, promo_code und pro Position original_price neben price, damit externe Integrationen das vollständige Bild rekonstruieren können.
API-Zugriff
Vollständiges CRUD über die API EN only — gleiches Datenmodell, Bearer-Token, kontogebunden. Ideal, um Codes aus einem externen CRM zu synchronisieren oder pro Influencer-Partner einen eigenen Code zu erzeugen.