mivita/app/Services
Kevin cdb121fde0 Abo: Einmalprodukte bereits bei der Abo-Anlage + es/fr-Sprachsync
Einmalprodukte (Normalsortiment, show_on 3) können jetzt schon beim
Abo-Abschluss hinzugefügt werden – im Portal-Wizard (Abschnitt im
Upgrade-Schritt) und in allen drei Sales-Center-Abo-Strecken (eigene
Produktliste). Variante A: Zeilen laufen als Cart-Option abo_addon mit
durch den Checkout, werden sofort bezahlt und mit der Erstlieferung
verschickt (Rechnung/Lieferschein gruppieren automatisch).

- Checkout persistiert is_abo_addon (CheckoutRepository, PaymentHelper)
- createAboItems/ensureUserAboItemsFromLatestOrder überspringen Addons
  (sonst würden Einmalprodukte dauerhaft wiederkehren); amount ohne
  Addon-Anteil; aboHasBaseProduct ignoriert Addon-Zeilen
- CreateAboReplacementOrder propagiert is_abo_addon in Ersatzbestellungen
- iq-shopping-cart.js: zweite Datatable + abo_addon-Flag-Weitergabe
- i18n: neue abo.onetime_create_*-Keys (de/en/es/fr); zusätzlich es/fr
  komplett synchronisiert (abo-Kartenblock, navigation, payment,
  weborder inkl. Entfernung PAYONE-Altlasten, withdrawal.php neu)
- Tests: AboCreateOneTimeItemsTest, AboCreateOneTimeCartTest,
  AboPortalCreateOneTimeTest (17 neue, 122 Tests gesamt grün)

Plan: dev/2026-07-21-abo-einmalprodukte-anlage/

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-21 14:36:40 +00:00
..
Abo Team-Abo-Uebersicht: nur aktive Berater zaehlen 2026-06-25 13:25:44 +00:00
Backoffice Backoffice-Statistik: Neue-Kundenabos-Ranking & Führungskräfte-Abos 2026-07-03 16:24:01 +00:00
BusinessPlan 10.April 2026 2026-04-10 17:15:27 +02:00
dbip update 20.10.2025 2025-10-20 17:42:08 +02:00
Facade Card + Products 2018-12-12 14:33:52 +01:00
Incentive 10.April 2026 2026-04-10 17:15:27 +02:00
IPinfo 08 2024 2024-08-05 12:05:24 +02:00
Payment Stripe-Integration (S4, S5, S7.6): Abos, Zahlungsart ändern, Zahlarten-Kommunikation 2026-07-09 14:45:17 +00:00
SyS 10.April 2026 2026-04-10 17:15:27 +02:00
AboExternalCompletionService.php Abo: Bestellung extern als erledigt markieren (ohne Rechnung/Inkasso) 2026-06-12 08:11:45 +00:00
AboHelper.php Abo: Einmalprodukte bereits bei der Abo-Anlage + es/fr-Sprachsync 2026-07-21 14:36:40 +00:00
AboItemHistoryService.php 20-02-2026 2026-02-20 17:55:06 +01:00
AboOneTimeService.php Abo Einmalprodukte: Phase 4 - Ausfuehrung, Purge & User-Retry 2026-06-08 15:32:27 +00:00
AboOrderCart.php Abo Einmalprodukte: Review-Gate (VIP), Verbindlichkeit & Summen-Layout 2026-06-08 14:59:22 +00:00
AboPaymentMethodService.php Stripe-Integration (S4, S5, S7.6): Abos, Zahlungsart ändern, Zahlarten-Kommunikation 2026-07-09 14:45:17 +00:00
AboRecoveryCheckoutService.php Abo-Recovery: fehlgeschlagene Folgezahlung im Checkout nachholen 2026-07-02 10:38:05 +00:00
AboRetryPaymentService.php Stripe-Integration (S0–S3): Einmalzahlungen über Stripe Checkout + Notfall-Go-Live 2026-07-08 15:56:41 +00:00
CheckoutFunnelTracker.php 14-04-2026 2026-04-14 18:07:45 +02:00
Credit.php 20-02-2026 2026-02-20 17:55:06 +01:00
CustomerPriority.php Updates to 03-2025 2025-04-01 10:36:47 +02:00
DatevExportService.php Steuerberater Modul tax 2026-05-08 15:34:57 +02:00
DcHelper.php 10.April 2026 2026-04-10 17:15:27 +02:00
DhlAddressValidator.php 27-05-2026 Update DHL Modul v2.0 2026-05-27 13:40:38 +00:00
DhlDataHelper.php DHL-Versand: Sendungs-Info-Button in Bestelllisten & Absenderadresse 2026-06-25 13:37:13 +00:00
DhlModalService.php 27-05-2026 Update DHL Modul v2.0 2026-05-27 13:40:38 +00:00
DhlProductResolver.php 27-05-2026 DHL Modul v2.1 / Optimierung tracking 2026-05-27 18:51:23 +02:00
DhlShipmentService.php DHL-Versand: Sendungs-Info-Button in Bestelllisten & Absenderadresse 2026-06-25 13:37:13 +00:00
DhlShipmentWeightCalculator.php 27-05-2026 Update DHL Modul v2.0 2026-05-27 13:40:38 +00:00
DhlTrackingService.php 27-05-2026 DHL Modul v2.1 / Optimierung tracking 2026-05-27 18:51:23 +02:00
HomepartyCart.php Free Shipping, Business Levels correction, Products Buying, Fonts 2023-01-25 12:37:29 +01:00
HomepartyUserCart.php last changes since 6-2023 2023-07-03 10:07:08 +02:00
HTMLHelper.php 10.April 2026 2026-04-10 17:15:27 +02:00
Invoice.php 20-02-2026 2026-02-20 17:55:06 +01:00
LevelReportService.php 23-01-2026 2026-01-23 17:35:23 +01:00
LocaleGuard.php 10.April 2026 2026-04-10 17:15:27 +02:00
MyLog.php 23-01-2026 2026-01-23 17:35:23 +01:00
NextLevelBadgeHelper.php commit 08-2025 2025-08-12 18:01:59 +02:00
OrderPaymentService.php Abo: Doppelbestellung verhindern, Payment-Link loeschen & Pending-Status 2026-06-25 13:37:30 +00:00
Payment.php Stripe-Integration (S4, S5, S7.6): Abos, Zahlungsart ändern, Zahlarten-Kommunikation 2026-07-09 14:45:17 +00:00
PaymentHelper.php Abo: Einmalprodukte bereits bei der Abo-Anlage + es/fr-Sprachsync 2026-07-21 14:36:40 +00:00
Payone.php Payment Phase R: PAYONE-Integration entflechten (R1–R7 + Review) 2026-06-10 13:42:45 +00:00
ProductOrderContext.php Abo: Einmalprodukte bereits bei der Abo-Anlage + es/fr-Sprachsync 2026-07-21 14:36:40 +00:00
Shop.php commit 08-2025 2025-08-12 18:01:59 +02:00
ShopApiOrderCart.php 23-01-2026 2026-01-23 17:35:23 +01:00
ShoppingUserService.php Updates to 03-2025 2025-04-01 10:36:47 +02:00
Slim.php Updates to 03-2025 2025-04-01 10:36:47 +02:00
SysLog.php 08 2024 2024-08-05 12:05:24 +02:00
TranslationHelper.php 08 2024 2024-08-05 12:05:24 +02:00
UserService.php 10.April 2026 2026-04-10 17:15:27 +02:00
UserUtil.php 20-02-2026 2026-02-20 17:55:06 +01:00
Util.php 10.April 2026 2026-04-10 17:15:27 +02:00
Yard.php Abo Einmalprodukte und Bestätigung abschließen 2026-06-05 15:28:08 +00:00