Only X left in your size mezi pomocí a manipulací
Hlášky typu „Zbývají poslední 2 kusy ve vaší velikosti“ patří mezi nejsilnější konverzní spouštěče v módě a obuvi. Pokud jsou založeny na pravdivých datech, pomáhají zákazníkovi vyhodnotit riziko vyprodání a rychleji se rozhodnout. Pokud jsou však vymyšlené nebo „kosmeticky upravené“, jedná se o dark pattern, který poškozuje důvěru a může porušovat právo na transparentní informaci. Tento článek vysvětluje, jak navrhnout inventární API, integrace a UI tak, aby „Only X left in your size“ bylo pravdivé, auditovatelné a férové.
Terminologie: jaká data vlastně potřebujeme
- SKU (Stock Keeping Unit): konkrétní varianta (např. Model A, barva Black, velikost 42).
- ATS (Available To Sell): okamžitě prodejné kusy po odečtení rezervací a poškozených kusů.
- ATP (Available To Promise): prodejní potenciál v čase, zahrnuje potvrzené inboundy (ASN) a výrobu.
- Reservations/Holds: krátkodobé blokace košíkem nebo platbou (typicky 5–30 minut), které snižují ATS.
- Backorder/Preorder: prodej na budoucí datum, nepodléhá hlášení „poslední kusy“, pokud je dostupná náhrada.
Kdy je „Only X left“ užitečné a férové
- Variantově přesné: hláška se vztahuje na vybranou velikost a barvu, nikoli na celý produkt.
- Časově relevantní: vychází z dat s nízkým zpožděním (ideálně < 60 s) a uvádí čas poslední aktualizace.
- Spárované s logistikou: nabízí alternativy (jiný obchod, jiná barva, doručení za X dní).
- Bez paniky: jazyk je neutrální („Na skladě 2 ks ve velikosti 42“), nikoli nátlakový („Jen blázen by to nekoupil“).
Kdy je to dark pattern (co nedělat)
- Fake scarcity: pevné „X“ bez vazby na sklad (např. vždy 3 ks).
- Resetující se odpočet: umělý časovač, který se po obnovení stránky vrací, bez propojení na rezervace nebo cutoffy.
- Agregování přes varianty: „poslední kusy“ na úrovni modelu, i když ve vybrané velikosti je 100+ ks.
- Skrytá dynamika: neříkáte, že stav zahrnuje držení v košících, která po X minutách expirují.
Architektura: jak vypadá pravdivé inventární API
- Zdrojové systémy: WMS/ERP (sklad, reklasifikace), OMS (objednávky, storna), POS (prodejny), PSP/Checkout (rezervace během platby).
- Normalizační vrstva: mapuje varianty (SKU) a lokace (online sklad, prodejny, dropship), upravuje duplikáty a poškozené kusy.
- Rules engine: konfiguruje, co se započítává do ATS (např. košíkové rezervace −R, picking −P, Q/C hold −Q).
- API endpointy:
/inventory/v1/availability?sku=...&loc=...→ vrací ATS, ATP, reserved, last_updated, ttl./inventory/v1/variant-summary?productId=...→ matice velikostí/barv s ATS/ATP./inventory/v1/holds→ vytváření/expirace krátkodobých holdů během checkoutu.
- Cache a TTL: CDN edge cache 15–60 s, se stale-while-revalidate, aby UI nezpomalovalo, ale nezavádělo.
- Audit log: každá zobrazená hláška se dá zpětně vysvětlit (jaké hodnoty API v daném čase vrátilo).
Datová pravidla: kdy zobrazit upozornění a jaký text
- Prahy:
- ATS ≤ 3 → „Poslední kusy (3 ks) ve velikosti 42“
- 4 ≤ ATS ≤ 10 → „Omezené množství (8 ks)“
- ATS > 10 → žádné upozornění; zobrazit pouze „Na skladě“
- Vazba na inbound: pokud ATS = 0, ale ATP v 72 h ≥ 10 → „Znovu na skladě do 3 dnů (předobjednejte)“.
- Rezervace v košících: pokud reserved_by_carts > 0 → „V košících zákazníků: 5 ks (rezervace expirují do 10 min).“
- Více lokalit: „Online 0 ks, Prodejna Eurovea 2 ks (rezervovat na vyzvednutí?)“
Varianty a velikosti: matice dostupnosti bez klamání
U produktů s velikostmi/barvami zobrazte interaktivní mřížku (size × color) s legendou „Na skladě / Poslední kusy / Na cestě / Vyprodáno“. Hlášku „Only X left“ zobrazujte pouze pro aktuálně vybranou kombinaci. Pro přístupnost: ARIA popisy a textové hodnoty (nikoli pouze barva). Pro mobil: skupinové přepínače s informací v řádku, nikoli až pod nimi.
Rezervace a závod s časem: spravedlivé „holds“
- Soft hold v košíku (např. 10 min): snižuje ATS, pokud uživatel aktivně interaguje.
- Hard hold při platbě (např. 15 min): blokuje položku, aby nedošlo k oversellu.
- Transparentnost: UI zobrazuje „Rezervováno pro vás do 12:14“ a po expiraci nabídne alternativy.
- Fairness: omezte počet paralelních holdů na zákazníka/IP, aby nedocházelo k blokování zásob boty.
Offline prodejny a omnichannel: BORIS, ROPIS, ISPU
- ISPU (In-Store Pickup): hláška musí odrážet inventář konkrétní prodejny s latencí do pár minut (POS → API).
- BORIS: pokud je online ATS nízké, nabízí vrácení/výměny v prodejně, ale nezapočítává se do „Only X left“.
- ROPO/ROPOS: při přechodu mezi kanály zachovejte konzistentní čísla; zobrazujte čas poslední synchronizace podle kanálu.
Bezpečnost a odolnost: race conditions, oversell, fallbacky
- Optimistické odečtení: při „Přidat do košíku“ dočasně snižujte ATS; na pozadí potvrďte nebo vraťte.
- Idempotentní operace: opakované kliknutí nevytvoří více holdů; použijte requestId.
- Graceful degradation: pokud API neodpovídá, nezobrazujte paniku; ukažte „Stav skladu se načítá…“ bez vymyšlených čísel.
- Anti-bot: rate-limiting na holds, hCaptcha/turnstile na podezřelé vzory, detekce skriptovaných košíků.
Microcopy: neutrální a informativní jazyk
- Dobré: „Na skladě 2 ks ve velikosti 42. Rezervováno v košících: 3 ks (expirace do 8 min).“
- Špatné: „Poslední šance! Už nikdy nebude!“
- Dobré: „Vyprodáno online. Dostupné v Prodejně Central: 1 ks. Rezervujte na 24 hod.“
- Dobré: „Očekávané naskladnění do úterý (potvrzený inbound 60 ks).“
Právní a etický rámec (EU orientačně)
- Pravdivost tvrzení: skladové tvrzení jsou ověřitelné fakty; zavádění může být nekalou obchodní praktikou.
- Transparentnost: pokud hláška zahrnuje košíkové rezervace, uveďte to. Nepoužívejte malé písmo s klíčovou informací.
- Omnibus a slevy: pokud hláška doprovází slevu, referenční ceny musí být korektní; „Only X left“ nesmí maskovat pseudo-slevu.
- Přístupnost: informace musí být čitelná (≥16 px, kontrast), dostupná i pro čtečky obrazovky.
Měření dopadu: KPI nad konverzí
| Metrika | Definice | Co očekávat |
|---|---|---|
| Conversion Rate (CR) | % relací s nákupem | Mírný růst při férových hláškách |
| OOS Incidents | Počet oversell/storno kvůli nedostatku | Pokles s holdy a rychlým ATS |
| Complaint Rate | Stížnosti na „klamavé skladové info“ | Pokles při auditovatelných hláškách |
| Refund/Cancel Rate | Podíl zrušení kvůli nedostupnosti | Pokles po zavedení konzistentních API |
| Stale Data Ratio | % odpovědí starších než TTL | < 2 % mimo incidenty |
A/B testování bez manipulace
- Hypotéza: „Varianta s pravdivým ATS (včetně času aktualizace) zlepší CR o 2–4 % bez nárůstu stížností.“
- Varianty: A) bez hlášky; B) „Na skladě X ks“; C) „Poslední X ks“ s inbound alternativou.
- Stop kritéria: pokud roste OOS incidents nebo Complaint Rate, zobrazení je nepřesné – vypnout a přenastavit.
Implementační detaily: prahy, lokalizace, časová pásma
- Prahy podle kategorie: u rychloobrátkového zboží nastavte nižší prahy (poslední <= 5), u pomaloobrátkového vyšší.
- Lokalizace: „Na skladě 2 ks“ versus „2 items left“ – pozor na gramatiku a formát čísel.
- Časy: zobrazujte v časovém pásmu zákazníka (např. Europe/Prague) a uveďte „naposledy aktualizováno 12:06“.
Prevence zneužívání a interní governance
- Content guidelines: zakázat hyperboly („nikdy už nebude“), povolit pouze fakta.
- Change management: každá změna prahů v administraci je logována s důvodem (sezóna, promo).
- Interní audit: měsíční náhodný výběr hlášek a zpětné ověření proti logům API.
- Incident handling: v případě masového oversellu automatické stažení hlášek a banner s vysvětlením.
Alternativy k „Only X left“, když zásoby kolísají
- ETA zásob: „Dodání do 3–5 dní (potvrzený inbound).“
- Částečná expedice: „Odesíláme dnes 1 ks, zbytek v úterý.“
- Substituce: navrhněte podobné SKU s lepší dostupností místo paniky.
Příklady UI kompozic
- Variant Card: Vybraná velikost 42 → „Na skladě 2 ks • Aktualizováno před 45 s • Prodejna Nivy 1 ks“.
- Checkout Hold: Po přidání → „Rezervováno pro vás do 14:21. Dokončete objednávku, jinak se položka uvolní.“
- OOS State: „Vyprodáno online. Naskladnění do 3 dnů (předobjednat). Alternativa: velikost 43 na skladě 7 ks.“
Technická kontrola kvality: validace a monitoring
- Consistency checks: ATS ≥ 0, ATS ≤ fyzický stock − poškozené; rezervace ≤ ATS+ATP.
- Alerting: pokud Stale Data Ratio > práh nebo prudký nárůst OOS incidentů, vypnout hlášky a poslat upozornění.
- Syntetické testy: robot, který každou minutu kontroluje, zda UI a API vrací stejné hodnoty pro vzorové SKU.
Checklist: „Only X left“ správně od A po Z
- ✅ Zobrazuji na úrovni konkrétní varianty, nikoli modelu.
- ✅ Čerpám z ATS se zohledněním rezervací a TTL <= 60 s.
- ✅ Uvádím čas poslední aktualizace a vysvětluji košíkové rezervace.
- ✅ Nabízím alternativy: jiná prodejna, naskladnění, substituce.
- ✅ Jazyk je neutrální a přístupný; žádné přehánění.
- ✅ Mám audit logy a pravidelné interní ověřování.
- ✅ Při výpadku API nelžu – raději nezobrazím nic.
Pravdivost jako konverzní motor
„Only X left in your size