Povinná pole v objednávce

Posted 28. 01. 2009 / By Petr Soukup / Eshop

Navážu na předchozí článek o povinné registraci při nákupu v e-shopu a pokusím se vyvrátit další dogma. Zhruba každý druhý klient při implementaci šablony chce, aby se při odesílání objednávky zkontrolovala vyplněná pole - proč? - protože to viděl jinde.

Upozorňuji, že se zase budu věnovat jen situaci u menších eshopů - alza.cz a podobné giganty neřeším :)

Co se kontroluje?

Typicky jde o vyplněný email, správný formát telefonu, smysluplné jméno, ... Zkrátka všechno co je z pohledu obchodníka relevantní. Jenže problémem je právě pohled obchodníka - programátor ani obchodník obvykle nedokáže vystihnout všechny možnosti, které mohou nastat.

Kdy povinná kontrola selže?

Máte v e-shopu kontrolu PSČ? Ukládáte ho jako integer? A přežije zadání slovenského PSČ, které obsahuje na začátku nulu?

Kontrolujete formát telefonu? Musí tedy zákazník telefon zadávat třikrát, než ho napíše dobře? A co když potřebuje zadat telefony dva?

Kontrola emailu vypadá asi nejjednodušeji. Existuje notoricky známý regulární výraz, který kontrolu zařídí. Ale počítá s emailem s diakritikou? A počítá s tím, že zákazník neumí napsat zavináč? Ano, takových je stále spousta. Spousta uživatelů seznamu si navíc myslí, že v emailu záleží na velkých a malých písmenech.

Zjišťujete regulární výrazem, zda je zadáno smysluplné jméno? A počítá výraz s tím, že někdo může mít jméno se třemi částmi? A čtyřmi?

Je mi jasné, že to co jsem vyjmenoval jsou spíš extrémy a na většinu by šlo vymyslet nějaké řešení, ale hlavní otázkou je proč.

Jak se to řeší?

Jak už jsem dříve zmínil, tak naši první cílovkou byly těhotné maminky. Požadavkem tedy bylo, aby objednávka byla extrémně uživatelsky přívětivá. Nějaký povinný formát telefonu tedy nepřipadá v úvahu. Přišlo tedy úplně jednoduché řešení - před odesláním objednávky se javascriptem zkontrolují zběžně zadané informace (ani ne na formát, ale spíš jestli tam vůbec něco je) a pokud něco nesedí, vyskočí:

chyba-kosik

Pokud tedy zákazník skutečně na něco zapomněl, tak řekne Storno a údaj doplní. Pokud však má důvod údaj vynechat, tak ho systém pustí dále.

Druhá pomůcka je spíše tri, než nějaké opatření. Vznikl úplně náhodou, ale výborně se osvědčil. Jednoduše jsme v adrese vytučnili telefon a email - to je zásadní údaj a pokud jiný chybí, tak se prostě zeptáme.

kosik-adresa

Opticky to působí dojmem, že pole je určitě povinné. Dokonce když jsem minule psal o povinné registraci a spousta z vás si to musela hned zkusit, tak jste bez výjimky tyto údaje všichni vyplnili, přestože to systém nijak nehlídá.

Jak to funguje?

Výborně. Nezasvěcený člověk si obvykle myslí, že se musí bránit falešným objednávkám tím, že zavede různé filtry. Jenže efekt je zcela opačný. Pokud údaje nefiltrujeme a zákazník má důvod něco nezadat, tak může.

Občas se třeba stane, že přijde prázdná objednávka (často ale se zmíněným emailem a telefonem) s jedním produktem a v poznámce má napsáno "Můžete mi to přidat k objednávce 54223? děkuji, Nováková". Ano, tato situace by šla vyřešit editací objednávky, správou odeslaných objednávek a podobně. Ale není to takhle krásně jednoduché?

Není pravda, že do eshopů chodí často prázdné objednávky. Pokud přijde (a je to skutečně zanedbatelné množství) a třeba ji poslal zákazník, který si skutečně chtěl objednat zboží (ještě větší minimum), tak se dá očekávat, že pokud neměl dostatečné IQ na to, aby vyplnil adresu doručení, tak by nebyl schopen ani vyzvednutí zboží na poště.

Hlavně je ale potřeba i uvědomit, že pokud někdo třeba jen něco zkouší a pošle prázdnou objednávku, tak ji snadno poznáte a ignorujete. Pokud ho však donutíte, aby vyplnil všechna pole, jak potom zjistíte, jestli je pravá nebo ne?



O blogu
Blog o provozování eshopů a technologickém zázemí.
Aktuálně řeším hlavně cloud, bezpečnost a optimalizaci rychlosti.

Rozjíždím službu pro propojení eshopů s dodavateli.