> ## Documentation Index
> Fetch the complete documentation index at: https://docs.aftersell.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Wie funktionieren Blöcke?

> Verstehe die Blöcke des Aftersell Cart: Abschnitte und Unterblöcke, gefüllt vs. leer, Grenzen, gesperrte Blöcke, Bedingungen und Einstellungen pro Block.

Das Layout deines Carts ist ein Stapel von **Blöcken**: konfigurierbare Elemente, die du im Cart-Editor hinzufügst, umordnest, gestaltest und anpasst. Welche Blöcke du in welcher Reihenfolge einbindest, ergibt den Cart, den Kunden sehen.

Wie Blöcke innerhalb von **Zuständen** und **Abschnitten** angeordnet sind, erfährst du unter [Wie funktionieren Carts?](/de/aftersell/cart/how-carts-work).

<div id="blocks-and-sub-blocks">
  ## Blöcke und Unterblöcke
</div>

Es gibt zwei Arten von Blöcken:

* **Blöcke** sitzen direkt im Cart, in einem von drei Abschnitten: **Header**, **Body** oder **Footer**. Jeder Abschnitt bietet eine andere Auswahl an Blöcken.
* **Unterblöcke** sind in einem anderen Block verschachtelt. Derzeit beherbergt nur [**Cart items**](/de/aftersell/cart/cart-items-block) Unterblöcke: die **Product**-Zeile (die Positionszeile selbst), [**Subscription upgrade**](/de/aftersell/cart/subscription-upgrade-block) und [**Custom code**](/de/aftersell/cart/custom-code-blocks).

<div id="adding-reordering-and-removing-blocks">
  ## Blöcke hinzufügen, umordnen und entfernen
</div>

* **Hinzufügen** über die Auswahl **Add block**. Ein Block ist ausgegraut, wenn er nicht dorthin passt, wo du ihn hinzufügst, oder wenn du sein Limit erreicht hast (die Auswahl zeigt ein `count/max`-Badge).
* **Umordnen** durch Ziehen eines Blocks innerhalb seines Abschnitts.
* **Entfernen** über das Papierkorbsymbol, außer bei gesperrten Blöcken (siehe unten).
* **Ein-/Ausblenden** der meisten Blöcke über den Augen-Schalter, der einen Block vor Kunden verbirgt, ohne ihn zu löschen. Einige strukturelle Blöcke können nicht ausgeblendet werden: **Cart items**, **Checkout button** und die **Product**-Zeile.

<div id="locked-blocks">
  ## Gesperrte Blöcke
</div>

Einige Blöcke können umgeordnet, aber nicht gelöscht werden, damit das Kernverhalten des Carts (zum Beispiel der Checkout) nicht versehentlich entfernt werden kann:

* **Cart items**
* **Checkout button**

<div id="default-blocks">
  ## Standardblöcke
</div>

Neue Carts starten mit einem funktionierenden Standardlayout:

* **Gefüllter Cart:** Header, Banner, Cart items, Summary, Checkout button
* **Leerer Cart:** Header, Empty cart-Block

<Info>
  Der **Zustand „leerer Cart“** ist das gesamte leere Layout. Der **Empty cart-Block** ist ein Block darin. Den Unterschied erklärt [Wie funktionieren Carts?](/de/aftersell/cart/how-carts-work)
</Info>

<div id="how-many-of-each-block-you-can-add">
  ## Wie viele Blöcke jedes Typs du hinzufügen kannst
</div>

Grenzen werden **pro Cart-Zustand** gezählt, nicht pro Cart. Der gefüllte Cart und der leere Cart haben jeweils ihr eigenes Kontingent — ein Cart kann also drei Banner im gefüllten Layout und drei weitere im leeren Layout enthalten.

Die meisten Blöcke sind auf einen pro Zustand begrenzt. Die Ausnahmen:

| Block          | Maximum pro Cart-Zustand |
| -------------- | ------------------------ |
| Banner         | 3                        |
| Image          | 3                        |
| Product add-on | 3                        |
| Summary        | 2                        |
| Custom code    | Unbegrenzt               |

<div id="content-design-and-code">
  ## Content, Design und Code
</div>

Jeder Block wird über bis zu drei Oberflächen im Editor konfiguriert:

* **Content**: die Einstellungen des Blocks (Text, Produktauswahl, Schwellenwerte usw.). Der **Custom code**-Block ist die einzige Ausnahme: Er hat kein Content-Panel, weil der Block selbst der Code *ist*.
* **Design**: Styling pro Block, das auf deinen globalen [**Design-Einstellungen**](/de/aftersell/cart/design-settings) aufsetzt. Jeder Block hat eines, außer **Custom code**, der überhaupt kein Einstellungspanel hat.
* **Code**: überschreibe das integrierte Rendering des Blocks mit einem [**benutzerdefinierten Template**](/de/aftersell/cart/custom-templates). Die meisten Blöcke unterstützen dies; ein paar nicht.

<div id="show-or-hide-by-market-country-or-currency">
  ## Anzeigen oder Ausblenden nach Markt, Land oder Währung
</div>

Einige Blöcke können je nach Käufer andere Einstellungen anzeigen oder sich ganz ausblenden. Das ist unabhängig vom **Augen-Schalter** in der Seitenleiste, der einen Block für alle ein- oder ausschaltet.

|                        | **Augen-Schalter**                                      | **Bedingungen**                                                      |
| ---------------------- | ------------------------------------------------------- | -------------------------------------------------------------------- |
| **Was er/sie bewirkt** | Den gesamten Block für alle Kunden ein- oder ausblenden | Auswählen, welche Einstellungsvariante ein Kunde sieht (oder nichts) |
| **Basierend auf**      | Deiner Wahl im Editor                                   | Shopify-Markt, Kundenland oder Kundenwährung                         |
| **Wo**                 | Augensymbol in der Seitenleiste bei den meisten Blöcken | Einstellungspanel bei Blöcken, die Bedingungen unterstützen          |

**Heute unterstützte Bedingungstypen:** Shopify-Markt, Kundenland und Kundenwährung (jeweils mit **In** oder **Not in**). Warenkorbsumme und Warenkorbinhalt sind **keine** Bedingungstypen. Verwende die Stufen-Schwellenwerte von [Rewards](/de/aftersell/cart/rewards-block) für Fortschritt nach Ausgaben/Menge, oder das [Cart SDK](/de/aftersell/cart/sdk-overview), wenn du eine Regel brauchst, die der Editor nicht abbilden kann.

Bedingungen sind eine geordnete Liste: Die **erste passende** Bedingung gewinnt. Setze spezifische Regeln über einen **All buyers**-Catch-all. Wenn nichts passt, rendert der Block für diesen Kunden nichts.

**Im Editor liefert heute** der [**Rewards**](/de/aftersell/cart/rewards-block#per-market-rewards)-Block die vollständige Bedingungen-UI: unterschiedliche Stufensets pro Markt, Land oder Währung. Andere Blöcke verwenden entweder eine einzige „All buyers“-Konfiguration oder nehmen noch nicht an diesem System teil.

Die Editor-Vorschau wertet den tatsächlichen Käufer **nicht** aus. Wähle eine Bedingung im Panel aus, um diese Variante in der Vorschau zu sehen.

<div id="all-blocks">
  ## Alle Blöcke
</div>

**Struktur**

* [Header](/de/aftersell/cart/header-block): Titel, Artikelanzahl, Logo und Schließen-Steuerung, oben fixiert.
* [Cart items](/de/aftersell/cart/cart-items-block): die Artikel, die Kunden in den Warenkorb legen; wiederholt sich pro Position.
* [Subscription upgrade](/de/aftersell/cart/subscription-upgrade-block): Unterblock, der anbietet, eine Position in ein Abonnement umzuwandeln.
* [Summary](/de/aftersell/cart/summary-block): Summen, Ersparnisse und angewendete Rabatte.
* [Checkout button](/de/aftersell/cart/checkout-button-block): der primäre Call-to-Action zum Checkout.
* [Empty cart](/de/aftersell/cart/empty-cart-block): der Inhalt, der angezeigt wird, wenn der Cart leer ist.
* [Express payments](/de/aftersell/cart/express-payments-block): beschleunigte Checkout-Schaltflächen (Shop Pay, PayPal usw.) im Cart.

**Merchandising**

* [Upsells](/de/aftersell/cart/upsells-block): strategiebasierte Produktempfehlungen.
* [Product add-on](/de/aftersell/cart/product-add-on-block): ein einzelnes spezifisches Produkt als Add-on.
* [Rewards](/de/aftersell/cart/rewards-block): gestaffelte Prämien wie kostenloser Versand oder Geschenke.
* [Shipping protection](/de/aftersell/cart/shipping-protection-block): ein optionales Versandschutz-Add-on.

**Kundeneingaben**

* [Discount code](/de/aftersell/cart/discount-code-block): ein Feld zum Anwenden eines Rabattcodes.
* [Notes](/de/aftersell/cart/notes-block): ein Feld für Bestellnotizen.

**Inhalt**

* [Banner](/de/aftersell/cart/banner-block): ein Nachrichtenbanner, mit optionalem Countdown-Timer.
* [Image](/de/aftersell/cart/image-block): ein einzelnes Bild oder eine gehostete Vorlage wie Zahlungssymbole.
* [Custom code](/de/aftersell/cart/custom-code-blocks): benutzerdefiniertes HTML oder React an beliebiger Stelle im Cart.

**Erweitern**

* [Custom templates](/de/aftersell/cart/custom-templates): überschreibe das Rendering jedes Blocks über seinen Code-Tab.

<div id="blocks-available-in-each-section">
  ## Verfügbare Blöcke in jedem Abschnitt
</div>

Jeder Abschnitt hat eine andere Auswahl verfügbarer Blöcke. Das hält das Layout fokussiert und reduziert Unordnung.

| Abschnitt  | Verfügbare Blöcke                                                                                                                                   |
| ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Header** | Header, Banner, Rewards, Image, Custom code                                                                                                         |
| **Body**   | Banner, Notes, Discount code, Cart items, Empty cart, Custom code, Rewards, Product add-on, Shipping protection, Image, Upsells                     |
| **Footer** | Banner, Notes, Discount code, Custom code, Rewards, Product add-on, Shipping protection, Express payments, Image, Upsells, Summary, Checkout button |

Einige dieser Blöcke sind zustandsspezifisch (zum Beispiel Empty cart nur im leeren Zustand). Siehe [Wie funktionieren Carts?](/de/aftersell/cart/how-carts-work)

<div id="block-validation-errors">
  ## Validierungsfehler bei Blöcken
</div>

Wenn die Einstellungen eines Blocks einen ungültigen Wert enthalten, erscheint ein kleiner roter Punkt neben dem Namen dieses Blocks in der Seitenleiste. Der Punkt bleibt, bis du das Problem behebst. Er ist keine schließbare Benachrichtigung.

Solange ein Block einen Fehler hat, ist das **Speichern blockiert**. Die **Save**-Schaltfläche bleibt anklickbar, aber beim Auswählen erscheint ein Fehler-Toast (*"Fix the errors in your cart blocks before saving"*) und der Editor springt zum ersten Block mit einem Problem und öffnet dessen Einstellungen, damit du das markierte Feld korrigieren kannst. **Publish** erfordert zusätzlich, dass keine ungespeicherten Änderungen vorliegen — es bleibt also nicht verfügbar, bis ein fehlerfreies Speichern gelingt.

Sobald das ungültige Feld korrigiert ist, verschwindet der Punkt von selbst und das Speichern funktioniert wieder normal.

<Note>
  Ausgeblendete Blöcke werden weiterhin validiert. Ein von dir ausgeblendeter Block kann eine ungültige Einstellung enthalten, einen Fehlerpunkt anzeigen und das Speichern genauso blockieren wie ein sichtbarer. Wenn das Speichern also blockiert ist und alle sichtbaren Blöcke in Ordnung aussehen, überprüfe deine ausgeblendeten Blöcke.
</Note>
