Changelog
Versionshistorie von DasMiet.
Version 1.0.7 — Neue Standard-Preisstaffel
Die mitgelieferte Preisstaffel arbeitet jetzt mit einem echten Tagespreis und Mengenrabatt statt mit prozentualen Aufschlägen.
| Mietdauer | Regel | Beispiel (Basispreis 100 €) |
|---|---|---|
| Tag 1 – 10 | Basispreis je Tag | 5 Tage = 500,00 € |
| Tag 11 – 20 | 30 % Rabatt je Tag (70 € statt 100 €) | 15 Tage = 1.350,00 € |
| Tag 21 – 30 | 50 % Rabatt je Tag (50 € statt 100 €) | 25 Tage = 1.950,00 € |
| Ab Tag 31 | Individualpreis – Betrag dient als Richtwert | – |
- Die Preislegende für Kunden zeigt die Staffel in beiden Sprachen.
- Der Hilfetext des Feldes
Preisregeln (JSON)beschreibt jetzt den tatsächlich hinterlegten Standard; die englische Fassung nannte bisher eine Regel, die es nie gab.
Bestehende Shops sind nicht betroffen. Der neue Standard greift nur, wenn das Feld
Preisregeln (JSON) leer ist. Bereits konfigurierte Regeln bleiben unverändert — auch nach dem Update.
Version 1.0.6 — Deutsche Administration, Absenden aus der Übersicht
- Plugin-Konfiguration wieder auf Deutsch. Die deutschen Beschriftungen waren ohne Sprachkennzeichen hinterlegt und wurden dadurch als englische Texte registriert und überschrieben — in einer deutschen Administration erschien die gesamte Konfiguration englisch.
- Absenden direkt aus der Merklisten-Übersicht im Kundenkonto, für Listen mit Sets im Entwurf.
- Merklisten-Name auf der Produktseite verlinkt jetzt direkt auf die zugehörige Merkliste.
- Der Rücksprung aus der Merklisten-Vorschau heißt „Zurück zum Shop“ statt „Zurück zum Fundus“.
- Die farbige Trennlinie der Aktionsspalte in der Übersicht ist einer dezenten Linie gewichen.
- Mail-Betreff: Der Set-Name stand doppelt im Betreff, wenn die Vorlage ihn über
{{ setName }}bereits selbst ausgibt.
Version 1.0.5 — Bestellrecht für alle Statusaktionen
- Statusaktionen, die bei aktivierter Automatik eine Shopware-Bestellung anlegen, verlangen jetzt zusätzlich das Recht
order:create. Bisher genügte das Bearbeiten-Recht der Anfragen, um über „Bestätigen“ indirekt eine Bestellung zu erzeugen. - Bei den allgemeinen Statuswechsel-Endpunkten wird das Bestellrecht zur Laufzeit geprüft: Der Statuswechsel selbst bleibt für alle Bearbeiter möglich, nur die automatische Bestellung entfällt ohne das Recht.
Rollen prüfen. Mitarbeiter, die Anfragen bestätigen sollen, benötigen ab dieser Version zusätzlich das Recht „Bestellungen anlegen“ — sonst wird die Aktion mit einer Rechtemeldung abgewiesen.
Version 1.0.4 — Code-Review von Shopware, ACL, Mehrsprachigkeit
Umsetzung der Rückmeldungen aus dem Code-Review von Shopware. Das größte Update seit der Erstveröffentlichung.
Sicherheit
- Eigene ACL-Rechtegruppe „Verleihstatus“ (Ansehen / Bearbeiten / Anlegen / Löschen). Alle Admin-API-Routen prüfen die Rechte serverseitig; Endpunkte mit Kundendaten verlangen zusätzlich das Kundenrecht.
- Produktsuche und Verfügbarkeitsabfrage in der Storefront arbeiten verkaufskanal-bewusst und geben keine Daten aus fremden Verkaufskanälen mehr heraus.
- Abgesendete und bestätigte Sets können im Kundenkonto nicht mehr still verändert werden; zuerst zurückziehen.
- Bestell-Erzeugung ist gegen Doppelklick und parallele Anfragen abgesichert; bestellte Sets sind gegen Statuswechsel gesperrt, bis die Bestellung entkoppelt wird.
Datensicherheit bei Updates
- Plugin-Updates überschreiben die Mail-Templates nicht mehr. Bisher wurden bei jedem Update alle Vorlagen gelöscht und neu angelegt, wodurch im Admin gepflegte Mail-Texte verloren gingen.
- Die Migration, die beim Update alle Projekt- und Set-Stati auf „Entwurf“ zurückgesetzt und aktive Buchungen storniert hat, wurde entfernt. Updates lassen Bestandsdaten unangetastet.
- Deinstallation mit Datenlöschung entfernt alle Konfigurationswerte des Plugins, auch die pro Verkaufskanal überschriebenen.
Preise, Sprache, Darstellung
- Einheitliche Mietdauer-Berechnung: Abhol- und Rückgabetag zählen überall gleich — Angebot, Bestätigungsmail, PDF und Bestellung nennen denselben Preis.
- Kaufartikel in einem Set werden mit ihrem Standardpreis abgerechnet statt mit der Miet-Staffel.
- Englische Kunden erhalten vollständig englische Mail-Texte; die Mailsprache richtet sich nach dem Kunden, nicht nach dem Admin-Benutzer.
- Varianten erben die Mietartikel-Kennzeichnung des Hauptprodukts überall — auch in Buchungen, Bestellungen und der Produktdarstellung.
- Galerie und PDF zeigen den tatsächlichen Anfrage-Status; Logo aus der Plugin-Konfiguration mit Theme-Logo als Rückfall.
- Storefront-Styles verändern das Theme nicht mehr global: Topbar, Sprachumschalter und Header-Buttons bleiben unangetastet.
- Das gesamte Storefront-JavaScript liegt als kompiliertes Storefront-Plugin vor statt als Inline-Script — kleinere Seiten, Browser-Caching, CSP-freundlich.
- Beim Löschen eines Kunden werden dessen Anfragen mit entfernt; verwaiste Reservierungen werden storniert und blockieren kein Material mehr.
Version 1.0.3 — Warenkorb-Fix
- „In den Warenkorb“ für normale Kaufartikel funktionierte nicht, wenn die Option „Standard-Warenkorb ausblenden“ aktiv war. Der Warenkorb-Anker bleibt jetzt im DOM und wird nur visuell versteckt.
Version 1.0.2 — Bestellhinweise und Admin-Korrekturen
- Deutlicher Hinweis „Bestellung erzeugt“ in Administration und Storefront.
- Absende-Zeitpunkt wird gespeichert; neue Spalte „Abgesendet“ und Kunden-Verlinkung in der Administration.
- Storefront-Fehler beim Initialisieren sowie Lösch- und Öffnen-Aktionen in der Administration behoben.
Version 1.0.1 — Submitted-Tracking, Customer-Link, Spalten-Politur
Inhaltliches Update der Admin-Übersicht — die Mietanfragen-Liste zeigt jetzt mehr Information pro Zeile, ohne neue Mauseingriffe zu erzwingen.
- Neue Spalte „Abgesendet am“ in der Mietanfragen-Liste — zeigt den letzten Übergang nach
submitted, sortierbar. - Neues Feld
sven_miet_set.submitted_at(DATETIME) inkl. Backfill aus dem Set-Status-Log; wird bei jedem Übergang nachsubmittedaktualisiert. - Kundenname klickbar in der Mietanfragen-Liste — verlinkt direkt zu
sw.customer.detail. - Status-Spalten-Header auf „Set-Status“ / „Set status“ umbenannt zur Klarstellung gegenüber AxisMundi-Geschwister-Plugin.
Version 1.0.0 — Erste stabile Release
Erstveröffentlichung im Shopware Store. Das Plugin liefert ein vollständiges Workflow-System für Merkzettel, Mietanfragen und Bestellungen — mit pro Produkt umschaltbarem Miet-/Kauf-Modus.
Highlights
- Flaches UI-Modell — eine Liste pro Kunde, ohne Schachtelung von Sub-Containern. Customer-facing zeigt das Plugin nur „Merkliste / Anfrage" — DB-intern bleiben Project + Set für Erweiterbarkeit erhalten.
- Pro-Produkt-Schalter
sven_miet_is_rentalentscheidet pro Artikel zwischen Miet- und Kauf-Verhalten. Mixed-Listen unterstützt. - Verfügbarkeitsprüfung mit Flotten-Mehrfachvermietung über
product.stock, Pufferzeiten global und pro Produkt. - Staffelpreise mit Arbeitstage-Logik (Mo–Fr) inkl. Feiertagsberücksichtigung und optionalem Auto-Import via feiertage-api.de.
- Automatische Order-Erzeugung bei Bestätigung — Mietartikel mit Staffelpreis × Tage × Menge, Kaufartikel mit Standardpreis × Menge.
- 10 Mail-Vorlagen für jeden Statuswechsel (Submit, Retract, In Review, Confirmed, Rejected — jeweils Kunde + Admin).
- Schadensdokumentation pro Produkt mit HTML-Beschreibung und 5 Bildanhängen, nur im Admin sichtbar.
- Verleihstatus-Dashboard mit Equipment-Auslastung, Zeitraum-Filter und Timeline-View.
- Status-Audit-Log auf Anfrage- und Listen-Ebene mit Zeitstempel, Bearbeiter-Name und Rolle.
- Saubere Deinstallation — bei Datenlöschung werden alle 7 Tabellen, das Custom-Field-Set, alle Mail-Templates + Types und Plugin-SystemConfig-Einträge vollständig entfernt.
- Defensiver FK-Cleanup in den Migrations — alte generische FK-Constraint-Namen (
fk_set_project,fk_item_set) werden vor dem Neu-Anlegen mit eindeutigen Namen aufgeräumt; MySQL-Fehler 1826 bei Wiederholungs-Install ausgeschlossen. - CLI-Befehle für Custom-Field-Sync, Feiertags-Import, Massen-Setzen des Rental-Flags und Test-Reset.
Voraussetzungen
- Shopware 6.7.x
- PHP 8.1+
Bekannte Einschränkungen
- Mail-Templates werden bei jedem Plugin-Update mit Default-Inhalten überschrieben. Eigene Anpassungen vorher exportieren.
- Admin-UI zeigt das 2-Level-Datenmodell (Anfrage + Liste). Customer sieht das flache Ein-Level-Modell. Konsolidierung der Admin-UI ist für 1.1 geplant.
- Feiertags-API ist regional auf DE/AT/CH festgelegt. Für andere Länder manuelle Pflege über Plugin-SystemConfig.