-
Rechnungsbetrag entspricht der bestätigten Warenkorbsumme
Der Bruttostückpreis wird jetzt einmal auf Cent gerundet (GrossPrice::fromNet)
und die Zeilensumme aus diesem gerundeten Preis gebildet. Bisher rechnete
OrderEditor::importCart() mit dem ungerundeten Preis weiter, während der
Warenkorb (DECIMAL-Spalte) gerundet anzeigte: Rechnungen wichen in 19 von 49
Testszenarien um bis zu 0,18 EUR von der bestätigten Summe ab, Zeilen gingen
nicht auf (10,00 x 3 = 29,99).
- GrossPrice an allen drei Stellen der Bruttoformel (Warenkorb, Preisauffrischung,
Bestellimport); OrderEditor::addItem() rundet den Stückpreis vor der Zeilensumme,
das deckt auch Preise aus Events und Kind-Plugins ab
- Cart::refreshNativeItemPrices() verglich den gerundeten DB-Preis mit dem
ungerundeten und schrieb deshalb bei jedem Aufruf neu
- Gutschriften erstatten je Zeile höchstens die gespeicherte Zeilensumme; bei
Altbestellungen (z. B. Nr. 54: 29,74 x 3 = 89,21) wurde eine volle Gutschrift
sonst als zu hoch abgelehnt
- Snapshot order-totals aktualisiert: Rechnung = Warenkorb in allen 49 Szenarien
de.yourecom.shop
6.2
-154 Löschungen +236 Hinzufügungen 390 Gesamt 10 Dateien
|
-
Charakterisierungstests: Warenkorb- und Bestellsummen für 7 Warenkörbe x 7 Rabattszenarien
Snapshots frieren das heutige Verhalten ein, auch den Fehler, den sie aufdecken:
Rechnungsposten rechnen totalPrice aus dem ungerundeten Bruttostückpreis, der
Warenkorb mit dem auf Cent gerundeten. Dadurch weicht der Rechnungsbetrag in
19 von 49 Szenarien von der bestätigten Warenkorbsumme ab (bis 0,18 EUR) und
Rechnungszeilen gehen nicht auf (10,00 x 3 = 29,99). Im Dev-System betroffen:
Bestellung 54 (29,74 x 3 = 89,21).
MatrixCart als gemeinsames Fixture (tests/Integration/Fixture).
de.yourecom.shop
6.2
-39 Löschungen +2.037 Hinzufügungen 2.076 Gesamt 10 Dateien
|
-
Vitest für die TS-Module: Cart-API, AddToCart, CopyInvoiceNumber, Funnel-Tracking
Stubs der Core-Module liegen versioniert in tests/ts/stubs (Muster aus
de.yourecom.shop.subscriptions). npm test / npm run typecheck laufen im
release-check mit.
de.yourecom.shop
6.2
+382 Hinzufügungen 382 Gesamt 9 Dateien
|
-
PHPUnit-Suites statt Testskripte, PHPStan fest auf 2.2.16
- composer: PHPUnit 11 und PHPStan 2.2.16 als Dev-Abhängigkeiten; test (Unit),
test-integration, analyse, release-check
- Die 6 Integrationsskripte als PHPUnit-Tests mit Rollback je Test
- Erster Unit-Test: StatisticsPeriod
- Baseline mit PHPStan 2.2.16 neu erzeugt (440 -> 432 Einträge)
- FeedProduct::getLink() trug #[\Override] ohne zu überschreiben
- ProductFeaturesFormContainer::saveValue() baut die Highlight-Struktur explizit
de.yourecom.shop
6.2
-1.012 Löschungen +2.993 Hinzufügungen 4.005 Gesamt 27 Dateien
|
|
|
-
6.2.39: Umfragen bleiben an, Konversationen nie (Profil und Test)
de.yourecom.website
codex/product-metadata-editor
-9 Löschungen +14 Hinzufügungen 23 Gesamt 4 Dateien
|
|
|
-
6.2.38: Kundenrolle statt Administrator (Gruppe Seitenbetreiber mit Produktprofil, Support-Administrator als Benutzer 1, Kern-Module aus), Tests inkl. effektiver Rechte
de.yourecom.website
codex/product-metadata-editor
-5 Löschungen +574 Hinzufügungen 579 Gesamt 9 Dateien
|
|
|
-
Cloud: Entwuerfe fuer Rechtstexte (AVV, AGB-Abschnitt, Datenschutz) mit offenen Punkten, nicht veroeffentlicht
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
de.yourecom.website
codex/product-metadata-editor
+95 Hinzufügungen 95 Gesamt 1 Dateien
|
-
Cloud-Backup: Datenbank als Root sichern (gesperrte Instanzen bleiben sicherbar), Test lokal, Anleitung
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
de.yourecom.website
codex/product-metadata-editor
-2 Löschungen +29 Hinzufügungen 31 Gesamt 2 Dateien
|
-
6.2.37: Loeschen als POST-Endpunkt (UI sendete POST, Endpunkt erwartete DELETE), Test prueft Methode jeder ACP-Aktion
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
de.yourecom.website
codex/product-metadata-editor
-4 Löschungen +45 Hinzufügungen 49 Gesamt 5 Dateien
|
|
|
|
|
-
Produkte ohne Kategorie: Produktseite liefert 404, Backend-Seiten laden ohne Brotkrumen
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
de.yourecom.shop
6.2
-6 Löschungen +11 Hinzufügungen 17 Gesamt 7 Dateien
|
|
|
-
Tests im Release-Check, PHPStan Level 8, TypeScript strict
- composer.json mit "test" (alle tests/*Test.php), damit release-check.sh
die Shop-Tests ausführt; "analyse" für PHPStan
- Testskripte brechen bei fehlendem Pfad mit Exit-Code 2 ab statt 0,
discountMatrixTest nimmt den Installationspfad als Argument
- PHPStan: Level 6 -> 8 mit Baseline der bestehenden Befunde,
dynamicConstantNames aus option.xml vervollständigt (28 fehlten,
u. a. SHOP_ENABLE_GUEST_CHECKOUT)
- PHPStan-Cache var/ aus Git entfernt und ignoriert
- tsconfig: strict (keine neuen Fehler)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
de.yourecom.shop
6.2
-260.290 Löschungen +2.720 Hinzufügungen 263.010 Gesamt 31 Dateien
|
-
Aufgabenlisten: Ansicht als Standard speichern, Standardzustand im ACP
- Knopf "Als Standard speichern" auf allen Aufgabenlisten (Start, Kategorie,
Meine, Verantwortlich, Ungelesen, Beobachtet, Benutzer): merkt Filter,
Sortierung und Karten/Board je Benutzer, je Liste und je Kategorie bzw.
Benutzer. "Gespeicherten Standard entfernen" im Menue der Seite
- eine Liste ohne Parameter in der Adresse leitet auf den gespeicherten
Standard weiter; die Adresse zeigt so immer, was aktiv ist, und
weggeklickte Schnellfilter bleiben weg
- neue Tabelle workplace1_task_list_preset (statt User-Storage, der beim
Leeren des Caches verloren geht), RPC-Endpoints POST/DELETE
/workplace/task-list-presets/{list}/{id}; gespeichert wird nur, was die
Liste kennt (Filter, Sortierfelder, board)
- ACP-Option "Standardzustand der Aufgabenlisten" (Alle/Aktiv/Erledigt).
Reihenfolge: eigener Standard, dann "heute faellig" der Startseite, dann
diese Option
- Integrationstests und Vitest
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
de.yourecom.workplace
6.2
-5 Löschungen +663 Hinzufügungen 668 Gesamt 15 Dateien
|
-
Aufgabenlisten: Seitenzahl im Titel ab Seite 2
Die Listen sind ListView-Seiten und setzen $pageNo nicht mehr, der Titel las
die Variable aber weiter ("Undefined array key pageNo" ab Seite 2, z. B. bei
Crawlern auf /support/?taskPage=all&pageNo=4). Die Seitenzahl wird jetzt wie
im Core an die Phrase uebergeben. Ein Unit-Test prueft alle Templates auf das
alte Muster.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
de.yourecom.workplace
6.2
-3 Löschungen +26 Hinzufügungen 29 Gesamt 2 Dateien
|
-
Erledigt per Klick: Doppelklick schickt nur noch eine Anfrage
- frueher wurde per Doppelklick erledigt, jetzt reicht ein Klick; ein
Doppelklick aus Gewohnheit schickte "erledigt" zweimal, die zweite Anfrage
scheiterte mit "Parameter objectIDs is missing or invalid"
- MarkAsDoneHandler ignoriert den zweiten Klick eines Doppelklicks und Klicks
waehrend einer laufenden Anfrage
- ChangeTaskDateState: der Zustand, den der Termin schon hat, ist kein Fehler
mehr (zweiter Tab, langsame Verbindung)
- Vitest fuer den Handler (Klick, Doppelklick, laufende Anfrage, Tastatur,
fehlende Berechtigung), Integrationstest fuer zweimal "erledigt"
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
de.yourecom.workplace
6.2
-2 Löschungen +113 Hinzufügungen 115 Gesamt 7 Dateien
|