Die neue Mengen-Sperre (entries.length === quantity) hätte identische
Sammelkarten ohne Empfängerliste oberhalb der Tabellengrenze blockiert:
dort wuchs entries nie auf die Menge, weil der Sync-Effekt pauschal bei
> 25 pausierte. Der Sync pausiert jetzt nur noch, wenn pro Zeile wirklich
Daten nötig sind (Empfänger-/Individualtext-Schritt oder eigene
Platzhalter im Brieftext). Ohne solche Daten erzeugt die Menge N
Blanko-Zeilen – auch > 25. Extern-Modus unverändert.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Fehlbelastung behoben: PayPal belastete bisher den CLIENT-Quote
(quote.gross_total, mit der frei getippten Menge gerechnet), waehrend
der Auftrag serverseitig aus entries.length angelegt/bepreist wird.
Wichen die auseinander (Menge > 25, Sync pausiert, Menge nachtraeglich
geaendert), zahlte der Kunde z. B. fuer 150 Karten, angelegt wurden 15.
- PayPal belastet jetzt ausschliesslich den serverseitig bestaetigten
Auftragsbetrag (ergebnis.gross_total), nie den Client-Quote.
- Checkout wird blockiert, solange entries.length !== quantity, mit
klarer Meldung (Extern-/Datei-/preislose Produkte ausgenommen).
Motiv: Die Option "Motiv aus unserer Auswahl" wird nur noch angezeigt,
wenn fuer das Format Motive hinterlegt sind; sonst automatisch "Ohne
Motiv". Vor dem Laden bleibt die Option sichtbar (kein Aufblitzen).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Bei strukturierter Standardadresse wurde der Umschlag trotzdem mit dem
Freitext beschriftet, wenn im Freitextfeld noch Reste eines frueheren
Moduswechsels standen: das Backend (addressText) bevorzugt free_text.
free_text wird jetzt zentral in mitPlatzhaltern() normalisiert und in
Vorschau, Textpruefung und Bestellung identisch mitgeschickt.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Standard-Platzhalter (Vorname/Nachname/Strasse/PLZ/Ort/Land) werden beim Senden
je Empfänger explizit aufgelöst (standardWert) und mit den eigenen Platzhaltern
in entries.placeholders geschrieben – so wird zuverlässig ersetzt (Vorschau +
Bestellung).
- „Anrede" aus STANDARD_STRUKTUR entfernt (kein Empfängerfeld dafür) → [[Anrede]]
ist jetzt ein frei befüllbarer eigener Platzhalter statt fälschlich als Standard.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Eingeloggte Kunden sehen ihre Angebote (customer_offers) je Produkt und waehlen eins;
Aufschlaege pro Stueck flie\u00dfen serverseitig in den Preis, Name-Zusatz + Notiz sichtbar.
Quote/Order senden jetzt den Token (auth) mit, damit die Angebote greifen.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>