# RiccardoMail – Mailvorlagen im Riccardo-Design

Shopwares Standardmails sind unformatiert (`<div style="font-family:arial">`) und siezen;
die Betreffzeilen lauteten bei den meisten Statusmails „Neues Dokument für Ihre Bestellung".
Dieses Plugin ersetzt Rahmen, Texte und Betreffzeilen.

## Wie es aufgebaut ist

* **Rahmen** (`src/Resources/mail/frame/`): ein `mail_header_footer`-Datensatz namens
  „Riccardo", der an **allen Verkaufskanälen** hinterlegt wird. Shopware klebt
  `header + Inhalt + footer` zusammen (`MailTemplateContentBuilder`) – dadurch bekommen
  auch Mails von Fremd-Plugins (z. B. PayPal) den richtigen Rahmen.
* **Vorlagen** (`src/Resources/mail/<technischer-name>.html.twig` / `.txt.twig`):
  29 Stück, jeweils HTML und Nur-Text. Der Dateiname entspricht dem technischen Namen
  des Vorlagentyps (`mail_template_type.technical_name`).
* **Betreffzeilen**: `src/Core/Mail/MailTemplates.php`
* **Inline-Styles**: `src/Core/Mail/MailStyles.php`. In den Vorlagen stehen Platzhalter
  wie `%%H1%%`, `%%BOX_OPEN%%`, `%%BTN_OPEN%%…%%BTN_MID%%…%%BTN_CLOSE%%`; beim Einspielen
  werden sie durch die fertigen `style="…"`-Angaben ersetzt. `%%DOMAIN%%` wird durch die
  Shop-Domain aus `sales_channel_domain` ersetzt.

**Wichtig:** Schriftnamen in den Styles mit **einfachen** Anführungszeichen schreiben
(`'Arial Black'`). Doppelte beenden das `style="…"`-Attribut – dann fällt die Formatierung
lautlos weg (Knopf wird zum blauen Link).

## Einspielen

Läuft automatisch beim Aktivieren des Plugins und jederzeit erneut mit:

```bash
bin/console riccardo:mail:install
```

Das ist nötig nach Änderungen an den Vorlagendateien **und** wenn der Shop unter einer
anderen Domain läuft (die Links in Rahmen und Texten werden fest eingesetzt).
Die Texte werden für alle Sprachen geschrieben – der Shop ist deutschsprachig.

Achtung: Der Befehl überschreibt Änderungen, die im Adminbereich unter
*Einstellungen › E-Mail-Vorlagen* gemacht wurden.

## Prüfen

```bash
# Alle Vorlagen mit Shopwares Simulationsdaten rendern (findet Twig-Fehler)
# -> POST /api/_action/mail-template/simulate mit eventName je Vorlage
# Echte Mails im lokalen Mailpit ansehen:
curl -s 'localhost:8025/mailpit/api/v1/messages?limit=5'
```

Statusmails lassen sich am schnellsten über die Admin-API auslösen:
`POST /api/_action/order_transaction/{id}/state/paid`,
`POST /api/_action/order_delivery/{id}/state/ship`.

## Offen

* `core.basicInformation.address` und `bankAccount` sind im Dev-Shop leer – die Fußzeile
  zeigt deshalb nur den Shopnamen. Sobald die Daten im Adminbereich stehen, erscheinen sie
  automatisch.
* Noch nicht überarbeitet: `review_form`, `downloads_delivery`, `revocation_request.*`,
  `customer.group.registration.*`, `customer_group_change_*`, `user.recovery.request`
  (Adminbereich), `admin_sso_user_invite`, `product_stock_warning`, `sepa_confirmation`
  sowie die Lieferstatus-Mails `cancelled` / `returned_partially`.
