1. dubna 2014
Ve svém okolí jsem známý svou nechutí k používání všelijakých „hotových” řešení a frameworků – rád mám věci podle sebe a zcela pod svou kontrolou. Nechci být závislý na rozhodnutí jiných lidí, ať už se to týká nabízených funkcí (a dalšího rozvoje), bezpečnosti, nebo v extrémních případech i samotného zachování existence použitého hotového řešení (spousta věcí je poskytována v režimu „ber jak je a dokud je”, tedy bez garance, že server, ke kterému se připojujete, bude fungovat i zítra).
Přesto jsou oblasti, ve kterých se mi dlouhodobě vyplácí spoléhat na externí řešení. Jedná se zejména o oblasti, které netvoří můj „core business”, v případě nouze se bez nich obejdu (nebo je mohu snadno nahradit), ale dokud jsou, šetří mně i mým zákazníkům práci, čas a ve výsledku i peníze. Díky těmto externím řešením (a mnoha automaticky spouštěným úlohám řešícím rutinní práce) mohu na Vyplňto.cz pracovat i po šesti letech stále sám, a ještě vedle toho tvořit weby na zakázku, protože na to jednoduše „mám čas”.
V tomto článku jsem se s Vámi rozhodl podělit o 7 šikovných API, která mi velmi pomáhají (+ jedno vlastní). Budiž Vám článek inspirací i pro zlepšení Vašich webových aplikací a stránek :-)
Vyplňování fakturačních údajů v rámci objednávky bývá pro zákazníky zbytečně zdlouhavé, a tu a tam se také stane, že se dotyčný třeba přepíše v identifikačním čísle (IČ) nebo udělá překlep v adrese. Následuje obvykle výměna alespoň jednoho e-mailu, případně se problém řeší také po telefonu, a celé to stojí zbytečně moc času (nehledě na to, že to často prodlužuje dobu splatnosti).
Výše uvedený problém lze poměrně efektivně řešit veřejným API databáze ARES, které po zavolání jednoduché adresy s parametrem IČO vrátí XML dokument s veškerými informacemi o nalezeneném ekonomickém subjektu (na základě těchto údajů lze nejen snadno zjistit, zda daný subjekt existuje, ale také předvyplnit všechny ostatní kolonky).
API k databázi ARES je vynikající pro vyhledávání údajů o českých podnikatelských subjektech, zejména těch, které nejsou plátci DPH. Co když však prodáváte i cizincům v rámci Evropské unie a potřebujete řešit, zda máte fakturovat celou částku vč. českého DPH, nebo naopak fakturovat částku bez DPH a nechat samotné odvedení DPH na příjemci služby v režimu „reverse charge”?
V takovém případě je zapotřebí jít „o úroveň výše”, a obrátit se na evropskou webovou službu VIES. Tato služba je schopna zjistit, zda zadané DIČ náleží plátci DPH registrovaného v některé ze zemí EU, a pokud ano, tak také poskytne jeho fakturační údaje (je možné je automaticky předvyplnit do objednávkového formuláře).
Kdysi dávno, někdy na začátku roku 2008, se mi začalo při podnikání natolik dařit, že jsem si řekl „Dost bylo prasáren, od teď nebudu dělat ty tři faktury do měsíce ve Wordu, je čas podívat se po něčem lepším”.
Už tehdy jsem řešil, zda by nebylo nejlepší si naprogramovat nějaký vlastní fakturační systém, ale při představě, jak by to bylo složité, jsem se nakonec spokojil se softwarem Fakturky od Milana Bánovského. Dva roky jsem se opájel tím, jak je ten software skvěle funkční a jak to byla za tehdejší pětistovku super výhodná koupě. Následně jsem přešel na Macintosh a mé nadšení začalo trochu opadávat – vystavení faktury znamenalo spustit Windows ve virtualizačním nástroji, a jelikož jsem tehdy ještě rozhodně neměl SSD disk, trvalo mi vytvoření faktury zhruba 10 minut. A faktury postupně přibývaly (ve špičkách až na několik desítek měsíčně), začal jsem mít bordel v tom, která faktura je zaplacená, kterou mám ještě urgovat a kterou již vzdát, tedy stornovat...
Zjistil jsem, že vlastně některé dny neřeším nic jiného, než že vystavuji faktury za uplynulý týden, posílám je zákazníkům e-mailem, odškrtávám zaplacené faktury, píšu si poznámky k fakturám po splatnosti a po čase tyto faktury ruším z důvodu nevymožitelnosti. Začal jsem proces fakturace postupně nesnášet.
Posledním impulzem pro napsání vlastního fakturačního systému byl fakt, že jsem se kvůli expanzi Vyplňto.cz na Slovensko rozhodl stát plátcem DPH. Zvládnout DPH, reverse charge, zálohové faktury, daňové doklady a pravidelné čtvrtletní přiznání k DPH jsem si s aplikací Fakturky již představit nedokázal, zaměstnat člověka na řešení účetnictví by stálo strašně moc peněz, takže jsem si na to sednul, a přepsal objednávkový a fakturační proces úplně od nuly:
Nejlepší na celém výše uvedeném procesu je fakt, že do něj v ideálním případě nemusím vůbec zasahovat (řeším jen individuální problémy). Pro spárování plateb využívám API Fio banky (pokud nemáte pro podnikání účet ve Fio, tak si ho zařiďte, lepší účet pro online podnikání v ČR/SR neexistuje!), případně notifikační služby platebních zprostředkovatelů GoPay a Paypal. Druhou výhodou samozřejmě je, že mám data o fakturaci kdykoli k dispozici v podobě SQL tabulek, a tak si mohu snadno tvořit různé reporty s vývojem tržeb, a zejména snadno získávat podklady pro Finanční úřad.
Studenti jsou zvláštní a velmi zajímavou cílovou skupinou zákazníků, která se vyznačuje vyšší citlivostí na cenu a velkým potenciálem do budoucna. V mnoha případech (na Vyplňto.cz určitě) má smysl tuto skupinu nějak cenově zvýhodnit, protože jakmile se student během studia naučí s nějakým nástrojem pracovat, je šance, že s tímto nástrojem bude rád pracovat i po úspěšném dokončení studia v rámci svého zaměstnání (nejen Microsoft by mohl povídat :-)).
Jenže jak efektivně zprocesovat přiznání rozdílných cen pro studenty a ty ostatní?
Řešením číslo jedna může být poskytnutí slevy na základě vložení školního e-mailu – to s sebou nese především nevýhodu v podobě nutnosti znát pokud možno všechny domény škol, na kterých mají studenti své e-maily. Druhým problémem pak je, že na některých školách studenti jednoduše školní e-maily nepoužívají (tuším, že např. na některých fakultách Masarykovy univerzity v Brně).
Poskytovat slevu studentům tedy bohužel jednoduše nejde, zato je možné relativně jednoduše poskytovat slevu držitelům karet ISIC, ITIC, ALIVE (jen CZ) a EURO<26 (jen SK).
V rámci České republiky není nic snazšího než kontaktovat společnost GTS Alive, stát se oficiálním poskytovatelem slevy a oproti podpisu smlouvy získat přístup do jednoduchého API pro ověření platnosti karty na základě jména a čísla karty (lze ověřit mezinárodní karty ISIC a ITIC vydané v libovolném státě + kartu ALIVE, která je lokálním produktem v rámci ČR). Bonusem je následně také určitá (byť poměrně omezená) marketingová podpora ze strany poskytovatele karet.
Pokud chcete fungovat na Slovensku, zkuste podepsat smlouvu s CKM SYTS – komunikace s nimi je sice trochu „na dlouhé lokte”, ale nakonec to nějak funguje, a získáte přístup k ověření mezinárodních karet ISIC a ITIC + slovenské EURO<26.
Podnikat bez uvedení telefonního čísla na stránkách je blbost – lidé, kteří potřebují něco urgentně vyřešit, málokdy použijí e-mail. Vždy se budou primárně pídit po telefonním čísle. Jenže jak odlišit zrno (zákazníky) od plev (otravů), např. v momentě, kdy poskytujete technickou podporu k nějaké placené službě, kterou využívají stovky lidí?
Řešení je v podstatě jednoduché – je zapotřebí od zákazníků již v okamžiku učinění objednávky získat telefonní číslo (s příslibem snazší telefonické technické podpory) a toto telefonní číslo nějakým způsobem dostat se jménem a ideálně také e-mailem do mobilního telefonu. Můžete to dělat ručně, ale nemusíte: většina mobilních telefonů (iPhone, Android i Windows Phone) podporuje synchronizaci kontaktů s Googlem, a Google... poskytuje na kontakty výborné Google Contacts API!
Díky Google Contacts API lze téměř okamžitě a absolutně bez rutinní lidské práce dostat kontakty z webu do telefonu, takže ihned vidíte, kdo Vám ze stávajících klientů zrovna volá, můžete jej oslovit přímo jménem a nemusíte se ho na jeho jméno ptát (často lidé své jméno jen zamumlají, protože to berou jako naučenou frázi, kterou vyslovují automaticky a bez důrazu na správnou artikulaci – dohledat potom objednávku takového člověka je někdy obtížné...).
Zadali jste někdy do Googlu své jméno nebo název svého projektu, abyste zjistili, co se o Vás píše? Pokud zatím ne, zkuste to, možná budete až překvapeni, kolik konstruktivní kritiky, povzbudivých slov uznání a v některých případech i potenciálních dlouhodobých partnerů takto můžete nalézt. Monitoring zmínek na internetu nabízí za úplatu celá řada specializovaných firem, prozačátek si však můžete vystačit i se základními službami, které jsou k dispozici prostřednictvím volně dostupných API.
Pro sledování zmínek na internetu je naprosto klíčové Google Custom Search API, které Vám dává zdarma k dispozici vyhledávání 100 frází denně. Nenechte se zmást tím, že Google na stránkách popisuje, jak s pomocí této webové služby můžete snadno prohledávat své vlastní stránky – při vytváření vlastního vyhledávače, který budete s Custom Search API využívat, si prostě a jednoduše zaškrtněte volbu „prohledávat celý internet, ale s důrazem na zahrnuté weby”, a v samotném vyhledávacím řetězci Váš vlastní web odeberte operátorem „-site:mojedomena.tld” (dále je vhodné do vyhledávacího dotazu dát omezení jen na dostatečně čerstvé odkazy, ať nestahujete jen první stránku s nejrelevantnějšími výsledky). Jediným skutečným omezením tohoto API je limit na 100 volání (frází) denně, což je limit více než dostatečný pro zjišťování novinek o Vašem projektu třeba každé dvě hodiny (záleží na tom, jak dobře se Vám podaří vytvořit vyhledávací dotazy a jak moc jednoznačný máte název firmy / webu).
Přestože pomocí Google Custom Search můžete nalézt i mnoho obsahu ze sociálních sítí (vč. některých Facebookových statusů, tweetů a příspěvků na Google+), doporučuji Vám pro vyhledávání na sociálních sítích použít jejich samostatná API: Google+ API a Twitter Search API (Facebook jednoduché vyhledávání přes API podle všeho nemá, resp. nenašel jsem zatím žádný ekvivalent k dvěma předchozím API).
Facebook je bohužel poměrně uzavřená sociální síť, kterou nelze dost dobře automaticky vytěžovat – případné statusy o Vaší firmě se v mnoha případech zobrazují jen v rámci určité komunity kamarádů, a tak se Vy nemáte jak k těmto příspěvkům dostat nebo na ně dokonce reagovat. Nicméně nějaké API Facebook má, a nejvíce z něj asi má smysl sledovat počty sdílení určitého obsahu z Vašeho webu (víte, o co je největší zájem, co má virální potenciál a co má tedy největší smysl na sociálních sítích propagovat – blbé je, že do toho musíte postupně nasypat všechny adresy, o kterých si myslíte, že by mohly mít úspěch).
Pokud si na stránky přidáte sdílecí tlačítka AddThis (umožní sdílet Vaši stránku na prakticky libovolnou sociální síť), můžete pro sledování úspěšnosti Vašeho obsahu použít také jejich pokročilejší Analytics API.
Určitým nepsaným standardem dnešní doby je, že se zákazníkům automaticky po uskutečnění plnění zašle dotazník spokojenosti, ve kterém mohou ohodnotit, jak byli s poskytnutými službami (nebo zbožím) spokojeni, případně zda mají nějaké připomínky nebo doporučení pro budoucí zákazníky. Jako provozovatel dotazníkové služby samozřejmě nemůžu zůstat stranou, a za poslední rok jsem takto získal téměř 800 ohlasů.
Ze začátku jsem na tyto dotazníky odpovídal vždy, když jsem si na ně vzpomněl (vyjel jsem si export za posledních několik týdnů a odpověděl na ta hodnocení, kde to dávalo smysl). Jenže to vnášelo přílišný prvek náhody, který někdy neúnosně prodlužoval mou reakční dobu. Vytvořil jsem proto jednoduché REST API, které umožní v reálném čase předávat vyplněné dotazníky do dalších systémů – okamžikem odeslání dotazníku se data uloží nejen do databáze na Vyplňto.cz, ale také se celý obsah dotazníku přepošle v POST parametrech na uživatelsky definovanou webovou adresu (vstupní brána do jiného systému).
Funkci zatím využívám pouze pro sebe (dotazníky si transformuji do e-mailové zprávy, na kterou mohu rovnou odpovědět – můžete namítnout, že by bylo jednodušší respondenty požádat, aby mi své hodnocení poslali rovnou e-mailem, ale tím bych přišel o možnost se zákazníků ptát strukturovaně na otázky, které mě zajímají, a přišel bych také o souhrnná „kvantitativní” /měřitelná/ data, která v hodnotícím dotazníku zjišťuji) a v rámci projektu Paridea.cz, kde takto zjišťuji, kteří z oslovených respondentů již zodpověděli určitý dotazník a které je vhodné požádat o vyplnění znovu (Vyplňto.cz umožňuje každému oslovenému respondentovi přiřadit unikátní kód, kterým se jeho vyplnění stane neanonymním – díky tomu, že se v API předává i tento unikátní kód, je možné snadno zjistit, kdo z oslovených respondentů již který dotazník vyplnil a jak).
REST API na Vyplňto.cz plánuji zcela zveřejnit v průběhu jara pro všechny uživatele s licencí PREMIUM a KOMPLET – do té doby poskytnu nastavení této funkce na vyžádání e-mailem (ve finále se možnosti API ještě velmi pravděpodobně rozšíří o další funkce).
Publikováno dne 01. 04. 2014 v kategorii Programování
O kategorii Programování
V nejodbornější kategorii tohoto blogu jsou zařazeny články s mými programátorskými zkušenostmi získanými několikaletou praxí tvorby stránek a java aplikací pro mobilní telefony.
Ondřej - [email schován] - web (dne 22. 11. 2014 v 15.43)
Velice příjemné čtení, těším se na aktualizaci!
Tomas - [email schován] - web (dne 01. 02. 2016 v 15.35)
Rád bych upozornil ja API českých firem a živností: https://www.merk.cz/api-strojovy-pristup/
Programátor, samozvaný hodnotitel a zejména kritik.
Pan Vyplňto.cz a tvůrce několika webových stránek.