# UsCheckoutConfirm – Shopware 6 Plugin

## Was macht das Plugin?

Auf der Bestellbestätigungsseite (Checkout Confirm) wird **nur für Kunden mit einer US-Lieferadresse** eine zusätzliche Pflicht-Checkbox angezeigt. Der Kunde muss diese Checkbox anhaken, bevor er die Bestellung abschließen kann. Tut er das nicht, wird die Bestellung serverseitig abgelehnt und eine Fehlermeldung angezeigt.

## Funktionsweise

| Komponente | Aufgabe |
|---|---|
| `CheckoutConfirmSubscriber` | Lauscht auf `CheckoutConfirmPageLoadedEvent`, prüft ob die Lieferadresse in den USA liegt und setzt ein Flag (`isUsShipping`) als Page-Extension |
| `UsCheckoutConfirmStruct` | Einfaches Struct-Objekt, das das Boolean-Flag transportiert |
| `UsOrderValidationFactory` | **Decorator** um `OrderValidationFactory` – fügt bei US-Lieferadresse eine `NotBlank` + `EqualTo('1')`-Validierung für das Feld `usCheckoutConfirm` hinzu |
| `index.html.twig` | Erweitert den Block `page_checkout_confirm_tos_control` und rendert die Checkbox nur wenn `isUsShipping = true` |
| Snippet-Dateien | Checkbox-Text in DE und EN |

## Installation

1. Plugin-Ordner nach `custom/plugins/UsCheckoutConfirm` kopieren
2. Im Admin oder per CLI:

```bash
bin/console plugin:refresh
bin/console plugin:install --activate UsCheckoutConfirm
bin/console cache:clear
```

## Checkbox-Text anpassen

Den angezeigten Text kannst du an zwei Stellen ändern:

**Option A – Snippet-Dateien direkt editieren:**
- `src/Resources/snippet/de_DE/usCheckoutConfirm.de-DE.json`
- `src/Resources/snippet/en_GB/usCheckoutConfirm.en-GB.json`

**Option B – Im Shopware Admin:**
Unter *Einstellungen → Textbausteine* nach `usCheckoutConfirm.label` suchen und dort den Text anpassen.

## Anpassungen

### Andere Länder hinzufügen
In `CheckoutConfirmSubscriber.php` und `UsOrderValidationFactory.php` die Konstante `US_COUNTRY_ISO` anpassen oder eine Liste von ISO-Codes verwenden.

### Validierungslogik erweitern
Die Klasse `UsOrderValidationFactory` kann beliebig um weitere Felder/Regeln erweitert werden.

## Kompatibilität

- Shopware 6.4+ / 6.5+ / 6.6+
- PHP 8.1+
