Karten im Haupt-Shop gleich groß + Versandkosten-Feld direkt unter Rabatte

Fix: Auf der Haupt-Shop-Seite (/shop/) wirkten Produktkarten in derselben
Reihe unterschiedlich groß, je nachdem wie lang Titel/Beschreibung waren.
Ursache: jede Karte steckt dort zusätzlich in einem .product-slot-Div
(fürs Filtern/Sortieren per JS). CSS Grid streckt dieses Div zwar auf die
volle Zeilenhöhe, die Karte DARIN füllte diese Höhe aber nicht aus (ein
normales <div> reicht "stretch" nicht an sein Kind weiter). Jetzt ist
das Slot-Div selbst ein Flex-Container, wodurch sich die Karte darin auf
die volle Höhe ausdehnt — alle Karten einer Reihe sind jetzt exakt
gleich groß, unabhängig von der Textlänge.

Admin: "🚚 Eigene Versandkosten je Land" steht jetzt direkt unter
"🏷️ Rabatte" (vorher lag "Auf Lager" dazwischen).

Die "🤝 Partner-Rabattcodes" bereits vorhandene Sektion sitzt weiterhin
direkt unter "🎟️ Gutscheincodes" in der linken Bereichsliste (per
Screenshot verifiziert) — falls sie nicht sichtbar war, lag es an
gecachtem Admin-Tab, nicht an fehlender Konfiguration.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
This commit is contained in:
qcigano
2026-08-02 23:46:32 +02:00
co-authored by Claude Sonnet 5
parent e48700f982
commit 2e1101deac
2 changed files with 15 additions and 5 deletions
+5 -5
View File
@@ -81,11 +81,6 @@ collections:
fields: fields:
- { label: "Ab wie vielen Stück", name: abMenge, widget: number, value_type: int } - { label: "Ab wie vielen Stück", name: abMenge, widget: number, value_type: int }
- { label: "Rabatt in Prozent", name: prozent, widget: number, value_type: int } - { label: "Rabatt in Prozent", name: prozent, widget: number, value_type: int }
- label: "Auf Lager"
name: bestand
widget: number
value_type: int
hint: "Wie viele Stück hast du vorrätig? 0 = ausverkauft (Artikel bleibt trotzdem sichtbar)."
- label: "🚚 Eigene Versandkosten je Land (nur für Einzelkauf dieses Produkts)" - label: "🚚 Eigene Versandkosten je Land (nur für Einzelkauf dieses Produkts)"
name: versand name: versand
widget: object widget: object
@@ -95,6 +90,11 @@ collections:
- { label: "Österreich (€)", name: at, widget: number, value_type: float, step: 0.01, required: false } - { label: "Österreich (€)", name: at, widget: number, value_type: float, step: 0.01, required: false }
- { label: "Schweiz (€)", name: ch, widget: number, value_type: float, step: 0.01, required: false } - { label: "Schweiz (€)", name: ch, widget: number, value_type: float, step: 0.01, required: false }
- { label: "Luxemburg (€)", name: lu, widget: number, value_type: float, step: 0.01, required: false } - { label: "Luxemburg (€)", name: lu, widget: number, value_type: float, step: 0.01, required: false }
- label: "Auf Lager"
name: bestand
widget: number
value_type: int
hint: "Wie viele Stück hast du vorrätig? 0 = ausverkauft (Artikel bleibt trotzdem sichtbar)."
- label: Kategorie - label: Kategorie
name: kategorie name: kategorie
widget: relation widget: relation
+10
View File
@@ -179,6 +179,16 @@ a.card:hover {
@media (max-width: 900px) { .grid-3, .grid-4 { grid-template-columns: repeat(2, 1fr); } } @media (max-width: 900px) { .grid-3, .grid-4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 620px) { .grid-2, .grid-3, .grid-4 { grid-template-columns: 1fr; } } @media (max-width: 620px) { .grid-2, .grid-3, .grid-4 { grid-template-columns: 1fr; } }
/* Der Haupt-Shop (/shop/) wickelt jede Produktkarte zusätzlich in ein .product-slot-Div ein
(nötig für den Filter/Sortier-JS-Code, das einzelne Karten ein-/ausblendet). CSS Grid streckt
dieses Div zwar automatisch auf die volle Zeilenhöhe, die Karte DARIN füllte diese Höhe aber
nicht aus (ein normales <div> reicht "stretch" nicht an sein Kind weiter) — dadurch wirkten
Karten mit kurzem Text kleiner als Karten mit langem Text in derselben Reihe. Fix: das Slot-Div
selbst zum Flex-Container machen, dessen einziges Kind (die Karte) sich per Flex-Stretch auf
die volle Höhe ausdehnt — Karten in derselben Zeile sind dadurch überall gleich groß. */
.product-slot { display: flex; }
.product-slot > a { flex: 1; }
/* Badges */ /* Badges */
.badge { .badge {
display: inline-block; display: inline-block;