Jedna z otázek, kterou často dostáváme při rozhovorech s vývojáři nebo technickými vedoucími, zní: co je to vlastně aplikace pro Shopify a jaké nástroje a technologie jsou potřeba k jejímu vytvoření? Další častou otázkou je, zda je problém, pokud nemám s tvorbou aplikací pro Shopify žádné zkušenosti.
Pojďme na tyto otázky odpovědět podrobnějším rozborem různých technologických aspektů vývoje aplikací pro Shopify.
Pokud hledáte vývoj na míru pro Shopify, můžete se obrátit na naše odborníky na Shopify nebo hledat specialisty na Shopify na platformách pro freelancery.
Jak se aplikace pro Shopify liší od webové aplikace
Náš pohled na tuto problematiku je takový, že aplikace pro Shopify funguje v podstatě jako standardní webová aplikace, která je však úzce propojena s platformou Shopify prostřednictvím API. To má několik důsledků:
- K vývoji aplikace pro Shopify můžete použít stejné technologie jako pro webové aplikace. Nejste omezeni na konkrétní technologii (i když použití některých technologií vám může usnadnit práci – k tomu se vrátíme později).
- Obvykle musíte vytvořit backend i frontend.
- Jste zodpovědní za hosting a provoz aplikace.
- Jakmile Shopify aplikaci schválí, proces vydání je rovněž plně pod vaší kontrolou.
Z pohledu obchodníka můžeme říci, že Shopify je Software-as-a-Service (SaaS), stejně jako aplikace pro Shopify. To znamená, že obchodník nemusí při instalaci vaší aplikace pracovat s žádným kódem.
Součásti aplikace pro Shopify
Identifikujeme tři logické součásti, které typická aplikace pro Shopify obsahuje:
- Administrace pro obchodníka
- Zpracování webhooků
- Aplikace pro zákazníky (uživatelské rozhraní obchodu)
Z těchto tří není ta poslední nutně vyžadována. Záleží na funkcionalitě, kterou chcete obchodníkům poskytnout. Například naše aplikace Candy Rack se skládá ze všech tří částí, zatímco Loyal obsahuje pouze první dvě.
Administrace pro obchodníka
Administrace pro obchodníka je ovládací panel, kde si obchodník aplikaci nastavuje a konfiguruje. Shopify doporučuje zobrazovat tuto administraci přímo v rozhraní Shopify (tzv. vložená aplikace). To znamená, že aplikaci vložíte do administrace Shopify pomocí iframe.
Vložené aplikace mají několik omezení:
- Kvůli tomu, jak funguje autentizace, jste víceméně omezeni na architekturu jednostránkové aplikace (SPA) (i když částečná řešení jsou možná pomocí Turbolinks nebo Inertia.js).
- Může být efektivní použít pro frontend React, protože Shopify poskytuje knihovny: knihovna Polaris UI zajišťuje, že UX vaší aplikace bude v souladu se zbytkem administrace Shopify, a App Bridge funguje jako frontendový most, který poskytuje kontextová data Shopify vaší aplikaci běžící v iframe.
Administrace pro obchodníka je také prvním kontaktním bodem mezi vaší aplikací a obchodníkem a je to místo, kde probíhá proces instalace. Instalace v podstatě znamená získání oprávnění k přístupu k datům obchodu prostřednictvím OAuth.
Je to také část aplikace, kde řešíte fakturaci, pokud vaše aplikace není zdarma.

Zpracování webhooků
Webhooky slouží k tomu, aby Shopify informovalo vaši aplikaci o různých událostech v obchodech, kde je nainstalována: například o vytvoření nové objednávky nebo aktualizaci produktu. Sami si určíte, k odběru kterých událostí se přihlásíte.
Obchodní logiku, která se má na základě přijaté události spustit, byste měli rozhodně řešit pomocí procesů na pozadí (background workers). Jinak můžete svou aplikaci snadno přetížit. Můžete také zvážit delegování příjmu událostí mimo vaši aplikaci.
Aplikace pro zákazníky (uživatelské rozhraní obchodu)
Pokud vaše aplikace rozšiřuje Shopify Storefront (což znamená, že přináší nové funkce zákazníkům obchodu), musíte ji do obchodu „vložit“. K tomu je třeba prostřednictvím API sdělit Shopify, aby do obchodu vložilo váš JavaScriptový zdroj. K tomu existují dvě nejoblíbenější metody: Script Tag a App Embed block. Existuje také možnost rozšířit šablonu obchodu přímo o vizuální komponenty pomocí App Blocks (označovaných také jako App sections).
Vývoj aplikace pro zákazníky může být nejnáročnější částí celého procesu. Obvykle rozšiřujete nebo dokonce přepisujete výchozí chování obchodu. Při tom musíte zajistit, aby vše fungovalo v různých šablonách Shopify, s různým nastavením obchodu a aby nedošlo k narušení funkčnosti v nepředvídatelných situacích. Navíc mohou vaši aplikaci vždy ovlivnit jiné aplikace třetích stran.
U uživatelského rozhraní obchodu byste také měli věnovat pozornost výkonu a velikosti vaší aplikace.

Vývoj vývoje aplikací pro Shopify
I když jsem dříve uvedl, že tvorba aplikace pro Shopify je v podstatě vývoj webových aplikací, toto tvrzení je pravdivé jen částečně. V roce 2021 Shopify představilo koncept checkout extensions. Předtím nebylo možné funkčnost pokladny pomocí aplikace Shopify rozšířit. V tomto ohledu se zkušenost vývojáře liší od běžné webové aplikace, protože probíhá ve velmi omezeném prostředí (např. můžete použít pouze specifikovanou sadu předpřipravených komponent React) a procesy sestavení a vydání zajišťuje Shopify.
Je možné, že se Shopify v budoucnu vydá tímto směrem i v dalších oblastech, aby získalo větší kontrolu nad aplikacemi třetích stran. V důsledku toho se vývoj aplikací pro Shopify bude stále více vzdalovat od běžného vývoje webových aplikací.
Technologický stack Digismoothie
Pojďme se podívat na technologie, které v Digismoothie používáme k tvorbě aplikací pro Shopify.
Více informací o technologiích, které používáme, najdete v naší znalostní bázi.

Závěr
Doufám, že jste se dozvěděli, co obnáší tvorba aplikace pro Shopify z technického hlediska a jaké technologie lze použít.
Na závěr se vraťme k otázce položené na začátku. Je pro inženýra se zkušenostmi s vývojem webu problém připojit se k týmu, který pracuje na aplikacích pro Shopify? Řekl bych, že rozhodně ne. Pokud má inženýr dobré znalosti konceptů a technologií používaných při moderním vývoji webových aplikací, může se velmi rychle zapojit. Znalost ekosystému Shopify a jeho API přijde postupně.






