mivita/resources/lang/de/payment.php
Kevin 68d230d4e5 Stripe: Kundendaten, Rechnungsnummer, manueller Zahlungseingang
Rueckmeldung der Buchhaltung und des Stripe-Calls (dev/2026-08-26-stripe/):
Stripe kannte bisher nur die E-Mail des Kunden, Zahlungen waren im Dashboard
weder ueber die Bestell- noch ueber die Rechnungsnummer auffindbar, und ein
Zahlungseingang mit falschem Verwendungszweck zwang die Buchhaltung dazu, die
Rechnung von Hand zu schreiben.

- SE1: Der Checkout haengt einen Stripe-Customer mit Name, E-Mail und
  Rechnungsanschrift an die Session (customer statt customer_email); die ID
  liegt an shopping_users und wird wiederverwendet. Namensformat "Vorname
  Nachname (Firma)", reine Firmenkunden unter der Firma. Faellt die
  Customer-Anlage aus, laeuft der Checkout auf dem bisherigen Weg weiter.
  DSGVO-Loeschungen entfernen jetzt auch das Customer-Objekt; die Charges
  bleiben als Buchungsbeleg bestehen.
- SE2: StripeMetadataBuilder als einzige Quelle fuer Metadaten und die
  description (Bestellnummer, Referenz, Kundenname) - damit greift die
  Dashboard-Suche, die bisher nichts Lesbares zu fassen bekam.
- SE3: Die Rechnungsnummer entsteht erst nach der Zahlung und wird daher per
  Job am PaymentIntent nachgetragen (Vorab-Reservierung wuerde Luecken im
  Nummernkreis erzeugen). stripe:backfill-invoice-metadata traegt sie
  rueckwirkend ab dem Go-Live 2026-07-10 nach.
- SE4: Neuer Admin-Button "Zahlungseingang erfassen" an jeder unbezahlten
  Bestellung - bisher gab es ihn nur bei Rechnungskauf, und er setzte nur
  paid, ohne Rechnung, Punkte, Abo-Aktivierung oder Mail. Der neue Weg laeuft
  durch paymentStatusPaidAction, verlangt den Verwendungszweck als Beleg und
  laesst einen abweichenden Betrag nur mit ausdruecklicher Bestaetigung zu.
- S6.4 (aus dem Juli-Plan vorgezogen): stripe:sync-payment-status gleicht
  offene Zahlungen aktiv gegen die API ab. Aufgefallen beim Testlauf - ein nie
  zugestellter Webhook war bisher nicht reparierbar, das Geld lag bei Stripe
  waehrend die Bestellung auf offen stand. Laeuft stuendlich im Scheduler.
- 110 Tests (Pest) fuer alle Pfade, Stripe-Client durchgehend gemockt.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-28 09:04:28 +00:00

248 lines
17 KiB
PHP

<?php
return [
'' => '',
'BIC' => 'BIC',
'IBAN' => 'IBAN',
'Mastercard' => 'Mastercard',
'American Express' => 'American Express',
'VAT' => 'MwSt',
'VISA' => 'VISA',
'accepted_data_checkbox_customer' => 'Mit Klick auf "Jetzt kaufen" akzeptiere ich die :gtc, die :c_policy und die :p_policy damit für die Bestellung meine Daten verarbeitet werden können.',
'accepted_data_checkbox_user' => 'Mit Klick auf "Jetzt kaufen" akzeptiere ich die Allgemeinen Geschäftsbedingungen und die Datenschutzbelehrung, damit für die Bestellung meine Daten verarbeitet werden können.',
'account_holder' => 'Kontoinhaber',
'agree_SEPA_complete_purchase' => 'SEPA-Lastschriftmandat zustimmen und kauf abschließen',
'auto_renewal_hl' => 'Automatische Verlängerung',
'auto_renewal_line_1' => 'Sicher ist sicher! Wir empfehlen, diese Option zu aktivieren, wenn Du Deine jährliche Mitgliedschaft dauerhaft bestehen lassen möchtest. Denn geht eine manuelle Zahlung nach Ablauf der Jahresmitgliedschaft nicht zeitig ein, deaktiviert das System Deinen Onlineshop bzw. Deinen Zugang zum Salescenter. Dann kannst Du keine Bestellungen mehr tätigen oder Einblick in Deinen Statistiken erhalten, bis eine erneute Zahlung Deinen Account reaktiviert. Daher raten wir Dir, die Zahlung per SEPA-Lastschrift zu tätigen. Wir speichern dieses Mandat und buchen 14 Tage vor Ablauf Deine Jahresgebühr automatisch ab. So hast Du einen reibungslosen Prozess, ohne dass Du darauf achten musst.',
'auto_renewal_line_2' => 'Du kannst diese Option natürlich jederzeit in Deinem Account rückgängig machen bzw. Deinen Account / Deine Vertriebspartnerschaft bei MIVITA kündigen.',
'automatic_SEPA_mandate_type_was_selected' => 'Automatische Verlängerung wurde ausgewählt. Dein SEPA-Mandart wird gespeichert und die jährliche Zahlung automatisch ausgeführt.',
'back_to_shop' => 'zurück zum Shop',
'back_to_shop_shopping_cart' => 'zurück zum Warenkorb',
'bank' => 'Bank',
'billing_address' => 'Rechnungsadresse',
'billing_address_can_only_changed_in_salescentre' => 'Deine Rechnungsadresse kann nur im Salescenter geändert werden.',
'buy_now' => 'Jetzt kaufen',
'buy_now_copy' => 'Sind alle Deine Angaben vollständig ausgefüllt, klicke auf "Jetzt kaufen" und Du wirst zu unserem Zahlungsanbieter weitergeleitet, die Verbindung ist SSL verschlüsselt.',
'c_policy' => 'Widerrufsbelehrung',
'checkout_ssl_server' => 'Du wirst auf unseren checkout Server weitergeletet, die Verbindung ist SSL verschlüsselt.',
'country_of_delivery' => 'Lieferland',
'credit_card' => 'Kreditkarte',
'credit_card_number' => 'Kreditkartennummer',
'delivery_country_can_only_changed_in_salescentre' => 'Das Lieferland kann nur im Salescenter geändert werden.',
'delivery_country_cannot_change' => 'Das Lieferland kann nicht geändert werden.',
'excl' => 'zzgl.',
'firstname_lastname' => 'Vorname Nachname',
'gtc' => 'Allgemeinen Geschäftsbedingungen',
'month' => 'Monat',
'months' => 'Monate',
'ordering_country' => 'Bestellland',
'owner' => 'Inhaber',
'p_policy' => 'Datenschutzerklärung',
'payment_by_SEPA' => 'Bezahlung per SEPA',
'payment_by_SEPA_info' => 'Deine Zahlung wird bearbeitet, eine Bestätigung zur Zahlungsabwicklung wird automatisch erstellt.',
'payment_by_credit_card' => 'Bezahlung per Kreditkarte:',
'payment_by_credit_card_info' => 'Deine Zahlung wurde genehmigt, eine Bestätigung der Zahlung wird automatisch erstellt.',
'payment_by_invoice' => 'Bezahlung per Rechnung',
'payment_by_invoice_info' => 'Deine Bestellung wird bearbeitet, eine Bestätigung zur Bestellungsabwicklung wird automatisch erstellt',
'payment_in_advance' => 'Bezahlung per Vorkasse',
'payment_method' => 'Zahlungsart',
'payment_method_not_enabled_please_contact' => 'Zahlungsmethode nicht freigeschaltet, bitte wende dich an',
'paypal' => 'PayPal',
'please_check_form_and_complete' => ' Bitte überprüfe das Formular und vervollständigen alle Angaben.',
'please_transfer_amount_following_account' => 'Bitte überweise :amount EUR auf die folgende Kontoverbindung, um den Kauf abzuschließen.',
'prepayment' => 'Vorkasse',
'purchase_on_account' => 'Rechnungskauf',
'reason_for_payment' => 'Verwendungszweck',
'remaining_time' => 'Restlaufzeit',
'reverse_charge_procedure' => 'Reverse Charge Verfahren',
'select_and_proceed_to_checkout' => 'wählen und weiter zur Kasse',
'select_and_save' => 'auswählen und speichern',
'sepa_direct_debit' => 'SEPA Lastschrift',
'sofort_bank_transfer' => 'Sofort -Überweisung',
'status' => [
'checkout_cancel' => ' Zahlungsvorgang Abbruch',
'checkout_error' => 'Zahlungsvorgang Fehler',
'checkout_payment' => 'Checkout',
'payment_approved' => 'Zahlung genehmigt - bitte auf E-Mail warten',
'payment_error' => 'Zahlung Fehler',
'payment_not_found' => 'Zahlung nicht gefunden',
'payment_redirect' => 'Zahlung in Bearbeitung - bitte auf E-Mail warten',
'store_payment' => 'Zahlung gespeichert',
'success' => 'Erflogreich ausgeführt',
'success_payment' => 'Zahlung erflogreich',
'txaction_appointed' => 'Zahlung genehmigt - E-Mail wurde gesendet, bitte warten auf Bestätigung',
'txaction_failed' => 'Zahlung fehlgeschlagen - E-Mail wurde gesendet',
'txaction_paid' => 'Zahlung bestätigt - E-Mail wurde gesendet',
],
'thank_you_very_much' => 'Vielen Dank,',
'total_amount' => 'Gesamtbetrag',
'valid until' => 'Gültis bis',
'valid' => 'Gültis',
'verification_no' => 'Prüfnr.',
'we_have_received_your_order_get_email' => 'Deine Bestellung ist bei uns eingegangen. In Kürze erhälst Du von uns eine Bestellbestätigungsmail.',
'your_mivita_team' => 'Dein Team von mivita.care',
'your_order_number_is' => 'Deine Bestellnummer ist',
'open' => 'offen',
'openly' => 'geöffnet',
'paid' => 'bezahlt',
'check' => 'prüfen',
'cancelled' => 'storniert',
'link_sent' => 'Zahlungslink gesendet',
'link_openly' => 'Zahlungslink geöffnet',
'link_check' => 'Zahlung in Prüfung',
'link_pending' => 'Zahlung in Bearbeitung',
'link_failed' => 'Zahlung fehlgeschlagen',
'link_canceled' => 'Zahlung abgebrochen',
'link_appointed' => 'Zahlung Angewiesen',
'link_paid' => 'Zahlung erfolgreich',
'alert_link_sent' => 'Zahlungslink gesendet',
'alert_link_openly' => 'Zahlungslink geöffnet',
'alert_link_check' => 'Zahlung in Prüfung',
'alert_link_pending' => 'Zahlung in Bearbeitung',
'alert_link_failed' => 'Zahlung fehlgeschlagen',
'alert_link_canceled' => 'Zahlung abgebrochen',
'alert_link_appointed' => 'Zahlung Angewiesen',
'alert_link_paid' => 'Zahlung war erfolgreich',
'failed' => 'abbruch',
'no_payment' => 'keine Zahlung',
'link_was_paid' => 'Die Zahlung wurde erfolgreich abgeschlossen.',
'paymend_paid' => 'Zahlung bezahlt',
'paymend_open' => 'Zahlung offen',
'paymend_failed' => 'Zahlung abbruch',
'extern_open' => 'Extern offen', // offen
'extern_paid' => 'Extern bezahlt',
'invoice_open' => 'Rechnung offen',
'invoice_paid' => 'Rechnung bezahlt',
'invoice_no_payment' => 'Rechnung keine Zahlung',
'to_sales_tax_de' => 'umsatzsteuerpflichtig / DE',
'not_to_sales_tax_de' => 'nicht umsatzsteuerpflichtig / DE',
'not_to_sales_tax_foreign' => 'nicht umsatzsteuerpflichtig / Ausland',
'ordered' => 'bestellt',
'paid' => 'bezahlt',
'removed' => 'entfernt',
'registration' => 'Registrierung',
'not_assigned' => 'nicht zugewiesen',
'advisor_order' => 'Beraterbestellung',
'credit' => 'Gutschrift',
'cancelled' => 'Storniert',
'shoporder' => 'Shopbestellung',
'shoporder_pending' => 'Shopbestellung / pending',
'membership' => 'Mitgliedschaft',
'order' => 'Bestellung',
'customer_order' => 'Kundenbestellung',
'homeparty' => 'Homeparty',
'shop' => 'Shop',
'external' => 'extern',
'collective_invoice' => 'Sammelrechnung',
'in_process' => 'in Bearbeitung',
'shipped' => 'versendet',
'completed' => 'abgeschlossen',
'trade_fair' => 'Messe',
'commission_shop' => 'Provision Shop',
'commission_payline' => 'Provision Payline',
'commission_growth_bonus' => 'Provision Tiefenbonus',
'commission_team' => 'Provision Team',
'credit_added' => 'Guthaben hinzugefügt',
'commission' => 'Provision',
'unknown' => 'unbekannt',
// Stripe (Hosted Checkout)
'stripe_online' => 'Online-Zahlung',
'stripe_online_methods' => 'Kreditkarte, PayPal, Apple Pay, Google Pay, Klarna, Amazon Pay u. v. m.',
'stripe_online_copy' => 'Du wirst zur sicheren Zahlungsseite weitergeleitet und wählst dort deine Zahlungsart.',
'stripe_online_short' => 'Online-Zahlung (Stripe)',
'stripe_unavailable' => 'Die Online-Zahlung ist derzeit nicht erreichbar. Bitte versuche es gleich erneut.',
'stripe_order_label' => 'Bestellung :reference',
'stripe_abo_hint' => 'Deine Zahlungsart wird sicher bei unserem Zahlungsdienstleister Stripe hinterlegt und für die folgenden Abo-Abbuchungen verwendet.',
'stripe_abo_payment_method_missing' => 'Für dieses Abo ist kein gültiges Zahlungsmittel hinterlegt. Bitte aktualisiere deine Zahlungsart.',
'stripe_abo_authentication_required' => 'Deine Bank verlangt eine Bestätigung der Zahlung. Bitte hole die Zahlung über deine Abo-Seite nach.',
'prepayment_payone' => 'Vorkasse (PAYONE)',
// Not-Schalter: Abo-Zahlungen eingefroren (PAYONE-Ausfall, bis Stripe-Abos live sind)
'prepayment_no_clearing_data' => 'Bankverbindung liegt noch nicht vor — die Zahlung wurde beim Zahlungsanbieter noch nicht erfolgreich registriert.',
'checkout_maintenance_title' => 'Technische Schwierigkeiten',
'checkout_maintenance' => 'Aktuell sind Bestellungen wegen technischer Schwierigkeiten leider nicht möglich. Wir sind in Kürze wieder für dich da — bitte versuche es später erneut.',
'abo_payments_frozen_title' => 'Abo-Zahlungen vorübergehend nicht möglich',
'abo_payments_frozen' => 'Abo-Zahlungen sind derzeit leider nicht möglich. Wir arbeiten mit Hochdruck an einer technischen Lösung — bitte versuche es später erneut. Deine Abos und Bestellungen gehen dabei nicht verloren.',
// Vorkasse Verwendungszweck Hinweise
'prepayment_important_notice' => 'Wichtiger Hinweis zur Vorkasse-Zahlung',
'prepayment_reference_notice' => 'WICHTIG: Bitte geben Sie als Verwendungszweck ausschließlich folgende Nummer an:',
'prepayment_reference_only' => 'Nur so kann Ihre Zahlung automatisch zugeordnet werden.',
'prepayment_bank_details' => 'Bankverbindung für Vorkasse',
'prepayment_waiting_payment' => 'Wir warten auf Ihren Zahlungseingang. Nach Eingang wird Ihre Bestellung bearbeitet.',
'prepayment_txid' => 'Verwendungszweck',
// Checkout Fehlermeldungen
'payment_not_found' => 'Zahlung nicht gefunden',
'payment_not_found_description' => 'Die Zahlung mit der Referenz :reference konnte nicht gefunden werden. Bitte kontaktieren Sie uns, falls Sie bereits bezahlt haben.',
'payment_canceled' => 'Zahlung abgebrochen',
'payment_canceled_description' => 'Sie haben den Zahlungsvorgang abgebrochen. Ihre Bestellung wurde nicht ausgeführt und es wurde nichts belastet.',
'payment_canceled_hint' => 'Sie können jederzeit einen neuen Zahlungsversuch starten.',
'payment_error' => 'Zahlung fehlgeschlagen',
'payment_error_description' => 'Die Zahlung konnte leider nicht abgeschlossen werden.',
'payment_error_hint' => 'Bitte prüfen Sie Ihre Zahlungsdaten und versuchen Sie es erneut — oder wählen Sie eine andere Zahlungsart.',
'payment_error_retry' => 'Erneut versuchen',
'payment_error_code' => 'Fehlercode',
'payment_error_what_to_do' => 'Was kann ich tun?',
'payment_unknown_status' => 'Unbekannter Zahlungsstatus',
'payment_unknown_status_description' => 'Der Zahlungsstatus konnte nicht ermittelt werden. Bitte kontaktieren Sie uns für weitere Informationen.',
'contact_support_if_needed' => 'Bei weiteren Fragen wenden Sie sich bitte an unseren Kundenservice.',
'try_again' => 'Erneut versuchen',
'choose_different_payment' => 'Andere Zahlungsart wählen',
'nothing_was_charged' => 'Es wurde nichts von Ihrem Konto abgebucht.',
'payment_error_reasons' => [
'card_expired' => 'Ihre Karte ist abgelaufen. Bitte verwenden Sie eine gültige Karte oder wählen Sie eine andere Zahlungsart.',
'card_blocked' => 'Ihre Karte ist gesperrt. Bitte wenden Sie sich an Ihre Bank oder wählen Sie eine andere Zahlungsart.',
'card_invalid' => 'Die Kartendaten sind ungültig. Bitte überprüfen Sie Ihre Eingabe.',
'card_declined' => 'Ihre Bank hat die Zahlung abgelehnt. Bitte wenden Sie sich an Ihre Bank oder wählen Sie eine andere Zahlungsart.',
'insufficient_funds' => 'Das Kartenlimit wurde überschritten. Bitte wenden Sie sich an Ihre Bank oder wählen Sie eine andere Zahlungsart.',
'cvv_invalid' => 'Die Prüfziffer (CVV) ist nicht korrekt. Bitte überprüfen Sie die 3-stellige Zahl auf der Rückseite Ihrer Karte.',
'3ds_failed' => 'Die 3D-Secure-Authentifizierung ist fehlgeschlagen. Bitte versuchen Sie es erneut oder wählen Sie eine andere Zahlungsart.',
'timeout' => 'Die Verbindung zur Bank ist unterbrochen (Timeout). Bitte versuchen Sie es in wenigen Minuten erneut.',
'fraud' => 'Die Zahlung wurde aus Sicherheitsgründen abgelehnt. Bitte wenden Sie sich an Ihre Bank.',
'general' => 'Bitte überprüfen Sie Ihre Zahlungsdaten und versuchen Sie es erneut. Falls das Problem weiterhin besteht, wählen Sie eine andere Zahlungsart.',
],
// DHL Packstation/Paketbox
'packstation_delivery' => 'Lieferung an Packstation/Paketbox',
'packstation_info' => 'Für die Lieferung an eine DHL Packstation oder Paketbox benötigen wir Ihre DHL Postnummer.',
'dhl_postnumber' => 'DHL Postnummer',
'packstation_address_hint' => 'Tragen Sie im Adressfeld (Straße Nr. *) die Packstation-Nummer ein (z.B. "Packstation 145"). PLZ und Ort beziehen sich auf den Standort der Packstation.',
'packstation_alert_title' => 'Wichtig: Packstation-Lieferung',
'packstation_alert_intro' => 'Wenn Sie eine DHL Postnummer angeben, muss die Lieferadresse wie folgt ausgefüllt werden:',
'packstation_alert_street' => 'Packstation [3-stellige Nummer]',
'packstation_alert_street_example' => 'z.B. "Packstation 145" - NICHT "12345"!',
'packstation_alert_location' => 'Standort der Packstation',
'packstation_alert_not_home' => 'nicht Ihre Wohnadresse!',
'packstation_alert_footer' => 'Die Packstation-NUMMER ist 3-stellig (100-999, steht auf dem gelben Schild). Die DHL Postnummer ist 6-10-stellig und kommt ins separate Feld oben.',
// Zahlungseingang manuell erfassen (SE4, dev/2026-08-26-stripe/)
'manual_record_title' => 'Zahlungseingang erfassen',
'manual_record_button' => 'Zahlungseingang erfassen',
'manual_record_intro' => 'Für Zahlungen, die der Zahlungsanbieter nicht automatisch zuordnen konnte — z. B. eine Vorkasse-Überweisung mit falschem Verwendungszweck. Das System erstellt anschließend Rechnung, Umsatz/Punkte und die Bestätigungsmail wie bei einer regulären Zahlung.',
'manual_record_bank_hint' => 'Hinweis: Das Geld ist auf dem Bankkonto eingegangen, nicht beim Zahlungsanbieter. Der Vorgang taucht deshalb nicht in den Stripe-Berichten auf, sondern nur in Rechnung und DATEV-Export.',
'manual_paid_at' => 'Zahlungsdatum (Valuta)',
'manual_amount' => 'Erhaltener Betrag',
'manual_method' => 'Zahlungsweg',
'manual_method_bank_transfer' => 'Banküberweisung',
'manual_method_cash' => 'Bar',
'manual_method_other' => 'Sonstiges',
'manual_bank_reference' => 'Verwendungszweck / Bankreferenz',
'manual_bank_reference_help' => 'Pflichtfeld — dient als Beleg für die Buchung.',
'manual_note' => 'Notiz (optional)',
'manual_send_mail' => 'Bestätigungsmail an den Kunden senden',
'manual_confirm_deviation' => 'Abweichenden Betrag bewusst erfassen',
'manual_expected_amount' => 'Erwarteter Betrag',
'manual_recorded_by' => 'Manuell erfasst',
'manual_success' => 'Zahlungseingang wurde erfasst. Rechnung, Umsatz und Mail wurden ausgelöst.',
'manual_error_already_paid' => 'Diese Bestellung ist bereits als bezahlt erfasst.',
'manual_error_cancelled' => 'Diese Bestellung ist storniert und kann nicht als bezahlt erfasst werden.',
'manual_error_payment_mismatch' => 'Die Zahlung gehört nicht zu dieser Bestellung.',
'manual_error_reference_required' => 'Bitte den Verwendungszweck bzw. die Bankreferenz angeben — sie ist der Beleg für die Buchung.',
'manual_error_future_date' => 'Das Zahlungsdatum darf nicht in der Zukunft liegen.',
'manual_error_amount_deviation' => 'Der Betrag weicht vom Rechnungsbetrag (:expected) ab. Bitte die Abweichung bestätigen.',
'manual_error_general' => 'Der Zahlungseingang konnte nicht erfasst werden. Details stehen im Payment-Log.',
];