diff --git a/README.md b/README.md index e9426af..21b610b 100755 --- a/README.md +++ b/README.md @@ -41,7 +41,6 @@ Für Bestellungen per Mail zusätzlich: Optional: - `APP_API_KEY` – Schutz fuer `/wawi/api/bestand` und `/wawi/order` - `COOKIE_SECURE` – `0` fuer http lokal, `1` fuer https -- `PAYPAL_ACCOUNT` – PayPal-E-Mail für Bestellformular (z.B. `paypal@beispiel.de`) ## Benutzerverwaltung Beim ersten Start wird **ein Admin** aus ENV erzeugt: @@ -60,12 +59,10 @@ python import_from_html.py /pfad/zu/hellas_bestand.html --truncate ## Live‑Shop‑Ansicht (index.html) `index.html` lädt den Bestand aus der WaWi‑App: - API‑Proxy: `/wawi/proxy/bestand` -- Konfiguration: `/wawi/config` (lädt PayPal-Konto aus ENV) Wenn du diese Datei auf einem Webserver auslieferst, stelle sicher, dass die WaWi‑App unter `/wawi` erreichbar ist. Wenn du Bestellungen direkt aus `index.html` abschickst, muss der `X-Order-Key` bzw. `?key=` dem `APP_API_KEY` entsprechen. -Der Key wird in `index.html` im Script‑Block gesetzt: `const ORDER_KEY = ""`. Trage dort deinen Key ein (oder leer lassen, wenn kein API-Key erforderlich). -Das PayPal-Konto wird automatisch aus der ENV-Variable `PAYPAL_ACCOUNT` geladen. +Der Key wird in `index.html` im Script‑Block gesetzt: `const ORDER_KEY = ""` (neben der Formularlogik). Trage dort deinen Key ein. ## Umgebungsvariablen (ENV) **Pflicht/Empfohlen für Produktion** @@ -83,7 +80,6 @@ Das PayPal-Konto wird automatisch aus der ENV-Variable `PAYPAL_ACCOUNT` geladen. **Optional** - `APP_API_KEY` – gemeinsamer API‑Key für `/wawi/api/bestand` **und** `/wawi/order` - `COOKIE_SECURE` – `1` (default) setzt Secure‑Cookie, `0` deaktiviert für http -- `PAYPAL_ACCOUNT` – PayPal-E-Mail-Adresse für Bestellungen (wird im Bestellformular angezeigt) ## Deployment (systemd + Gunicorn) 1) App nach `/var/www/hellas/wawi` kopieren @@ -116,7 +112,6 @@ Environment="SMTP_PASS=dein_pass" Environment="SMTP_FROM=bestand@example.com" Environment="ORDER_TO=admin@example.com, zweite@example.com" Environment="APP_API_KEY=api_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" -Environment="PAYPAL_ACCOUNT=dein-paypal@beispiel.de" ExecStart=/var/www/hellas/wawi/.venv/bin/gunicorn -w 3 -b 127.0.0.1:8000 app:app Restart=always diff --git a/index.html b/index.html index 9e69334..3432755 100755 --- a/index.html +++ b/index.html @@ -133,6 +133,50 @@ } .card-price { color: var(--accent); font-weight: 800; font-size: 14px; } .card-sub { color: var(--muted); font-size: 12px; } + .stock-badge { + display: inline-block; + padding: 4px 8px; + border-radius: 6px; + font-size: 11px; + font-weight: 600; + margin-top: 6px; + } + .stock-badge.available { + background: rgba(123, 213, 141, 0.15); + color: var(--ok); + border: 1px solid rgba(123, 213, 141, 0.3); + } + .stock-badge.low { + background: rgba(243, 213, 42, 0.15); + color: var(--accent); + border: 1px solid rgba(243, 213, 42, 0.3); + } + .stock-badge.unavailable { + background: rgba(255, 107, 125, 0.15); + color: var(--bad); + border: 1px solid rgba(255, 107, 125, 0.3); + } + .sale-badge { + position: absolute; + top: 8px; + left: 8px; + background: linear-gradient(135deg, #ff0000, #cc0000); + color: #fff; + padding: 6px 12px; + border-radius: 6px; + font-size: 13px; + font-weight: 800; + letter-spacing: 1px; + text-transform: uppercase; + box-shadow: 0 4px 12px rgba(255, 0, 0, 0.4); + z-index: 10; + animation: pulse 2s ease-in-out infinite; + } + @keyframes pulse { + 0%, 100% { transform: scale(1); } + 50% { transform: scale(1.05); } + } + .card-tile { position: relative; } .card-actions { padding: 0 12px 12px; display: flex; justify-content: flex-end; } .detail-btn { width: 100%; } .size-list { display: grid; gap: 8px; padding: 10px 2px 2px; } @@ -422,6 +466,9 @@ + @@ -438,6 +485,10 @@
Bitte sende den Betrag über PayPal an:
+
+ ⚠️ WICHTIG: Bitte unbedingt die Option "Familie & Freunde" wählen!
+ Bei normalen PayPal-Zahlungen fallen zusätzliche Gebühren an. +
+