Das System ist seit 20.07.2026 live; die dev-Doku spiegelt jetzt den Betriebszustand statt der Release-Vorbereitung: - dev/betrieb/: Deploy-Runbook (neu: §10 Betrieb nach Go-Live mit SFTP-Deploy-Checkliste inkl. queue:restart-Pflicht und den Betriebs-Erkenntnissen der Go-Live-Woche), Legacy-API-Parität, Umami. - dev/roadmap.md: offene Nachlauf-Punkte (Go-Live-Mails, Merge nach main, Stripe-Test-Artefakte, Key-Rotation, Alt-System-Abschaltung) und Ideen-Backlog. - dev/archive/: abgeschlossene Phasen — Migration-2026-Planung, Cutover-Runbook (mit Erledigt-Vermerk), Release-Plan/QA-Checkliste, Optimierungsphasen, Frontend-Konzepte + Responsive-Audits vom 16.07., Altsystem-Reste. - dev/README.md als Wegweiser; gitignore-Pfad der SQL-Dumps mitgezogen (dev/archive/migration-2026/sql/ bleibt untracked, ebenso dev/migration/ und dev/api/). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
50 lines
2.8 KiB
Markdown
50 lines
2.8 KiB
Markdown
# Boost-Platzierung — ENTSCHIEDEN + UMGESETZT (13.07.2026)
|
||
|
||
Stand: 13.07.2026. Kontext: Boost-Add-on ist seit 10.07. Ende-zu-Ende live.
|
||
Die zwei offenen Punkte von Montag sind entschieden und umgesetzt.
|
||
|
||
## Entscheidung (User, 13.07.2026)
|
||
|
||
1. **Harte Slot-Grenzen:** max. **5** gleichzeitige Boosts auf der Startseite,
|
||
max. **3** je Branchenseite (Kategorieseite) — die Grenzen entsprechen genau
|
||
den sichtbaren Plätzen (Startseite: Lead + 4 Seitenleiste; Branchenseite:
|
||
Lead + 2 Top-Slots). Verkauft wird nur, was sichtbar ist.
|
||
2. **Zwei Boost-Stufen mit Preisunterscheidung:**
|
||
- **Startseiten-Boost** (voller Preis, 12/20/35 Credits für 7/14/30 Tage):
|
||
erscheint wie bisher auf Startseite **und** Branchenseite.
|
||
- **Kategorie-Boost** (50 % vom Boost-Preis, aufgerundet: **6/10/18
|
||
Credits**): erscheint **nur** auf der Branchenseite der Rubrik.
|
||
3. **Hero-Slider:** vorerst **nicht** umgesetzt — durch die Slot-Grenze
|
||
(5 = sichtbare Plätze) entsteht kein Sichtbarkeits-Überhang. Bleibt als
|
||
spätere Ausbaustufe notiert (dann könnte die Grenze steigen), ebenso die
|
||
Zeitraum-Buchung wie im Anzeigengeschäft.
|
||
|
||
## Umsetzung (13.07.2026, Suite: 1222 grün)
|
||
|
||
- `boosts.placement` (`home`/`category`, Enum `BoostPlacement`; Bestandsboosts
|
||
= `home`), Preise/Slots in `config/credits.php` (`boost_category`,
|
||
`boost_slots`).
|
||
- `BoostService::slotAvailability()` prüft je Ausgabe (Portal × Sprache, beim
|
||
Kategorie-Boost zusätzlich je Rubrik); Kauf am vollen Inventar wirft
|
||
`BoostNotAllowedException::soldOut()` mit dem frühesten freien Termin.
|
||
**Verlängerungen** brauchen keinen freien Slot (die PM hält ihren);
|
||
die Stufen verlängern unabhängig voneinander.
|
||
- Startseite (`HomePageData`) zeigt nur `home`-Boosts; Branchenseite
|
||
(`CategoryPageData`) zeigt Kategorie-Boosts **mit Vorrang** vor
|
||
Startseiten-Boosts (die 3 Kategorie-Slots sind die verkaufte Garantie,
|
||
Startseiten-Boosts füllen nur übrige Plätze).
|
||
- Kategorie-Boost invalidiert nur die Branchenseiten-Caches, nicht die
|
||
Startseite.
|
||
- Kunden-UI (PM-Seite): zwei Boost-Angebote im Add-on-Panel; solange buchbar,
|
||
zeigt jede Stufe „Noch X von Y Plätzen frei." (knappste Ausgabe); bei vollem
|
||
Inventar „Derzeit ausgebucht — der nächste Platz wird am TT.MM.JJJJ frei."
|
||
statt der Kauf-Buttons (serverseitig gegated).
|
||
- Preisseite (`/preise`, beide Staffeln + Leistungsbeschreibungs-Note zu
|
||
Slot-Begrenzung, de/en), Buchungsseiten-Preisliste ergänzt.
|
||
- Tests: `BoostServiceTest` (Slots/Preise/Verlängerung),
|
||
`Web/BoostPlacementTest` (Platzierung/Vorrang/Cache),
|
||
`PressReleaseShowAddonsTest` (UI/Ausgebucht), `CreditPricingServiceTest`.
|
||
|
||
**Hinweis [EXTERN]:** Die aktualisierte Boost-Note der Preise-Seite
|
||
(Leistungsbeschreibung, „was Sie bekommen und was nicht") sollte mit in die
|
||
anwaltliche Freigabe des Rechtstexte-Pakets.
|