Installation & Konfiguration
Plugin einrichten, Produkte markieren, Preise konfigurieren.
Plugin installieren
-
Plugin-Verzeichnis ablegen
Verzeichnis
SvenDasMietnachcustom/plugins/kopieren. -
Plugin-Refresh
bin/console plugin:refresh -
Installation & Aktivierung
bin/console plugin:install --activate SvenDasMiet -
Cache leeren und Theme bauen
bin/console cache:clear bin/console theme:compile -
Scheduled Tasks registrieren (optional, für automatischen Feiertags-Import)
bin/console scheduled-task:register
- 7 DB-Tabellen mit Präfix
sven_miet_*(Constraint-Namen DB-weit eindeutig) - Custom-Field-Set „Mietartikel" mit allen Produktfeldern
- 10 Mail-Template-Typen mit Default-Templates
- Plugin-SystemConfig mit sinnvollen Default-Werten
Deinstallation
Beim Deinstallieren stehen zwei Optionen zur Verfügung:
- Daten behalten (Default) — Plugin wird abgemeldet, alle DB-Daten und Custom Fields bleiben unangetastet. Bei Reinstall ist der vorherige Zustand wieder da.
- Daten löschen — Alle 7 Plugin-Tabellen, das Custom-Field-Set, alle Mail-Templates UND deren Typen sowie die
SvenDasMiet.config.*-SystemConfig-Einträge werden vollständig entfernt.
fk_set_project, fk_item_set), räumt die Migration sie defensiv auf, bevor sie eindeutige Namen anlegt. Der MySQL-Fehler 1826 („Duplicate foreign key constraint name") tritt damit nicht mehr auf.
Plugin-Konfiguration
Erreichbar im Admin unter Erweiterungen → Merkzettel, Mietanfragen & Bestellungen → Konfiguration. Alle Werte sind Sales-Channel-spezifisch hinterlegbar.
| Setting | Bedeutung | Default |
|---|---|---|
enabled | Plugin im Sales-Channel aktiv | true |
requestNumberPrefix | Präfix für Anfragen-ID | AM- |
bufferBeforeDays | Globale Pufferzeit vor Mietbeginn | 1 |
bufferAfterDays | Globale Pufferzeit nach Mietende | 2 |
createOrderOnConfirm | Bei Bestätigung automatisch Bestellung anlegen | true |
hideCart | Warenkorb-Icon im Header ausblenden | false |
pricingRulesJson | Staffelpreis-Regeln (siehe unten) | siehe Default |
pricingDisplayHtml | HTML-Erklärbox auf der Listen-Detailseite | siehe Default |
holidays | Liste der Feiertage (Y-m-d) | leer |
countHolidaysAsWorkingDays | Feiertage als Arbeitstage zählen | false |
Mietartikel markieren
Im Produkt-Custom-Field-Set „Mietartikel" (automatisch nach Installation verfügbar) findet sich pro Produkt:
| Feld | Zweck |
|---|---|
sven_miet_is_rental | Produkt als Mietartikel behandeln (kein direkter Warenkorb, Verfügbarkeitsprüfung greift) |
sven_miet_buffer_before_days | Pro-Produkt-Puffer vor Mietstart (überschreibt globalen Wert) |
sven_miet_buffer_after_days | Pro-Produkt-Puffer nach Mietende |
sven_miet_rental_not_available | Temporär nicht verleihbar — Anfragen weiterhin möglich |
sven_miet_rental_not_available_note | Optionaler Hinweistext für den Kunden |
sven_miet_damage_description | HTML-Schadenbeschreibung (nur Admin) |
sven_miet_damage_image_{1..5} | Schaden-Bildanhänge (Media-Picker) |
Massen-Markierung per CLI
# Alle Produkte als Mietartikel markieren
bin/console sven-das-miet:set-rental-flag --all
# Alle Produkte als Kaufartikel markieren
bin/console sven-das-miet:set-rental-flag --all=false
# Bestehende Werte über alle Sprachübersetzungen synchronisieren
bin/console sven-das-miet:set-rental-flag
Staffelpreise (nur Mietartikel)
Die Berechnung erfolgt auf Arbeitstagen (Mo–Fr). Pricing-Rules in JSON-Form in der Plugin-Konfiguration:
[
{"from": 1, "to": 3, "factor": 1.0},
{"from": 4, "to": 7, "factor": 0.8},
{"from": 8, "to": 14, "factor": 0.6},
{"from": 15, "to": 30, "factor": 0.5}
]
Jeder Eintrag beschreibt einen Tage-Bereich (from–to) und den Multiplikator (factor) auf den Tagespreis. Im Beispiel: 1–3 Tage = voller Preis, 4–7 Tage = 80% pro Tag, 8–14 Tage = 60%, 15–30 Tage = 50%.
sven_miet_is_rental-Flag gilt der Standard-Produktpreis × Menge — egal wie lang die Liste „offen" liegt.
Feiertage
Feiertage werden bei der Arbeitstage-Berechnung ausgeschlossen. Pflegen kannst du sie auf zwei Wegen:
Manuell
Plugin-Konfiguration → Feiertage (kein Berechnungstag) → Daten als Y-m-d hinzufügen.
Automatisch via API
# Feiertage für das aktuelle und kommende Jahr importieren
bin/console sven-das-miet:holidays --import
# Aktuelle Liste anzeigen
bin/console sven-das-miet:holidays
Der Import nutzt feiertage-api.de (DE/AT/CH). Ein Scheduled Task sven_miet_setlist.import_holidays aktualisiert die Liste monatlich automatisch.
CLI-Befehle (Übersicht)
# Custom Fields nachträglich registrieren / sicherstellen
bin/console sven-das-miet:custom-fields
# Massen-Setzen des Rental-Flags
bin/console sven-das-miet:set-rental-flag --all # alle = true
bin/console sven-das-miet:set-rental-flag --all=false # alle = false
bin/console sven-das-miet:set-rental-flag # Sprach-Sync
# Feiertage
bin/console sven-das-miet:holidays --import
bin/console sven-das-miet:holidays
# Test-Reset (Buchungen + Anfragen löschen)
bin/console sven-das-miet:reset --confirm
# Scheduled Tasks aktivieren
bin/console scheduled-task:register
bin/console scheduled-task:list