Checkout-Fenster deutlich breiter; PayPal auf einen sauberen Button reduziert; Klarna verbindet automatisch bei Auswahl

- Das Zahlungsart/Kontakt-Fenster war unabsichtlich auf 560px begrenzt
  (geerbtes Formular-Limit von Kontakt-/Konto-Seite) — jetzt nutzt es die
  volle verfügbare Spaltenbreite (~820px statt 560px).
- PayPal-Button zeigt jetzt nur noch den einen echten PayPal-Button statt
  zusätzlich einem redundanten "Debit- oder Kreditkarte"-Button (dafür
  gibt's ja schon die eigene Kreditkarte-Zahlungsart) — ein Klick auf die
  PayPal-Karte, ein Klick auf den einen PayPal-Button, direkt der echte
  Login-Popup. Mehr geht aus Sicherheitsgründen bei keinem Shop weltweit:
  PayPal öffnet den Login-Popup nur bei einem echten Klick auf ihr
  eigenes Button-Element, nie automatisiert per Skript (Schutz vor
  Missbrauch/Clickjacking).
- Klarna verbindet jetzt automatisch, sobald die Karte ausgewählt wird —
  kein zusätzlicher Klick auf einen Verbinden-Button mehr nötig
  (Kreditkarte und Banküberweisung waren bereits ohne Extra-Klick).

Verifiziert per Puppeteer: Formularbreite jetzt 820px (vorher 560px),
Klarna verbindet automatisch beim Auswählen, keine Konsolenfehler.
This commit is contained in:
qcigano
2026-08-02 20:00:51 +02:00
parent 1c9bee94ca
commit b8f4454bea
5 changed files with 68 additions and 41 deletions
+16 -10
View File
@@ -208,7 +208,7 @@ import { bankverbindung, bankverbindungVollstaendig } from "../../../data/bankve
if (paypalLoaded || !document.getElementById("paypal-button-container")) return;
paypalLoaded = true;
const script = document.createElement("script");
script.src = "https://www.paypal.com/sdk/js?client-id=sb&currency=EUR&intent=capture";
script.src = "https://www.paypal.com/sdk/js?client-id=sb&currency=EUR&intent=capture&disable-funding=card,credit";
script.onload = () => {
if (!window.paypal) return;
window.paypal.Buttons({
@@ -228,16 +228,22 @@ import { bankverbindung, bankverbindungVollstaendig } from "../../../data/bankve
// die Oberfläche schon fertig aussieht und 1:1 austauschbar ist, sobald die Anbindung steht.
const klarnaBtn = document.getElementById("klarna-connect");
const klarnaStatus = document.getElementById("klarna-status");
function connectKlarna() {
if (!klarnaBtn || klarnaBtn.disabled) return;
klarnaBtn.disabled = true;
klarnaBtn.textContent = klarnaConnectingLabel;
setTimeout(() => {
klarnaBtn.textContent = klarnaConnectLabel;
klarnaBtn.disabled = false;
klarnaStatus.textContent = "✅ " + klarnaConnectedLabel;
}, 1100);
}
if (klarnaBtn) {
klarnaBtn.addEventListener("click", () => {
klarnaBtn.disabled = true;
klarnaBtn.textContent = klarnaConnectingLabel;
setTimeout(() => {
klarnaBtn.textContent = klarnaConnectLabel;
klarnaBtn.disabled = false;
klarnaStatus.textContent = "✅ " + klarnaConnectedLabel;
}, 1100);
});
klarnaBtn.addEventListener("click", connectKlarna);
const klarnaRadio = document.querySelector('input[name="pay"][value="klarna"]');
// Verbindet automatisch, sobald die Klarna-Karte ausgewählt wird — kein separater Klick
// auf den Button nötig (der bleibt als "erneut verbinden" erhalten).
klarnaRadio?.addEventListener("change", () => { if (!klarnaStatus.textContent) connectKlarna(); });
}
// Banküberweisung (Vorkasse): braucht KEINE externe Anbindung — zeigt einfach VanVans echte,
+16 -10
View File
@@ -211,7 +211,7 @@ import { bankverbindung, bankverbindungVollstaendig } from "../../data/bankverbi
if (paypalLoaded || !document.getElementById("paypal-button-container")) return;
paypalLoaded = true;
const script = document.createElement("script");
script.src = "https://www.paypal.com/sdk/js?client-id=sb&currency=EUR&intent=capture";
script.src = "https://www.paypal.com/sdk/js?client-id=sb&currency=EUR&intent=capture&disable-funding=card,credit";
script.onload = () => {
if (!window.paypal) return;
window.paypal.Buttons({
@@ -231,16 +231,22 @@ import { bankverbindung, bankverbindungVollstaendig } from "../../data/bankverbi
// die Oberfläche schon fertig aussieht und 1:1 austauschbar ist, sobald die Anbindung steht.
const klarnaBtn = document.getElementById("klarna-connect");
const klarnaStatus = document.getElementById("klarna-status");
function connectKlarna() {
if (!klarnaBtn || klarnaBtn.disabled) return;
klarnaBtn.disabled = true;
klarnaBtn.textContent = klarnaConnectingLabel;
setTimeout(() => {
klarnaBtn.textContent = klarnaConnectLabel;
klarnaBtn.disabled = false;
klarnaStatus.textContent = "✅ " + klarnaConnectedLabel;
}, 1100);
}
if (klarnaBtn) {
klarnaBtn.addEventListener("click", () => {
klarnaBtn.disabled = true;
klarnaBtn.textContent = klarnaConnectingLabel;
setTimeout(() => {
klarnaBtn.textContent = klarnaConnectLabel;
klarnaBtn.disabled = false;
klarnaStatus.textContent = "✅ " + klarnaConnectedLabel;
}, 1100);
});
klarnaBtn.addEventListener("click", connectKlarna);
const klarnaRadio = document.querySelector('input[name="pay"][value="klarna"]');
// Verbindet automatisch, sobald die Klarna-Karte ausgewählt wird — kein separater Klick
// auf den Button nötig (der bleibt als "erneut verbinden" erhalten).
klarnaRadio?.addEventListener("change", () => { if (!klarnaStatus.textContent) connectKlarna(); });
}
// Banküberweisung (Vorkasse): braucht KEINE externe Anbindung — zeigt einfach VanVans echte,
+16 -10
View File
@@ -208,7 +208,7 @@ import { bankverbindung, bankverbindungVollstaendig } from "../../../data/bankve
if (paypalLoaded || !document.getElementById("paypal-button-container")) return;
paypalLoaded = true;
const script = document.createElement("script");
script.src = "https://www.paypal.com/sdk/js?client-id=sb&currency=EUR&intent=capture";
script.src = "https://www.paypal.com/sdk/js?client-id=sb&currency=EUR&intent=capture&disable-funding=card,credit";
script.onload = () => {
if (!window.paypal) return;
window.paypal.Buttons({
@@ -228,16 +228,22 @@ import { bankverbindung, bankverbindungVollstaendig } from "../../../data/bankve
// die Oberfläche schon fertig aussieht und 1:1 austauschbar ist, sobald die Anbindung steht.
const klarnaBtn = document.getElementById("klarna-connect");
const klarnaStatus = document.getElementById("klarna-status");
function connectKlarna() {
if (!klarnaBtn || klarnaBtn.disabled) return;
klarnaBtn.disabled = true;
klarnaBtn.textContent = klarnaConnectingLabel;
setTimeout(() => {
klarnaBtn.textContent = klarnaConnectLabel;
klarnaBtn.disabled = false;
klarnaStatus.textContent = "✅ " + klarnaConnectedLabel;
}, 1100);
}
if (klarnaBtn) {
klarnaBtn.addEventListener("click", () => {
klarnaBtn.disabled = true;
klarnaBtn.textContent = klarnaConnectingLabel;
setTimeout(() => {
klarnaBtn.textContent = klarnaConnectLabel;
klarnaBtn.disabled = false;
klarnaStatus.textContent = "✅ " + klarnaConnectedLabel;
}, 1100);
});
klarnaBtn.addEventListener("click", connectKlarna);
const klarnaRadio = document.querySelector('input[name="pay"][value="klarna"]');
// Verbindet automatisch, sobald die Klarna-Karte ausgewählt wird — kein separater Klick
// auf den Button nötig (der bleibt als "erneut verbinden" erhalten).
klarnaRadio?.addEventListener("change", () => { if (!klarnaStatus.textContent) connectKlarna(); });
}
// Banküberweisung (Vorkasse): braucht KEINE externe Anbindung — zeigt einfach VanVans echte,
+16 -10
View File
@@ -208,7 +208,7 @@ import { bankverbindung, bankverbindungVollstaendig } from "../../../data/bankve
if (paypalLoaded || !document.getElementById("paypal-button-container")) return;
paypalLoaded = true;
const script = document.createElement("script");
script.src = "https://www.paypal.com/sdk/js?client-id=sb&currency=EUR&intent=capture";
script.src = "https://www.paypal.com/sdk/js?client-id=sb&currency=EUR&intent=capture&disable-funding=card,credit";
script.onload = () => {
if (!window.paypal) return;
window.paypal.Buttons({
@@ -228,16 +228,22 @@ import { bankverbindung, bankverbindungVollstaendig } from "../../../data/bankve
// die Oberfläche schon fertig aussieht und 1:1 austauschbar ist, sobald die Anbindung steht.
const klarnaBtn = document.getElementById("klarna-connect");
const klarnaStatus = document.getElementById("klarna-status");
function connectKlarna() {
if (!klarnaBtn || klarnaBtn.disabled) return;
klarnaBtn.disabled = true;
klarnaBtn.textContent = klarnaConnectingLabel;
setTimeout(() => {
klarnaBtn.textContent = klarnaConnectLabel;
klarnaBtn.disabled = false;
klarnaStatus.textContent = "✅ " + klarnaConnectedLabel;
}, 1100);
}
if (klarnaBtn) {
klarnaBtn.addEventListener("click", () => {
klarnaBtn.disabled = true;
klarnaBtn.textContent = klarnaConnectingLabel;
setTimeout(() => {
klarnaBtn.textContent = klarnaConnectLabel;
klarnaBtn.disabled = false;
klarnaStatus.textContent = "✅ " + klarnaConnectedLabel;
}, 1100);
});
klarnaBtn.addEventListener("click", connectKlarna);
const klarnaRadio = document.querySelector('input[name="pay"][value="klarna"]');
// Verbindet automatisch, sobald die Klarna-Karte ausgewählt wird — kein separater Klick
// auf den Button nötig (der bleibt als "erneut verbinden" erhalten).
klarnaRadio?.addEventListener("change", () => { if (!klarnaStatus.textContent) connectKlarna(); });
}
// Banküberweisung (Vorkasse): braucht KEINE externe Anbindung — zeigt einfach VanVans echte,