Neu: Partner-/Influencer-Rabattcodes (Warenkorb, Checkout, Admin)
Neben dem allgemeinen Gutscheincode gibt es jetzt einen zweiten, unabhängigen "Partner-Rabattcode"-Slot — für Codes, die VanVan gezielt mit einzelnen Streamer:innen/Content-Creator:innen aushandelt. Kund:innen lösen ihn genauso ein wie einen Gutschein (eigene, optisch identische Box direkt unter dem Gutschein im Warenkorb bzw. im Checkout), beide Codes können unabhängig voneinander gleichzeitig aktiv sein und ihre Rabatte werden addiert (auf die Zwischensumme gedeckelt, damit der Preis nie unter 0 € fällt). Admin (Sveltia CMS): neuer Bereich "🤝 Partner-Rabattcodes", getrennt von den allgemeinen Gutscheinen geführt. Pro Code lässt sich hinterlegen, zu welcher Partnerin/welchem Partner er gehört (nur für VanVans eigene Übersicht, wird Kund:innen nirgends gezeigt), Prozent- ODER Betrags- Rabatt, optionales Ablaufdatum, ein "Aktiv"-Schalter zum Pausieren ohne Löschen, sowie ein freies Notizfeld für die vereinbarten Konditionen (z.B. Provision) — echtes automatisches Auswerten, wer wie oft welchen Code einlöst, bräuchte ein eigenes Backend (Phase 2) und ist bewusst nicht Teil dieser rein statischen Umsetzung. Nebenbei einen bestehenden Bug behoben: die define:vars-Variablenliste im Checkout-Skript war bei EN/CH/FR unvollständig (discountLabel, couponInvalid, Klarna-/Bank-Texte fehlten) — dadurch wären dort Teile der Checkout-Seitenleiste als "undefined" gerendert worden. Jetzt an die vollständige Liste der DE-Version angeglichen. Neu erstellte Dateien lokal mit Test-Codes durchgespielt (Gutschein + Partnercode gleichzeitig eingelöst, Rabatte korrekt addiert, Admin- Formular mit allen Feldern geprüft) und wieder auf leere Listen zurückgesetzt vor dem Commit. Co-Authored-By: Claude Sonnet 5 <[email protected]>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
45f64b95ee
commit
6fc64e0972
@@ -284,6 +284,36 @@ collections:
|
||||
- { label: "ODER: Rabatt als fester Betrag (€)", name: betrag, widget: number, value_type: float, step: 0.01, required: false }
|
||||
- { label: "Gültig bis (leer = unbegrenzt)", name: bis, widget: datetime, format: "YYYY-MM-DD", date_format: "YYYY-MM-DD", time_format: false, required: false }
|
||||
|
||||
- name: partnercodes
|
||||
label: "🤝 Partner-Rabattcodes"
|
||||
icon: handshake
|
||||
files:
|
||||
- name: codes
|
||||
label: "Partner-Rabattcodes"
|
||||
file: src/content/partnercodes.json
|
||||
description: >
|
||||
Eigene Rabattcodes für Kooperationen mit Streamer:innen, Content-Creator:innen o.ä.:
|
||||
du handelst mit der Person einen Rabatt aus, den ihre Follower:innen mit diesem Code
|
||||
beim Einkauf bekommen. Fachlich wie ein Gutscheincode, aber bewusst getrennt von den
|
||||
allgemeinen Gutscheinen gelistet, damit du hier den Überblick behältst, welcher Code zu
|
||||
welcher Partnerin/welchem Partner gehört. WICHTIG: Diese Seite kann noch nicht
|
||||
automatisch mitzählen, wie oft ein Code eingelöst wurde (das bräuchte eine eigene
|
||||
Datenbank, kommt evtl. in einer späteren Ausbaustufe) — nutze das Notizfeld unten, um
|
||||
dir die vereinbarte Provision/Konditionen selbst zu merken.
|
||||
fields:
|
||||
- label: Partner-Rabattcodes
|
||||
name: codes
|
||||
widget: list
|
||||
summary: "{{fields.code}} — {{fields.partner}}"
|
||||
fields:
|
||||
- { label: "Name der Partnerin/des Partners (z.B. Streamer-Name)", name: partner, widget: string, hint: "Nur für deine eigene Übersicht — wird Kund:innen nirgends angezeigt." }
|
||||
- { label: "Code (z.B. MAXPLAYS15)", name: code, widget: string, hint: "Groß-/Kleinschreibung ist egal — wird automatisch angepasst." }
|
||||
- { label: "Rabatt in Prozent (z.B. 15 für 15%)", name: prozent, widget: number, value_type: int, required: false }
|
||||
- { label: "ODER: Rabatt als fester Betrag (€)", name: betrag, widget: number, value_type: float, step: 0.01, required: false }
|
||||
- { label: "Gültig bis (leer = unbegrenzt)", name: bis, widget: datetime, format: "YYYY-MM-DD", date_format: "YYYY-MM-DD", time_format: false, required: false }
|
||||
- { label: "Aktiv", name: aktiv, widget: boolean, default: true, hint: "Ausschalten, um den Code vorübergehend zu sperren, ohne ihn (und die Historie) zu löschen." }
|
||||
- { label: "Notiz zu den Konditionen (z.B. vereinbarte Provision)", name: notiz, widget: text, required: false, hint: "Rein intern für dich — wirkt sich nicht auf die Website aus." }
|
||||
|
||||
- name: bankverbindung
|
||||
label: "🏦 Bankverbindung"
|
||||
icon: account_balance
|
||||
|
||||
Reference in New Issue
Block a user