Abo Einmalprodukte: Phasen 5-7, konfigurierbare Sperrfristen, Lokalisierung & Dashboard
Rechnung/Lieferschein: - PDF-Gruppierung Abo- vs. Einmal-Artikel (is_abo_addon), rueckwaertskompatibel - Vorschau-Command sales:preview-invoice (umgeht Test-System-Gate, ohne Rechnungsnummer) Reminder-Mail (vorbereitet, Cron inaktiv): - MailAboExecutionReminder + Template, abo:send-execution-reminder, Spalte onetime_reminder_sent_for - Berater -> Sales Center, Kunde -> Portal; Vorschau abo:preview-reminder - Datum-Fix: formatDateDB() statt formatDate() (ICU-Format) Sperrfristen konfigurierbar (Admin-Settings): - abo-lock-days-change (Liefertag + Abo-Produkte), abo-lock-days-pause-cancel - Meldungen mit :lock-Platzhalter; Pausieren/Kuendigen vom Change-Lock entkoppelt - Abo-Produkt-Aenderungen im Lock-Fenster server- + clientseitig eingefroren - Selbstbedienung: Add-only/Lock nach $view (kein Admin-Bypass), Stale-Cache-Fix beim Mengen-Update Dashboard: - Einmalprodukte-Card + Team-Abo-KPI-Card, News-Card responsiv (col-xl-6) Lokalisierung: - Sprachdateien en/es/fr vollstaendig mit de synchronisiert (inkl. marketingplan/portal) - LocalizationSyncTest sichert Key-Gleichheit ab Tests: AboOneTimeInvoiceGrouping, AboExecutionReminder, AboLockDaysSetting, AboOnetimeDashboardAndMail, PreviewInvoiceCommand, TeamAboOverview + erweiterte View-Tests Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
9f996a7f1b
commit
65b867f8ee
96 changed files with 4154 additions and 1189 deletions
|
|
@ -39,10 +39,10 @@ return [
|
|||
'warning_next_date_soon_select' => 'Hinweis: Die nächste Abo-Ausführung ist bereits in :placeholder_days Tagen (:placeholder_date).',
|
||||
'warning_next_date_info' => 'Die nächste Abo-Ausführung ist in :days Tagen am :date.',
|
||||
'info_next_execution_select' => 'Nächste Ausführung: in :placeholder_days Tagen am :placeholder_date.',
|
||||
'error_change_locked' => 'Änderungen sind nicht mehr möglich. Die nächste Ausführung ist in :days Tagen. Änderungen müssen mindestens 10 Tage vorher erfolgen.',
|
||||
'error_abo_interval_too_soon' => 'Der gewählte Liefertag liegt nur :days Tage entfernt. Bitte wähle einen Liefertag, der mindestens 10 Tage in der Zukunft liegt.',
|
||||
'error_cancel_locked' => 'Eine Kündigung ist nicht mehr möglich. Die nächste Ausführung ist in :days Tagen. Kündigungen müssen mindestens 3 Tage vorher erfolgen.',
|
||||
'error_pause_locked' => 'Das Abo kann nicht mehr pausiert werden. Die nächste Ausführung ist in :days Tagen. Pausieren muss mindestens 3 Tage vorher erfolgen.',
|
||||
'error_change_locked' => 'Änderungen sind nicht mehr möglich. Die nächste Ausführung ist in :days Tagen. Änderungen müssen mindestens :lock Tage vorher erfolgen.',
|
||||
'error_abo_interval_too_soon' => 'Der gewählte Liefertag liegt nur :days Tage entfernt. Bitte wähle einen Liefertag, der mindestens :lock Tage in der Zukunft liegt.',
|
||||
'error_cancel_locked' => 'Eine Kündigung ist nicht mehr möglich. Die nächste Ausführung ist in :days Tagen. Kündigungen müssen mindestens :lock Tage vorher erfolgen.',
|
||||
'error_pause_locked' => 'Das Abo kann nicht mehr pausiert werden. Die nächste Ausführung ist in :days Tagen. Pausieren muss mindestens :lock Tage vorher erfolgen.',
|
||||
'error_next_date' => 'Das Datum für die nächste Ausführung nicht korrekt',
|
||||
'checkout_mail_abo_hl' => 'Dein Abo / regelmäßige Lieferung.',
|
||||
'checkout_mail_abo_start' => 'Dein Abo wurde erfolgreich mit folgenden Einstellungen angelegt:',
|
||||
|
|
@ -95,6 +95,22 @@ return [
|
|||
'product_prices_career_level_info' => 'Die Produktpreise werden entsprechend Deinem Karriere-Level <strong>:user_level_name</strong> abzüglich <strong>:user_level_margin %</strong> Marge angezeigt und brechnet.',
|
||||
'product_prices_career_level_cpay_info' => 'Die Produktpreise werden als Kunden VK-Preise angezeigt, nach Abschluss der Kundenzahlung erhälst du Deine Provision entsprechend Deinem Karriere-Level <strong>:user_level_name</strong> Provision <strong>:user_level_margin %</strong>.',
|
||||
'error_email_has_abo' => 'Für die E-Mail-Adresse :email ist bereits ein Abonnement vorhanden.',
|
||||
'error_user_has_initiated_abo' => 'Für dich ist bereits ein Abo angelegt oder die Zahlung dazu läuft noch. Bitte prüfe den Status unter "Meine Abos".',
|
||||
'pending_payment_waiting_title' => 'Abo angelegt - Zahlung noch nicht bestätigt',
|
||||
'pending_payment_waiting_copy' => 'Der Checkout wurde abgeschlossen. Wir warten noch auf den Zahlungsstatus des Zahlungsanbieters. Solange kein Status eingegangen ist, kann dieser Eintrag nicht gelöscht werden.',
|
||||
'pending_payment_processing_title' => 'Abo angelegt - Zahlung wird verarbeitet',
|
||||
'pending_payment_processing_copy' => 'Der Zahlungsanbieter hat bereits einen Status geliefert. Bitte warte auf die finale Zahlungsbestätigung.',
|
||||
'pending_payment_failed_title' => 'Zahlung fehlgeschlagen',
|
||||
'pending_payment_failed_copy' => 'Die Zahlung für dieses Abo konnte nicht abgeschlossen werden. Du kannst diesen Eintrag löschen und das Abo anschließend neu anlegen.',
|
||||
'pending_delete_button' => 'Eintrag löschen',
|
||||
'pending_delete_success' => 'Der nicht bestätigte Abo-Eintrag wurde gelöscht.',
|
||||
'pending_delete_not_allowed' => 'Dieser Abo-Eintrag kann noch nicht gelöscht werden, weil die Zahlung noch nicht final fehlgeschlagen ist.',
|
||||
'payment_link_sent_title' => 'Abo-Zahlungslink gesendet',
|
||||
'payment_link_sent_copy' => 'Der Zahlungslink wurde an den Kunden gesendet. Solange noch keine Zahlung gestartet wurde, kann dieser Eintrag gelöscht werden.',
|
||||
'payment_link_processing_copy' => 'Der Kunde hat die Zahlung gestartet. Wir warten auf den finalen Zahlungsstatus des Zahlungsanbieters. In diesem Zustand kann der Eintrag nicht gelöscht werden.',
|
||||
'payment_link_failed_copy' => 'Die Zahlung zu diesem Abo-Zahlungslink ist fehlgeschlagen oder wurde abgebrochen. Du kannst den Eintrag löschen und anschließend einen neuen Zahlungslink erstellen.',
|
||||
'payment_link_delete_success' => 'Der Abo-Zahlungslink wurde gelöscht.',
|
||||
'payment_link_delete_not_allowed' => 'Dieser Zahlungslink kann aktuell nicht gelöscht werden, weil die Zahlung bereits läuft oder abgeschlossen ist.',
|
||||
'abo_assigned' => 'Abo aktiv',
|
||||
'base' => 'Basis',
|
||||
'upgrade' => 'Upgrade',
|
||||
|
|
@ -175,6 +191,37 @@ return [
|
|||
'extern_done_error' => 'Die Bestellung konnte nicht als erledigt markiert werden: :error',
|
||||
'team_subscriptions' => 'Team Abos',
|
||||
'team_customer_abos' => 'Team Kunden-Abos',
|
||||
'team_total' => 'Gesamt',
|
||||
'team_line' => ':line. Ebene',
|
||||
'filter_period' => 'Zeitraum:',
|
||||
'team_total_abos' => 'Gesamtabos im Team',
|
||||
'team_own_abos' => 'Eigen-Abos',
|
||||
'team_members_with_abo' => 'Mit eigenem Abo',
|
||||
'team_by_level' => 'Abos nach Ebenen',
|
||||
'new_this_month' => 'neu im Monat',
|
||||
'with_own_abo' => 'Mit Eigen-Abo',
|
||||
'consultants' => 'Berater',
|
||||
'level' => 'Ebene',
|
||||
'own_abo' => 'Eigen-Abo',
|
||||
'customer_abos_count' => 'Kundenabos',
|
||||
'career_level' => 'Karriere-Level',
|
||||
'of' => 'von',
|
||||
'yes' => 'Ja',
|
||||
'no' => 'Nein',
|
||||
'shop_1000' => '1000-Punkte-Shops',
|
||||
'next_execution' => 'Nächste Ausführung',
|
||||
'executions_count' => 'Ausführungen',
|
||||
'abo_count_points' => 'Punkte',
|
||||
'no_own_abo' => 'Kein eigenes Abo vorhanden.',
|
||||
'no_customer_abos' => 'Keine Kunden-Abos vorhanden.',
|
||||
'team_growth' => 'Abo-Wachstum (Neuzugänge je Monat)',
|
||||
'month' => 'Monat',
|
||||
'new_own_abos' => 'Neue Eigen-Abos',
|
||||
'new_customer_abos' => 'Neue Kunden-Abos',
|
||||
'new_total' => 'Neu gesamt',
|
||||
'filter' => 'Filtern',
|
||||
'reset' => 'Zurücksetzen',
|
||||
'filter_added_period' => 'Hinzugekommen im Zeitraum:',
|
||||
'chart_monthly_abos' => 'Abos pro Monat',
|
||||
'chart_active_abos' => 'Aktive Abos',
|
||||
'chart_abos_label' => 'Abos',
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue