Přeskočit na hlavní obsah

S1 — Výběr vstupenek (neadresné sezení)

Screen IDS1
Typ Sekundární
FázeMVP
Účel obrazovky

Pro akce bez seat mapy — výběr cenových kategorií pomocí quantity counterů. Uživatel zvolí počet vstupenek v jednotlivých cenových úrovních (parter, balkón, VIP…) a pokračuje do košíku.


Content Priority

  1. Header — název akce, datum, místo konání, zpět na P3 — Detail akce App Bar / Top NavigationBack Button
  2. Seznam cenových kategorií — pokud je kategorií nejvýše 4, zobrazit plochý seznam (všechny sekce rozbalené, bez accordionu). Od 5 kategorií výše použít accordion (standardní sbalitelné bloky). U každé kategorie: název (např. „Parter"), krátký popis, cena za kus, dostupnost („Zbývá X" / „Vyprodáno") Accordion / Expandable
  3. Quantity counter — tlačítka + a pro jemné úpravy po jedné vstupence (vhodné pro 1–5 ks); výchozí hodnota 0. Přímý vstup: klepnutí na zobrazené číslo (počet) otevře numerickou klávesnici pro zadání přesného počtu najednou (v mezích dostupnosti a limitů objednávky). Doplňkový copy u counteru: „Klepněte na číslo pro zadání přesného počtu" Counter (+/-)
  4. Real-time pricing — průběžný přepočet celkové ceny při změně množství Price Summary
  5. Bottom bar — sticky bar s celkovou cenou a CTA „Pokračovat do košíku" CTA Sticky BarPrimary Button
  6. Countdown timer — pokud uživatel přišel z P4 — Seat map, timer pokračuje z P4; pokud neadresná větev obchází seat map, timer začne na S1 (stejná pravidla rezervace jako v checkout flow) Countdown Timer

Interakce

TriggerAkceCíl
Tap na + u kategorieZvýšení quantity o 1, přepočet cenyReal-time update bottom bar
Tap na − u kategorieSnížení quantity o 1 (min 0)Real-time update bottom bar
Tap na číslo u counteruOtevření numerické klávesnice, zadání přesného počtuValidace vůči max/min, přepočet ceny
Quantity = 0− tlačítko disabledVisual feedback
Quantity = max dostupnost+ tlačítko disabledVisual feedback
Tap „Pokračovat do košíku"Validace (alespoň 1 vstupenka), přechodP5 — Košík
Tap „Pokračovat" s 0 vstupenkamiCTA disabled, nelze pokračovatBlokáda
Swipe zpět / BackNávrat bez uloženíP3 — Detail akce

Stavy

StavPopisVizuální chování
LoadingNačítání cenových kategoriíSkeleton (accordion nebo flat list dle počtu kategorií), disabled countery
LoadedKategorie dostupnéFlat list (≤4 kategorií) plně rozbalený, nebo accordion (5+) s rozumným defaultem, aktivní countery
Category sold outJedna kategorie vyprodánaŠedá/disabled, badge „Vyprodáno", counter skryt
All sold outVšechny kategorie vyprodányDisabled CTA, banner „Tato akce je vyprodaná"
Partial selectionUživatel vybral některé kategorieAktivní bottom bar s celkovou cenou

Edge Cases a Error States

ScénářŘešení
Kategorie vyprodána během výběruToast „Kategorie X byla právě vyprodána", refresh dostupnosti, odebrání z košíku pokud byla vybrána
Limit max vstupenek na objednávku (např. 10)Zobrazit limit u counteru „Max 10 na objednávku", disable + při dosažení celkového součtu
Uživatel tlačítkem Pokračovat s 0 vstupenkamiCTA vždy disabled pokud součet = 0, nelze odeslat
Změna ceny na serveru během výběruInfo banner „Ceny se mohly změnit", refresh z API před přechodem do P5
Částečně vyprodán (zbývá 2, uživatel má 3)Při refresh: snížení quantity na max dostupné, toast „Kategorie X — zbývají jen 2 vstupenky"

Mobilní patterny a odlišení od webu

Co přebíráme

  • Struktura cenových kategorií (accordion na webu; v MA zjednodušení na flat list při malém počtu)
  • Real-time cenový souhrn
  • Countdown timer z flow nákupu (P4 nebo start na S1)

Co děláme jinak

  • Haptic feedback na tap +/− — lehký tap pro potvrzení akce
  • Větší touch targety pro counter tlačítka a pro číslo počtu (min 48dp) — na webu stačí menší click area
  • Hybridní quantity — +/− pro kroky po jedné; klepnutí na číslo otevře numerickou klávesnici pro přesný počet (rychlé větší objemy)
  • Flat list vs accordion — ≤4 kategorie bez zbytečného sbalování; 5+ accordion
  • Sticky bottom bar — vždy viditelný při scrollu, web má CTA níže v layoutu

Aplikované patterny

  • iOS: UIStepper nebo custom stepper; klepnutí na hodnotu otevře numerickou klávesnici (UIKeyboardType.numberPad / alert s políčkem); UIImpactFeedbackGenerator pro haptiku u +/−
  • Android: MaterialButton / IconButton pro +/−, pro přímý vstup VisualTransformation nebo samostatný read-only field s KeyboardType.Number; HapticFeedbackConstants pro click feedback

API Data

GET/cashdesk/event/{eventId}POST/cart/ticket/add/event-non-numberedGET/cart
OperaceEndpointTriggerPoznámka
Cenové kategorieGET /cashdesk/event/{eventId}Otevření obrazovkyVrací HallSection s view_type: NON (non-numbered), cenové kategorie
Přidání neadresnýchPOST /cart/ticket/add/event-non-numberedTap „Pokračovat"Odešle ticket_count per kategorie
Aktuální košíkGET /cartPo přidáníVrací aktualizovaný košík s validity (countdown)
CoreAPI poznatek

Neadresné akce mají HallSection.view_type = NON. Cenové kategorie (PriceCategory) mají barvu a abbreviation pro vizuální rozlišení. CustomerCategory (student, senior) se aplikuje přes PUT /cart/ticket/set-customer-category až v P5 Košík.


Reference — Aktuální web

SCR-WEB-27: Neadresné — kategorie s countery, cenové kategorie
Web ColosseumSCR-WEB-27Neadresné — kategorie s countery, cenové kategorie
SCR-WEB-28: S navigací a total bottom bar
Web ColosseumSCR-WEB-28S navigací a total bottom bar

Reference — CineStar benchmark

CineStar je zaměřen na kinematografie se sedadlovým výběrem; neadresné sezení není typický use case. Pro srovnání viz S1 adresné — Seat map.