Přeskočit na hlavní obsah

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

Screen IDS1
Typ Sekundární
FázeMVP
Odhad4 h
Úč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. Accordion cenových kategorií — 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 pro každou kategorii (stepper), výchozí hodnota 0 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 — pokračuje z P3, rezervační countdown 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
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, disabled countery
LoadedKategorie dostupnéAccordion rozbalený, 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

  • Accordion struktura cenových kategorií
  • Real-time cenový souhrn
  • Countdown timer z P3

Co děláme jinak

  • Haptic feedback na tap +/− — lehký tap pro potvrzení akce
  • Větší touch targety pro counter tlačítka (min 48dp) — na webu stačí menší click area
  • Stepper místo textového inputu — nikdy ne číselné pole pro quantity na mobilu (lepší UX, méně chyb)
  • Sticky bottom bar — vždy viditelný při scrollu, web má CTA níže v layoutu

Aplikované patterny

  • iOS: UIStepper nebo custom stepper s UIImpactFeedbackGenerator pro haptiku
  • Android: MaterialButton s MaterialButtonToggleGroup nebo IconButton + OutlinedTextField, 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.