> ## 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.

# Jak działają bloki?

> Zrozum bloki Aftersell Cart: sekcje i sub-bloki, koszyk wypełniony vs pusty, limity, bloki zablokowane, warunki i ustawienia per blok.

Układ twojego koszyka to stos **bloków**: konfigurowalnych elementów, które dodajesz, przestawiasz, stylizujesz i dostosowujesz w edytorze koszyka. To, które bloki dodasz i w jakiej kolejności, tworzy koszyk widziany przez kupujących.

O tym, jak bloki wpisują się w **stany** i **sekcje**, przeczytasz w [Jak działają koszyki?](/pl/aftersell/cart/how-carts-work).

<div id="blocks-and-sub-blocks">
  ## Bloki i sub-bloki
</div>

Istnieją dwa rodzaje bloków:

* **Bloki** znajdują się bezpośrednio w koszyku, w jednej z trzech sekcji: **Header**, **Body** lub **Footer**. Każda sekcja oferuje inny zestaw bloków.
* **Sub-bloki** są zagnieżdżone wewnątrz innego bloku. Obecnie tylko [**Cart items**](/pl/aftersell/cart/cart-items-block) obsługuje sub-bloki: wiersz **Product** (sam wiersz pozycji), [**Subscription upgrade**](/pl/aftersell/cart/subscription-upgrade-block) oraz [**Custom code**](/pl/aftersell/cart/custom-code-blocks).

<div id="adding-reordering-and-removing-blocks">
  ## Dodawanie, przestawianie i usuwanie bloków
</div>

* **Dodawaj** bloki przez selektor **Add block**. Blok jest wyszarzony, jeśli nie może trafić tam, gdzie go dodajesz, lub jeśli osiągnięto jego limit (selektor pokazuje odznakę `count/max`).
* **Zmieniaj kolejność**, przeciągając blok w obrębie jego sekcji.
* **Usuwaj** ikoną kosza — z wyjątkiem bloków zablokowanych (poniżej).
* **Pokazuj/ukrywaj** większość bloków przełącznikiem oka, który ukrywa blok przed kupującymi bez jego usuwania. Kilku bloków strukturalnych nie można ukryć: **Cart items**, **Checkout button** i wiersza **Product**.

<div id="locked-blocks">
  ## Bloki zablokowane
</div>

Niektóre bloki można przestawiać, ale nie usuwać, dzięki czemu podstawowe działanie koszyka (na przykład przejście do checkoutu) nie może zostać usunięte przez przypadek:

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

<div id="default-blocks">
  ## Bloki domyślne
</div>

Nowe koszyki zaczynają z działającym domyślnym układem:

* **Wypełniony koszyk:** Header, Banner, Cart items, Summary, Checkout button
* **Pusty koszyk:** Header, blok Empty cart

<Info>
  **Stan pustego koszyka** to cały pusty układ. **Blok Empty cart** to jeden blok wewnątrz niego. Różnicę znajdziesz w [Jak działają koszyki?](/pl/aftersell/cart/how-carts-work).
</Info>

<div id="how-many-of-each-block-you-can-add">
  ## Ile bloków każdego typu możesz dodać
</div>

Limity liczone są **per stan koszyka**, nie per koszyk. Wypełniony koszyk i pusty koszyk mają osobne limity, więc koszyk może mieć trzy Bannery w układzie wypełnionym i trzy kolejne w układzie pustym.

Większość bloków jest ograniczona do jednego na stan. Wyjątki:

| Blok           | Maksimum na stan koszyka |
| -------------- | ------------------------ |
| Banner         | 3                        |
| Image          | 3                        |
| Product add-on | 3                        |
| Summary        | 2                        |
| Custom code    | Bez limitu               |

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

Każdy blok konfiguruje się przez maksymalnie trzy powierzchnie w edytorze:

* **Content**: ustawienia bloku (tekst, wybór produktów, progi itd.). Blok **Custom code** to jedyny wyjątek: nie ma panelu Content, ponieważ blok *jest* kodem.
* **Design**: stylizacja per blok, która nakłada się na twoje globalne [**Ustawienia designu**](/pl/aftersell/cart/design-settings). Ma ją każdy blok poza **Custom code**, który w ogóle nie ma panelu ustawień.
* **Code**: nadpisanie wbudowanego renderowania bloku [**szablonem niestandardowym**](/pl/aftersell/cart/custom-templates). Obsługuje to większość bloków; kilka nie.

<div id="show-or-hide-by-market-country-or-currency">
  ## Pokazywanie lub ukrywanie według rynku, kraju lub waluty
</div>

Niektóre bloki mogą pokazywać różne ustawienia lub całkowicie się ukrywać w zależności od tego, kim jest kupujący. To coś innego niż **przełącznik oka** w pasku bocznym, który włącza lub wyłącza blok dla wszystkich.

|                  | **Przełącznik oka**                                     | **Warunki**                                               |
| ---------------- | ------------------------------------------------------- | --------------------------------------------------------- |
| **Co robi**      | Ukrywa lub pokazuje cały blok dla wszystkich kupujących | Wybiera, który wariant ustawień widzi kupujący (albo nic) |
| **Na podstawie** | Twojego wyboru w edytorze                               | Rynku Shopify, kraju klienta lub waluty klienta           |
| **Gdzie**        | Ikona oka w pasku bocznym przy większości bloków        | Panel ustawień bloków obsługujących warunki               |

**Obsługiwane typy warunków dziś:** rynek Shopify, kraj klienta i waluta klienta (każdy z **In** lub **Not in**). Suma koszyka i zawartość koszyka **nie są** typami warunków. Użyj progów poziomów w [Rewards](/pl/aftersell/cart/rewards-block) do progresu wydatków/ilości albo [Cart SDK](/pl/aftersell/cart/sdk-overview), gdy potrzebujesz reguły, której edytor nie potrafi wyrazić.

Warunki to uporządkowana lista: wygrywa **pierwszy pasujący** warunek. Umieszczaj reguły szczegółowe nad regułą zbiorczą **All buyers**. Jeśli nic nie pasuje, blok nie renderuje niczego dla tego kupującego.

**W edytorze dziś** pełny interfejs Conditions dostępny jest w bloku [**Rewards**](/pl/aftersell/cart/rewards-block#per-market-rewards): różne zestawy poziomów per rynek, kraj lub waluta. Inne bloki albo używają jednej konfiguracji „dla wszystkich kupujących”, albo jeszcze nie uczestniczą w tym systemie.

Podgląd edytora **nie** ocenia rzeczywistego kupującego. Wybierz warunek w panelu, aby podejrzeć ten wariant.

<div id="all-blocks">
  ## Wszystkie bloki
</div>

**Struktura**

* [Header](/pl/aftersell/cart/header-block): tytuł, liczba pozycji, logo i przycisk zamknięcia, przypięte do góry.
* [Cart items](/pl/aftersell/cart/cart-items-block): pozycje dodane przez klientów do koszyka; powtarza się per linia.
* [Subscription upgrade](/pl/aftersell/cart/subscription-upgrade-block): sub-blok oferujący konwersję linii na subskrypcję.
* [Summary](/pl/aftersell/cart/summary-block): sumy, oszczędności i zastosowane rabaty.
* [Checkout button](/pl/aftersell/cart/checkout-button-block): główne wezwanie do działania prowadzące do checkoutu.
* [Empty cart](/pl/aftersell/cart/empty-cart-block): treść pokazywana, gdy koszyk jest pusty.
* [Express payments](/pl/aftersell/cart/express-payments-block): przyciski przyspieszonego checkoutu (Shop Pay, PayPal itd.) wewnątrz koszyka.

**Merchandising**

* [Upsells](/pl/aftersell/cart/upsells-block): rekomendacje produktów dobierane strategią.
* [Product add-on](/pl/aftersell/cart/product-add-on-block): pojedynczy konkretny produkt oferowany jako dodatek.
* [Rewards](/pl/aftersell/cart/rewards-block): progowe nagrody, takie jak darmowa wysyłka lub prezenty.
* [Shipping protection](/pl/aftersell/cart/shipping-protection-block): opcjonalny dodatek ochrony przesyłki.

**Dane od kupującego**

* [Discount code](/pl/aftersell/cart/discount-code-block): pole do zastosowania kodu rabatowego.
* [Notes](/pl/aftersell/cart/notes-block): pole notatek do zamówienia.

**Treść**

* [Banner](/pl/aftersell/cart/banner-block): baner z komunikatem, z opcjonalnym licznikiem odliczającym.
* [Image](/pl/aftersell/cart/image-block): pojedynczy obraz lub hostowany preset, np. ikony płatności.
* [Custom code](/pl/aftersell/cart/custom-code-blocks): niestandardowy HTML lub React w dowolnym miejscu koszyka.

**Rozszerzanie**

* [Custom templates](/pl/aftersell/cart/custom-templates): nadpisanie sposobu renderowania dowolnego bloku z jego karty Code.

<div id="blocks-available-in-each-section">
  ## Bloki dostępne w poszczególnych sekcjach
</div>

Każda sekcja ma inny zestaw dostępnych bloków. Dzięki temu układ pozostaje przejrzysty i uporządkowany.

| Sekcja     | Dostępne bloki                                                                                                                                      |
| ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| **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 |

Niektóre z tych bloków są przypisane do stanu (na przykład Empty cart tylko w stanie pustym). Zobacz [Jak działają koszyki?](/pl/aftersell/cart/how-carts-work).

<div id="block-validation-errors">
  ## Błędy walidacji bloków
</div>

Jeśli ustawienia bloku zawierają nieprawidłową wartość, obok nazwy tego bloku w pasku bocznym pojawia się mała czerwona kropka. Kropka pozostaje, dopóki nie naprawisz problemu. Nie jest to powiadomienie, które można odrzucić.

Dopóki jakikolwiek blok ma błąd, **zapisywanie jest zablokowane**. Przycisk **Save** pozostaje klikalny, ale jego wybranie pokazuje toast z błędem (*„Fix the errors in your cart blocks before saving”*) i przeskakuje do pierwszego bloku z problemem, otwierając jego ustawienia, abyś mógł poprawić podświetlone pole. **Publish** dodatkowo wymaga braku niezapisanych zmian, więc pozostaje niedostępny do czasu udanego, czystego zapisu.

Po poprawieniu nieprawidłowego pola kropka znika sama, a zapisywanie przebiega normalnie.

<Note>
  Ukryte bloki wciąż podlegają walidacji. Ukryty blok może zawierać nieprawidłowe ustawienie, pokazywać kropkę błędu i blokować zapisywanie dokładnie jak widoczny — więc jeśli zapisywanie jest zablokowane, a każdy widoczny blok wygląda dobrze, sprawdź ukryte bloki.
</Note>
