Minden leendő webáruház-tulajdonosnak meg kell hoznia a döntést arról, hogy milyen technológiára épüljön a webshopja. Ezek a technológiák két nagy csoportba sorolhatók: választhatják a teljesen egyedi fejlesztést, vagy választhatják valamelyik úgynevezett webshop motor használatát. Előbbi esetében minden funkcionalitást és minden folyamatot professzionális szoftverfejlesztők építenek ki a nulláról. Utóbbi esetben valaki a kezükbe adja azokat az alapvető funkcionalitásokat, amik szükségesek egy webáruház működéséhez. A tulajdonosnak pedig mindössze annyi a feladata, hogy saját vállalkozása egyedi igényeihez igazítsa hozzá a webshop beállításait és tartalmát.
A tradeoff e két választás között elsősorban a webáruház költségeinek és képességeinek terén nyilvánul meg. A webshop motor jelentősen olcsóbb, mint egy egyedi fejlesztés; egyszersmind a webshop motor szigorú keretek közé kényszeríti a webáruház funkcionalitásait, míg az egyedi fejlesztés képes megvalósítani minden igényt, amit a tulajdonos elképzel.
Ez is érdekelhet
Nincsenek kapcsolódó cikkek.
Mi, a Colorandcode-nál arra törekszünk, hogy megtaláljuk az arany középutat a Shopify webshop motorjára való építkezés és az egyedi fejlesztés között. Nem hiszünk abban, hogy minden webáruházhoz újra fel kell találnunk a kereket! És abban sem, hogy a nulláról le kell fejlesztenünk újra meg újra minden elengedhetetlen funkcionalitást. Azonban megértjük, hogy minden vállalkozás egyedi igényeket támaszt a webáruháza felé, amik kiemelik az online boltjukat a tömegből és felruházzák azzal az extra, márkaépítő egyediséggel, ami emlékezetessé és egyedülállóvá teszi az oldalukat.
E cikkben szeretnénk a technikai részletekbe menően bemutatni azokat a munkafolyamatokat és eszközöket, amikkel ilyen Shopify webáruházakat alkotunk az ügyfeleink számára. Azokat, amik ötvözik a webshop motor megfizethetőségét az egyedi fejlesztés korlátlanságával.
A design fázis
A folyamat kezdeti szakaszában felmérjük az ügyfél igényeit egy nagyon alapos interjúfolyamat során, majd a Humanize testvérvállalatunk UI/UX tervezői megalkotják a webáruház teljes arculatát. Sajnálatos tény a webfejlesztés világában, hogy rendszerint olyan szakemberekre hárul a design, akiknek nem csak hogy nem a szakterületük a dizájn, hanem különösebb érzékük sincs hozzá. A bevett szokás, hogy frontend fejlesztők és menedzserek döntenek a weboldalak arculatáról. Ez azonban rendszerint kifogásolható, időnként egyenesen hibás és kontraproduktív eredményekhez vezet. (Mielőtt a Colorandcodehoz kerültem, sok interjúfolyamatnak vetettem véget és állásajánlatot utasítottam vissza, amikor kiderült, hogy a dizájnfeladatokat efféle módon végzik az adott cégnél.)
A kontárság minden projektből kiűzi a szenvedélyt és az élményt!
Azonban a Colorandcode-nál gondoskodunk arról, hogy profik kezében legyen a tervezés, és a végeredmény megfeleljen az UX alapelvek és kutatások eredményeinek.
Az arculat megalkotása során különösen ügyelünk arra, hogy a fejlesztés a lehető legnagyobb mértékben pénztárcakímélő folyamat legyen az ügyfeleink számára. A tervezőink a kiválasztott Shopify téma komponenseiből és szekcióiból kiindulva alkotják meg a dizájnt. Ahol az igények igazolják, a fejlesztés során átalakítjuk és kibővítjük ezeket az elemeket vagy új elemeket hozunk létre a témában. De arra törekszünk, hogy megtaláljuk az egyensúlyt az egyedi komponensek fejlesztése és a már létező elemek felhasználása vagy átalakítása között. Mindezt annak érdekében, hogy baráti keretek között tarthassuk a Shopify projektjeink költségvetését.
A fejlesztés kezdete
A Shopify, WordPress és hasonló projektek esetén rendszerint megkerülik azokat a gyakorlatokat, amik kötelező jellegűnek minősülnek a professzionális szoftverfejlesztésben. Mi azonban épp ellenkezőleg dolgozunk; a Colorandcode-nál a professzionális szoftverfejlesztői tudásunkat és gyakorlatainkat alkalmazzuk a Shopify projektjeinkre.
Tehát amikor kezdetét veszi a fejlesztés, első lépésként bevezetjük a teljes kódbázist a „git” nevű verziókezelő eszköz alá. A webfejlesztés világában a git egy elengedhetetlen eszköz, amit valamilyen formában minden projekt használ. A git lehetővé teszi a változások nyomon követését, a párhuzamosan folyó fejlesztést és a csapatmunkát egy komplex kódbázison.
A Shopify fejlesztés karakterisztikus jellemzője, hogy a kódbázisban bekövetkező változások nem csupán a fejlesztőktől, hanem külső forrásból is származhatnak. Amikor megváltoztatunk a témaszerkesztőben egy beállítást, vagy akár amikor feltelepítünk vagy letörlünk egy appot a webáruházunkról, ezek a változások rendszerint a kód szintjén is megjelennek. Tehát a kód akkor is változik, amikor a fejlesztők nem változtatnak rajta.
-
Cron Job
Ennek a nehézségnek a kezelése céljából mi rendszerint beállítunk egy megadott időközönként automatikusan megismétlődő folyamatot (cron job). Ez lekéri a legújabb frissítéseket a Shopify szervereiről és elmenti azokat a git verziókezelőnkbe. Így egyfajta biztonsági mentést hozunk létre megadott időközönként a webáruház legfrissebb állapotáról, lekövethetünk minden külső, a témaszerkesztőben történő módosítást, és biztosra mehetünk, hogy nem vesznek el a külső forrásból származó változások.
A Shopify két kulcsfontosságú eszközt ad a programozók kezébe a Shopify témák fejlesztéséhez. Az egyik az úgynevezett „Theme Check”, a másik pedig a „Theme CLI (Command Line Interface)” nevű eszköz. A Theme Check segítségével lefuttathatunk egy ellenőrzést a kódbázison, ami figyelmeztet bennünket arra, ha valami hibát talál a módosításainkban, a Theme CLI pedig lehetővé teszi, hogy összekapcsoljuk a lokális kódbázisunkat a Shopify webáruházzal: hogy letöltsük vagy feltöltsük a témát alkotó kódot, vagy hogy egy helyi fejlesztői környezetet futtathassunk, amiben láthatjuk a módosításainkat.
-
Theme Check
Ezek az eszközök hatalmas mértékben megkönnyítik a munkafolyamatainkat: ha egy fejlesztő módosításokat végez a kódon, a módosítások beküldése előtt automatikusan lefuttatjuk a Theme Check ellenőrzését, ami visszautasítja a módosításokat, ha hibát észlel bennük. A Theme CLI segítségével pedig a fejlesztők megoszthatják a változtatásaikat a csapat többi tagjával: letölthetik a téma kódjának a legújabb verzióját a Shopify szervereiről és feltölthetik a módosított verziót egy nem élesített, „béta verziós” témaként a webáruház témakönyvtárába.
Liquid: A Shopify sablonnyelve
A Shopify témák a Liquid nevű sablonnyelvvel íródtak. Ez nem egy teljesértékű programozási nyelv, de ez alkotja a Shopify témák alapját; Liquid-ben íródott minden komponens, szekció és oldal, ami megjelenik a Shopify weboldalunkon. A Liquid használatával definiálható, hogy a webshop témájának különböző alkotóelemei, valamint a téma egésze milyen beállításokat tesz elérhetővé a témaszerkesztőben.
A fejlesztés oroszlánrésze a Liquid kódbázis módosításából és bővítéséből áll. Ha kell, kibővíthetjük a téma már létező komponenseit további beállításokkal és funkcionalitásokkal. Ha pedig arra van szükség, új elemeket hozunk létre, amik aztán a témaszerkesztőből beszúrhatóak a webáruház különböző pontjaira. Például a Györgytea csapata szerette volna megjeleníteni a webáruház főoldalán a márkaboltjai elérhetőségét és nyitvatartását. Mi azt a megoldást találtuk a legkézenfekvőbbnek, ha létrehozunk egy teljesen új komponenst, ahol a témaszerkesztőből tetszés szerint megadhatják és módosíthatják a boltok adatait amikor szükségesnek találják, további fejlesztői beavatkozás nélkül.
A legnehezebb kihívás ezen a téren a webáruházba feltelepített appok megjelenítésének vagy működésének a módosítása. Ezeknek az alkalmazásoknak ugyanis rendszerint nem férünk hozzá a kódjához, és igen limitált opciókat nyújtanak a testreszabásra. Az esetek többségében azonban ezeket a problémákat is meg tudjuk oldani, ha JavaScript segítségével mélyen belenyúlunk a weboldal működésébe és finomhangoljuk azt az ügyfeleink igényei szerint.
Modern webtechnológiák integrálása a Shopify témába
Ami a JavaScriptet illeti, a témán belül tetszés szerint használhatjuk a JavaScript programozási nyelvet ahhoz, hogy a kliensoldalon további funkcionalitásokkal bővítsük és módosítsuk a téma viselkedését. Azonban a modern webfejlesztés világában kevesen hajlandóak még mindig JavaScriptet használni az efféle funkcionalitások fejlesztéséhez. Egyedi fejlesztésű weboldalakhoz rendszerint valamiféle keretrendszert vagy könyvtárat használunk – mint a React, Preact vagy Vue – ami hatalmas mértékben megkönnyíti a fejlesztést.
-
a TypeScript, a Vite és a React
De a kód, amit ezekkel a keretrendszerekkel írnak végső soron egyszerű JavaScript kóddá alakul, amikor a böngésző megkapja azt. Tehát: amikor bonyolultabb UI komponensek vagy oldalak fejlesztésének igényével fordulnak hozzánk, a mi módszerünk az, hogy a TypeScript, a Vite és a React technológiák használatával lefejlesztjük a kívánt funkcionalitásokat, és az abból „generált” JavaScript fájlt töltjük be a téma könyvtárába.
Ehhez az úgynevezett „monorepo” mintázatot használjuk: a kódbázisban nem egy, hanem egyszerre több projekt is létezik, amelyek egymástól eltérőek – eltérő technológiával és fejlesztési metódussal működnek – azonban szoros kapcsolatban állnak egymással. Így a kódbázisban az egyik „projekt” maga a Shopify téma, a másik pedig a React-alapú egyedi fejlesztés. Amikor elkészül vagy módosul a React-komponens, egy parancs futtatásával legeneráljuk belőle a téma könyvtárába a JavaScript fájlt, majd a témát a módosult .js fájllal feltöltjük a webáruház témakönyvtárába.
A Zhao Zhou Tea Shopify oldalán React használatával fejlesztettük le a tea térképeket.
Ezzel a módszerrel a fejlesztők nem kényszerülnek arra, hogy elavult és korlátozott megoldásokat használjanak. Ehelyett azzal a technológiával fejleszthetnek, ami számukra a legkényelmesebb, és nem kell feláldozniuk a fejlesztői élményt, amikor Shopify projekteken dolgoznak.
Webhook
A „webhook” nevű technológia lehetővé teszi, hogy két alkalmazás kommunikáljon egymással és adatokat küldjön egymásnak bizonyos események megtörténtekor.
A Shopify rendszere is lehetővé teszi nekünk, hogy webhookokat használjunk. Így, ezzel a megoldással áthidalhatjuk a szakadékot a webáruházunk és bármiféle harmadik fél alkalmazása között. A Shopify webhook-rendszere tökéletes megoldás akkor, ha például azt szeretnénk, hogy egy rendelés leadása során a boltunk továbbítsa a rendelés adatait valamiféle külső platform felé.
A webshopunk beállításában létrehozhatunk tetszőleges számú webhookot. Egy-egy webhook létrehozásánál annyit kell tennünk, hogy megadjuk, hogy milyen eseményre vonatkozzon a webhook, illetve melyik URL-re küldje az esemény adatait JSON vagy XML formátumban.
A Shopify megengedi számunkra, hogy számtalan különböző eseményhez beállíthassunk webhookokat. Példáiul ahhoz, ha egy felhasználó beregisztrál, ha a kosarába tesz egy terméket. Vagy ha elindít vagy lead egy vásárlást, ha létrehozunk egy terméket, termékvariánst vagy kedvezményt. De akkor is, ha módosítjuk a témánkat, és így tovább.
Persze megeshet, hogy az alkalmazás, ahova küldeni szeretnénk (pl. a leadott rendelés adatait), nem egészen abban a formában várja el az adatokat, ahogyan a Shopify elküldi azokat. A mi megoldásunk ilyen esetekben az, hogy létrehozunk egy önálló API végpontot, amit úgynevezett lambda funkcióként könnyedén élesíthetünk az AWS felhőn. És ami így azt az áthidaló feladatot is ellátja, hogy a beérkező adatokat átalakítja és továbbítja a célállomásra.
Shopify Storefront & Admin API
Ha a fenti eszközök még mindig nem oldják meg a problémáinkat, végső soron használhatjuk a Shopify Storefront és Admin API-jait.
A Storefront API-n keresztül lényegében kód szintjén elvégezhetünk bármit, amit egy látogató vagy felhasználó is elvégezhet a webáruházunkat böngészve. Listázhatjuk a termékeket, módosíthatjuk a kosár tartalmát, rendeléseket adhatunk le. Valamint: hozzáférhetünk a cikkek, kollekciók, termékek, metafieldek, metaobjektek tartalmához – de nem módosíthatjuk őket. A Storefront API-n keresztül akár fel is építhetünk egy teljes, egyedi fejlesztésű storefrontot, amelynek a Shopify a tartalomkezelője az admin felületén keresztül.
A Storefront API-t egyszerűen integrálhatjuk a Liquid témánkba. A Shopify elérhetővé tett a fejlesztők számára egy „Storefront API Client” nevű könyvtárat, amivel egyszerűen hozzáférhetünk a Storefront API-hoz JavaScripten keresztül. Mi azonban ennél egy lépéssel tovább mentünk. A mi megoldásunk a sokkal modernebb TypeScript és GraphQL technológiák használata a Storefront API-val való kommunikációhoz. Ezekkel az eszközökkel sokkal biztonságosabban tudunk kommunikálni a Storefront API-val, ugyanis a fejlesztés során segítenek tájékozódni és kommunikálni velünk, hogy milyen adatokat fogad és milyen adatokat ad vissza számunkra a Shopify rendszere.
-
a TypeScript és GraphQL kód
A Reacthoz hasonlóan a fejlesztés végeztével a TypeScript és GraphQL kódunkat is egyszerű JavaScriptre fordítjuk. Majd egy sima .js fájlként beimportáljuk a témánkba.
A másik API, amit a Shopify a rendelkezésünkre bocsát, az úgynevezett Admin API. Míg a Storefront API-t nyugodtan használhatjuk a kliensoldalon – ugyanis nem képes többre, mint amennyit a felhasználó is képes a weboldalunk használatával – , az Admin API-n keresztül szenzitív és kritikus módosításokat hajthatunk végre a webáruházunk tartalmán. Az Admin API így kizárólag a szerveroldalon használható, vagy egyszeri futtatásra szánt scriptekhez, mint pl. termékek vagy blogbejegyzések importálásához.
A motorháztető alatt minden egyes Shopify app az Admin API-t használja arra, hogy befolyásolja a webshopunk működését. Az Admin API-n keresztül módosíthatunk olyan szenzitív információkat, mint a felhasználóink adatai, a termékeink, metafieldjeink, metaobjectjeink stb. tartalma. Így az ügyfeleink igényétől függően akár le is fejleszthetjük számukra a saját egyedi Shopify alkalmazásukat. Ami így pontosan azt csinálja, amit az üzleti igényeik megkövetelnek.
A Shopify API-kat össze is kapcsolhatjuk a fent említett webhookokkal. Így amikor a saját API végpontunk megkapja az adatokat a kiválasztott esemény során a Shopify rendszerétől, visszanyúlhat a webshopunkba és módosításokat végezhet rajta.
Webáruház: egyedi fejlesztés, Shopify büdzsé
A tapasztalataink alapján ezek az eszközök elegendőnek bizonyulnak arra, hogy kielégítsük az ügyfeleink üzleti igényeinek elsöprő többségét. Való igaz, nem annyira elegánsan és könnyen kezelhetően, mint egy egyedi webshopnál, de a webáruház látogatói számára megkülönböztethetetlen végeredménnyel. A checkout-oldal módosításának kivételével – ami egy teljesen zárt rendszer, amibe kizárólag a Shopify Plus előfizetőknek engednek némi egyedi fejlesztést és módosítást – a fentiekkel még az elsőre extrémnek hangzó igényekre is sikerül megoldásokat találnunk.
Tehát azzal, hogy az egyedi fejlesztésű webáruházakon edződött szoftverfejlesztőink tudását és tapasztalatát alkalmazzuk a Shopify rendszerére, sikerült hatalmas mértékben eltörölnünk azokat a korlátokat, amik közé első ránézésre belekényszeríti az oldalt egy webshop motor. Természetesen, minél több egyedi fejlesztést igényel egy projekt, annál inkább megnövekednek a szükséges fejlesztői munkaórák, és annál költségesebbé válik a projekt. Azonban ez még mindig sokkal inkább pénztárcakímélő megoldás, mint egy nulláról induló, teljesen egyedi fejlesztés
Táborszki Bálint
kosárérték hírlevél
Fontos, használható, eladást növelő tippek, trükkök, infók, tanulmányok, arcok.
Iratkozz fel most!





