@@ -84,14 +85,18 @@ import { effektiverZeilenpreis, mengenrabattProzent } from "../../data/rabatt";
empty.style.display = "none";
content.style.display = "grid";
- itemsEl.innerHTML = cart.map((i) => {
+ const zeilen = cart.map((i) => {
const produkt = getProduct(i.slug);
+ const zeilenpreis = produkt ? effektiverZeilenpreis(produkt, i.menge) : i.menge * i.preis;
+ const mengenProzent = produkt ? mengenrabattProzent(produkt, i.menge) : 0;
+ return { item: i, produkt, zeilenpreis, mengenProzent };
+ });
+
+ itemsEl.innerHTML = zeilen.map(({ item: i, produkt, zeilenpreis, mengenProzent }) => {
const foto = produkt?.bilder?.[0];
const thumb = foto
? `

`
: `
`;
- const zeilenpreis = produkt ? effektiverZeilenpreis(produkt, i.menge) : i.menge * i.preis;
- const mengenProzent = produkt ? mengenrabattProzent(produkt, i.menge) : 0;
const mengenBadge = mengenProzent > 0 ? `
${mengenrabattTemplate.replace("__P__", mengenProzent)}
` : "";
return `
@@ -112,6 +117,12 @@ import { effektiverZeilenpreis, mengenrabattProzent } from "../../data/rabatt";
`;
}).join("");
+ // Rechnungs-Übersicht in der Zusammenfassung — dieselbe Positionsliste wie im Warenkorb
+ // links, nur kompakt als "Beleg" (Menge × Name → Zeilenpreis), passend zum Checkout.
+ document.getElementById("summary-items").innerHTML = zeilen.map(({ item: i, zeilenpreis }) =>
+ `
${i.menge}× ${i.name}${formatPrice(zeilenpreis, cartLang)}
`
+ ).join("");
+
const subtotal = cartTotal();
const remaining = Math.max(0, freeShipFrom - subtotal);
const shipping = berechneVersandkosten(landSelect.value, cart.map((i) => ({ slug: i.slug, preis: i.preis, menge: i.menge })), products);
diff --git a/src/styles/global.css b/src/styles/global.css
index 2deabd0..0b49113 100644
--- a/src/styles/global.css
+++ b/src/styles/global.css
@@ -1164,6 +1164,9 @@ a:focus-visible, button:focus-visible {
.pay-option input[type="radio"]:checked { border-color: var(--brand-color, var(--c-accent)); }
.checkout-summary .row { display: flex; justify-content: space-between; font-size: 0.9rem; padding: 0.35rem 0; color: var(--c-text-muted); }
+/* Rechnungs-Positionsliste in der Warenkorb-Zusammenfassung — dieselbe Klasse wie im Checkout,
+ nur mit etwas Abstand zur folgenden Zwischensumme. */
+.cart-summary #summary-items { margin-bottom: 0.6rem; padding-bottom: 0.4rem; border-bottom: 1px dashed rgba(244, 241, 247, 0.14); }
/* "Gesamt"-Zeile wie ein Kassenbon-Abriss: gestrichelte Trennlinie + Summe in Marken-Verlauf,
damit der Endbetrag klar heraussticht statt einfach nur fett zu sein. */