# Shopware Dev – riccardozigarette.com

Entwicklungsinstanz: https://dev.riccardozigarette.com (Shopware 6.7.14.1, APP_ENV=dev)

Offene Punkte mit Entscheidungsbedarf stehen in [OFFEN.md](OFFEN.md).

## Repository

```bash
git clone https://dev.riccardozigarette.com/git/shopware-dev.git
```

Anmeldung per Benutzername/Passwort (`entwickler1` / `entwickler2`).

**Ein Push auf `main` wird automatisch auf die Dev-Instanz ausgespielt**
(git pull, plugin:refresh, cache:clear, theme:compile, Worker-Neustart).
Die Ausgabe des Deploys erscheint direkt beim `git push`.

Force-Pushes und das Löschen von Branches sind gesperrt.
Für größere Arbeiten eigene Branches nutzen und erst fertig nach `main` mergen.

## Was gehört wohin

| Was | Wo |
|---|---|
| Design (SCSS, Twig, JS) | `custom/plugins/RiccardoTheme` |
| Eigene Funktionen | je Funktion ein Plugin in `custom/plugins/<Name>` |
| Rabattsystem (Deals) | `custom/plugins/RiccardoDeals` |
| Filialfinder | `custom/plugins/RiccardoStores` |
| Kundenkarte | `custom/plugins/RiccardoLoyalty` |
| Aromen- & Geräteberater | `custom/plugins/RiccardoAdvisor` |
| Altersprüfung | `custom/plugins/RiccardoAgeCheck` |
| Pflichtangaben (CLP/GPSR) | `custom/plugins/RiccardoCompliance` |
| Magazin | `custom/plugins/RiccardoMagazine` |
| Liquidrechner | `custom/plugins/RiccardoLiquidCalc` |
| Newsletter-Anmeldung | `custom/plugins/RiccardoNewsletter` |
| Mailvorlagen | `custom/plugins/RiccardoMail` |
| Persönliche Angebote | `custom/plugins/RiccardoOffers` |
| Versand-Countdown | `custom/plugins/RiccardoDispatch` |
| Live-Zahlen am Artikel | `custom/plugins/RiccardoLive` |
| Starterset-Konfigurator | `custom/plugins/RiccardoStarter` |
| Filialbestand (JTL vorbereitet) | `custom/plugins/RiccardoStoreStock` |
| Prüfskripte (Layout, Links, Anrede) | `dev/qa/` |
| Nie ändern | `vendor/` (wird von Composer überschrieben) |

### Theme

- Variablen/Farben/Fonts: `src/Resources/app/storefront/src/scss/overrides.scss`
- Eigene Styles: `src/Resources/app/storefront/src/scss/base.scss`
- Templates (erweitern per `{% sw_extends %}`): `src/Resources/views/storefront/`
- JavaScript: `src/Resources/app/storefront/src/main.js` – der kompilierte
  Stand unter `dist/` muss mit eingecheckt werden (`bin/build-storefront.sh`).

### Neues Plugin

```bash
bin/console plugin:create MeinPlugin
bin/console plugin:install --activate MeinPlugin
```

Plugins werden nach dem Deploy nur erkannt, nicht automatisch installiert.

## Hinweise

- Neue Composer-Abhängigkeiten (`composer.lock`) werden nicht automatisch installiert.
- Mails landen in Mailpit: https://dev.riccardozigarette.com/mailpit/
- Admin: https://dev.riccardozigarette.com/admin

## Hintergrunddienste

Message-Queue-Worker und Scheduled Tasks laufen als systemd-Dienste
(`shopware-dev-worker`, `shopware-dev-scheduler`) und werden bei jedem Deploy
automatisch neu gestartet, damit geänderter Plugin-Code (Message Handler,
Scheduled Tasks) aktiv wird.

### PayPal (SwagPayPal)

Das Plugin liegt außerhalb der Versionskontrolle (`.gitignore`: `/custom/plugins/Swag*`).
Vor dem ersten Storefront-Build muss dort einmal das Node-Paket geholt werden, sonst bricht
der Build mit `Can't resolve '@paypal/paypal-js'` ab:

```
cd custom/plugins/SwagPayPal/src/Resources/app/storefront && npm install
```

Danach wie üblich `bin/build-storefront.sh`, `bin/console theme:compile`, `bin/console assets:install`.
Die Zahlungsarten müssen zusätzlich dem Verkaufskanal zugeordnet sein
(Administration → Verkaufskanäle → Riccardo Dev → Zahlungsarten), sonst erscheinen sie nicht im Checkout.
