Sava el. parduotuvė · prenumerata · D2C
Garrdu
Aukščiausio lygio ir naujausių tendencijų el. parduotuvė. Panašaus lygio Shopify projektai kainuoja nuo 600 € per mėnesį.
- Metai
- 2023–2025
- Vaidmuo
- Sukūrimas, dizainas, architektūra, palaikymas
- Trukmė
- Iteracinis (12+ mėn.)
- Sritis
- Premium gyvūnų maistas · D2C prenumerata
Užvedę pelę ant peržiūros, pamatysite visą puslapį.
Aplankyti garrdu.ltTrumpai
- 3 mokėjimo kanalai (kortelė su 3DS, Apple Pay / Google Pay, Baltijos šalių bankų nuorodos per Makecommerce) viename užsakymo sraute
- Apklausa pagal šuns svorį, amžių ir aktyvumą sudaro porcijas ir pristatymo grafiką
- Serverinis konversijų sekimas: Meta ir Google ir toliau gauna pirkimo signalą po Safari ITP
- Vidinis el. pašto ir palikto krepšelio variklis vietoj Klaviyo profilio mokesčio
- Prognozuojama mėnesinė serverio sąskaita vietoj Shopify procento ir SaaS prenumeratų sankaupos
Iššūkis
Premium šunų maisto prekės ženklui reikėjo tiesioginio pardavimo kanalo Lietuvoje. Kiekvienam šuniui turi būti apskaičiuojamas porcijos dydis, šėrimo dažnis ir prenumeratos grafikas pagal amžių, svorį, kūno tipą ir aktyvumą. Tipinis Shopify plėtinys to nedaro; WooCommerce derinys reikštų šešių–septynių SaaS* prenumeratų krūvą, kuri tarpusavyje nesikalba ir brangsta proporcingai augimui.

Sprendimas
Pradėjome nuo tuščio failo. Viena duomenų bazė, vienas tiesos šaltinis apie užsakymą. Express karkasu pagrįstas back-end su Prisma. Vite + React 18 front-end su rankiniu SSR* ir react-helmet-async*. Trys mokėjimo kanalai po viena būsenos mašina*. BullMQ* eilės palikto krepšelio ir el. pašto grandinėms. Konversijų sekimas iš serverio, ne tik iš naršyklės. Auditas, sutikimai ir administravimas suprogramuoti viduje.

Rezultatas
Klientas gavo el. parduotuvę, kuri veikia kaip rimto D2C* verslo branduolys: trys mokėjimo būdai viename sraute, pagal apklausą sudaroma prenumerata, vidinis el. pašto variklis, serverinis konversijų sekimas, atlaikantis Safari ITP ir reklamų blokavimą. Jokio SaaS* prenumeratos mokesčio, jokio procento nuo pardavimo.

Kaip tai sukurta
Pradžios taškas
Garrdu atėjo su užduotimi, į kurią šablonai neatsako: kaip parduoti premium šunų maistą kaip prenumeratą, kur kiekvienam šuniui pagal amžių, svorį, kūno tipą ir aktyvumą sudaromas porcijos dydis, šėrimo dažnis ir krepšelis – ir visa tai veiktų vienodai sklandžiai telefone ketvirtą valandą nakties ir biure pirmadienio rytą. Shopify pasaulyje plėtiniais to nepasieksi. Tad nepradėjome nuo temos pasirinkimo – pradėjome nuo tuščio failo.
Kodėl ne Shopify
Auganti lietuviška parduotuvė anksčiau ar vėliau atsiduria toje pačioje vietoje: platformos mokestis, prenumeratos plėtinys, el. pašto įrankis, palikto krepšelio įrankis, papildomo pardavimo įrankis, atsiliepimų ir lojalumo plėtiniai, apklausų konstruktorius. Kiekvienas po 30–300 € per mėnesį, kiekvienas su atskira duomenų sala ir kiekvienas lūžta, kai gretimas atsinaujina. Garrdu šį etapą peržengė iš karto: visa logika gyvena vienoje sistemoje – viena duomenų bazė, vienas tiesos šaltinis apie užsakymą, klientą ir prenumeratą.
Apklausa, atliekanti pardavėjo darbą
Garrdu apklausa per devynis žingsnius surenka informaciją apie šunį ir paverčia ją konkrečiu produktu krepšelyje bei prenumeratos pristatymo grafiku.
Pirmuose penkiuose žingsniuose šeimininkas paspaudimu pasirenka atsakymus, nieko nerašydamas: šuns amžiaus grupė (šuniukai, suaugę, senjorai – nuo 2 mėn. iki 12+ metų), aktyvumo lygis, virškinimo niuansai, išrankumas maistui ir alergijų statusas. Šeštas žingsnis atsiranda tik tada, kai ankstesniame atsakyme įtariamos arba patvirtintos alergijos – šeimininkas pažymi konkrečius baltymus (vištieną, kalakutieną, jautieną, kiaulieną ar elnieną), kurių šuo netoleruoja. Septintame įvedamas svoris kilogramais, aštuntame – šuns vardas, devintame – el. pašto adresas. Pastarieji du paimami tik tada, kai žmogus jau įsitraukęs.
Iš atsakymų deterministinė logika* (be jokio LLM* spėjimo) pagal griežtą prioritetų tvarką – alergijos prieš virškinimo problemas, virškinimas prieš aktyvumą – parenka vieną iš keturių baltymų. Patvirtinta alergija visada uždaro tą baltymą; jei alergijų nėra, dažnos virškinimo problemos veda į elnieną, aukštas aktyvumas su stabiliu virškinimu – į jautieną, o šuo be ypatumų gauna kalakutieną kaip kasdienį pasirinkimą. Pasirinkus baltymą, pagal šuns svorį iš produkto specifinės lentelės tiesine interpoliacija apskaičiuojama paros porcija gramais (pvz., 10 kg šuniui – apie 100 g), iš jos – reikiamų pakuočių skaičius mėnesiui ir pristatymo dažnis.
Apklausos eiga saugoma serveryje, todėl pradėjus pildyti darbo kompiuteryje galima užbaigti telefonu vakare – sesijos susiejamos pagal el. paštą net tada, kai naršyklių slapukai skirtingi. Po atsitiktinio uždarymo atsiveria tas pats klausimas, kuriame žmogus buvo sustojęs. Užbaigus apklausą, produktas atsiduria krepšelyje su jau apskaičiuota porcija ir pristatymo dažniu.

Atribucija, atlaikanti Safari ITP
Per pastaruosius dvejus metus naršyklės apkarpė didelę dalį duomenų, kuriais remiasi Shopify tipo parduotuvės. Iš pirmo žvilgsnio atrodo, kad reklamos konvertuoja prasčiau, nors realybėje jos tiesiog nustojo matyti. Garrdu konversijų sekimas vyksta ne tik naršyklėje: pagrindinė įvykių grandinė siunčiama iš serverio per CAPI* – pirkimas, prenumeratos pradžia, apklausos užbaigimas – kiekvienas su unikaliu event ID*, geografiniu kontekstu ir dedublikacija*, kad Meta ir Google tą patį įvykį suskaičiuotų vieną kartą. Šalia veikia kokybės monitorius, pastebintis sugedusį įvykį dar prieš biudžetui pradedant degti.
Vidinis variklis vietoj Klaviyo
Patvirtinimo laiškai, palikto krepšelio priminimai, kampanijos, atsisakymo nuorodos, klientų segmentai – suprogramuoti viduje. Eilė, planuoklis, atidarymų ir paspaudimų stebėjimas, vieno paspaudimo atsisakymo srautas, atitinkantis GDPR* reikalavimus be papildomų plėtinių. Klientų bazei augant, sąskaita didėja gerokai lėčiau nei pagal Klaviyo profilio mokestį – proporcinga serverio resursams, ne klientų skaičiui.
Palikto krepšelio grandinė
Palikto krepšelio grandinė siunčia tris laiškus: pirmas priminimas po valandos, antras kitą dieną, trečias su produkto santrauka ir nuolaida – bet tik tada, kai logika rodo, kad žmogus dvejoja. Pirkėjui tuo tarpu užbaigus užsakymą arba atsisakius prenumeratos, grandinė nutraukiama. Pasibaigus atstatymo žetonui, jos kelias uždaromas be paskutinio laiško.
LP Express paštomatai – vidinis sluoksnis
Lietuvos pirkėjas tikisi pasiimti paketą iš artimiausio paštomato. Paruošto LP Express plėtinio rinkoje paprasčiausiai nėra – kiekvienas, kuriam to reikėjo lietuviškoje parduotuvėje, jį statė pats. Garrdu projektui suprogramavome paštomatų pasirinkimo sluoksnį nuo nulio.
Pradedame nuo viso Baltijos regiono: 1 174 terminalai vienoje paieškoje (447 Lietuvoje, 539 Latvijoje, 188 Estijoje). Visi sukrauti į vieną CSV* duomenų šaltinį su koordinatėmis, miestais ir pašto kodais, atnaujinamą tiesiai iš LP Express. Sąrašas grupuojamas pagal miestus, miestai išrikiuojami abėcėlės tvarka, o kiekvieno miesto terminalai – pagal adresą. Net kai viename mieste yra dvidešimt taškų, jie sustoja logišku eiliškumu.
Paieška neapsiriboja paprastu „prasideda raidėmis…“ filtru. Po danga sėdi Fuse.js* variklis su keturiais svertais: miestas, adresas, terminalo pavadinimas ir pašto kodas. Slenkstis nustatytas tarp 0,4 ir 0,5 – pakankamai laisvas, kad įvedus „Vinius“ pirkėjas rastų Vilniaus taškus, o įvedus „Bazanavič“ – Basanavičiaus g. paštomatus, bet pakankamai griežtas, kad rezultatuose neatsirastų atsitiktinio triukšmo.
Sąsaja persijungia pagal pirkėjo įrenginį: telefone ir lietimui jautrioje planšetėje atsidaro pilnaekranis modalas* su didelėmis paspaudimo zonomis, staliniame kompiuteryje – kompaktiškas išskleidimo komponentas šalia kitų formos laukų. Pasirinkto terminalo informacija (pavadinimas, gatvė, miestas, pašto kodas) keliauja į užsakymą, LP Express etiketę ir patvirtinimo el. laišką. Prenumeratos atveju terminalas išsaugomas kitam siuntimui – pakartotiniam užsakymui jo nereikia pasirinkti iš naujo.

Greitis
Pirmas vaizdas, kurį pamato klientas, paruošiamas serveryje per SSR*, ne kraunamas vėliau per JavaScript. Todėl Google paieškoje iškart matomas Garrdu turinys, o ne tuščias karkasas. Paveikslėliams iš anksto rezervuojama vieta per LQIP užuominas, kad elementai nepasislinktų pirkėjui jau pradėjus paspausti. Hero zonos gradientas piešiamas realiu laiku per WebGL* – ne įkeliamas kaip didelis fonas. Nematomas darbas, bet būtent dėl jo Core Web Vitals* rodikliai Lighthouse* audite šviečia žaliai.
Administravimas ir GDPR pėdsakas
Užkulisiuose veikia vidinis administravimo sluoksnis: užsakymai, kuponai, kampanijos, klientai, prenumeratos ir audito žurnalas, kuriame kiekvienas vidinis veiksmas turi atskirą eilutę. Klientų sutikimai saugomi kaip atskiri įrašai – kada, dėl ko ir su kokios redakcijos privatumo politika sutikta. Jei kada nors ateis užklausa iš Valstybinės duomenų apsaugos inspekcijos, atsakymas užtrunka minutes, ne savaites.
Infrastruktūra ir prognozuojama sąskaita
Garrdu sukasi mūsų prižiūrimuose serveriuose: konteineriai per Docker, reverse-proxy* priekyje, sveikatos patikros* ir kelis kartus per savaitę vykstantis diegimas*. Jokio Shopify procento nuo pardavimo, Plus plano spaudimo augant ar plėtinių kainoraščio kėlimo sausį. Mėnesinė sąskaita nepriklauso nuo to, ar parduodate 50 ar 5 000 paketų – tik nuo serverio resursų ribos, ties kuria reikia kilstelėti pajėgumus.
Mokėjimai – trys kanalai, vienas srautas
Lietuvoje vienas pirkėjas moka kortele, kitas patvirtina pirštu per Apple ar Google Pay, trečias renkasi banko nuorodą iš savo banko sąrašo. Daugumoje parduotuvių tai trys atskiros sistemos, kurios tarpusavyje nesikalba. Garrdu sistemoje jos suvestos po viena būsenos mašina, kad pinigams keliaujant bet kuriuo iš trijų kelių užsakymas, klientas ir prenumerata atsirastų toje pačioje vietoje.

Mokėjimas kortele
Stripe · 3DS · AVS · saugykla
- 3D-Secure srautas su atskiru pakartojimo langu
- AVS* atmetimo pakartojimas* be naujo kortelės įvedimo
- Žinučių iš Stripe (webhook*) dedublikacija per event ID*
- Saugykloje laikomas žetonas pakartotiniam pirkimui
- Stripe Subscription gyvavimo ciklas susietas su prenumeratos modeliu
Apple Pay / Google Pay
Telefono piniginė · patvirtinimas pirštu
- Pasiūloma automatiškai, kai naršyklė ir įrenginys palaiko
- Pirkėjas neįveda kortelės – patvirtinimas Face/Touch ID arba PIN
- Veikia ir vienkartiniam pirkimui, ir prenumeratos paleidimui
- Apmokėjimo srautas trumpesnis – mažiau krepšelių paliekama paskutiniame žingsnyje
Makecommerce
Baltijos šalių bankų nuorodos · LT / LV / EE
- Pirkėjas renkasi savo banką iš sąrašo ir patvirtina mokėjimą internetinėje bankininkystėje
- Atgalinio kvietimo ciklas suderintas su Stripe būsenomis – ta pati sėkmės šaka
- Banko sąrašas filtruojamas pagal pirkėjo šalį (LT / LV / EE)
- Galiojimo laiko ribos ir trumpas atstatymo langas išspręsti atskira logika
Sėkmingam apmokėjimui įvykus bet kuriuo kanalu, užsakymas, prenumerata ir klientas atsiduria toje pačioje vietoje. Daugelyje el. parduotuvių vienas iš kanalų prilipdytas šone – Garrdu sistemoje visi trys įausti į pagrindinį srautą.
Krepšelis su dviem režimais
Toje pačioje sesijoje pirkėjas gali pasirinkti vienkartinį pirkimą arba prenumeratą – tą patį produktą, tame pačiame krepšelyje, tuo pačiu mokėjimo metodu. Daugelyje el. parduotuvių prenumerata gyvena atskiroje šakoje su atskira sąsaja (dažniausiai per išorinį įrankį – ReCharge, Bold ir pan.). Garrdu sistemoje vienas srautas paleidžia du atskirus gyvavimo ciklus iš to paties krepšelio.

Vienkartinis pirkimas
Viena kortelė · vienas mokestis · užbaigta
- Vienas Stripe PaymentIntent* arba Makecommerce užklausa
- Prireikus įsijungia 3DS, AVS arba Apple/Google Pay sluoksnis
- Po sėkmės iš karto formuojamas užsakymas, kvitas ir LP Express etiketė
- Kortelės duomenys ir webhook’ų laukas neišlieka
- Tinka pirmam pirkimui, dovanai, vienkartiniam testui
Prenumerata
Žetonas saugykloje · pasikartojantys mokesčiai · valdoma iš admino
- Stripe Subscription* už to paties krepšelio (kortelė arba Apple/Google Pay)
- Mokėjimo metodas saugomas Stripe saugykloje, ne pas mus
- Pristatymo dažnis (savaitės arba mėnesiai) – iš apklausos arba pakeičiamas rankiniu būdu
- Webhook’ai apdoroja atnaujinimą, pauzę, nepavykusį nuskaitymą ir atšaukimą
- Klientas mato vieną sąskaitą, vieną siuntą ir vieną dažnio valdymą
Tas pats produktas, tas pats krepšelis, tas pats apmokėjimo langas, bet po jo prasideda dvi skirtingos kelionės. Daugelyje el. parduotuvių prenumerata laikoma atskirai ir su vienkartinio užsakymo logika nesujungta – Garrdu šią ribą peržengia viename objekte.
LP Express integracija nuo nulio
Partneris: LP Express – Lietuvos paštas · terminalai LT / LV / EE
Pristatymo srautas – ta vieta, kur lietuviškos el. parduotuvės dažnai sulūžta: arba siūloma tik pristatymas į duris, arba paštomatas renkamas iš ilgo, nesurūšiuoto sąrašo. Garrdu projektui pastatėme paštomatų pasirinkimo sluoksnį be paruošto plėtinio – tokio rinkoje paprasčiausiai nėra.
- Visi LT, LV ir EE terminalai vienoje paieškoje
- Grupavimas pagal miestus su aiškiai matomomis miestų antraštėmis
- Paieška su klaidų tolerancija (įvedus „Vinius“ randa „Vilnius pst.“)
- Mobiliajame – pilnaekranis modalas*; staliniame – kompaktiškas išskleidimo komponentas
- Kurjerio pristatymas kaip alternatyva tame pačiame žingsnyje
- Terminalo informacija perduodama į užsakymą, etiketę ir patvirtinimo el. laišką
- Pakartotinis užsakymas iš prenumeratos: terminalas išsaugomas iš ankstesnio karto
Smulkmena, kurią lietuvis vertina labiau, nei rodo apklausos: paštomatas, kurį telefone galima rasti per kelias sekundes, vietoj puslapio, kurį tenka atversti darbo kompiuteryje.

Architektūra
Rankiniu būdu sustatytas SSR* ant Vite + React 18. Express back-end su Prisma virš PostgreSQL (apie 30 modelių). Redis + BullMQ* keturioms eilėms (palikto krepšelio atstatymas, transakcinis paštas, rinkodaros kampanijos, el. pašto procesorius). Vidinis autentifikavimo sluoksnis (JWT*, bcrypt*, admin sesijos, audito įvykiai, service API raktai). Diegimas per Docker + Coolify* + nginx + PM2*.
- Front-end
- Vite · React 18 · rankinis SSR · react-helmet-async
- Back-end
- Node.js · Express · TypeScript · Zod
- DB
- PostgreSQL · Prisma (~30 modelių)
- Eilės
- Redis · BullMQ (4 darbuotojai)
- Mokėjimai
- Stripe (kortelė + Apple/Google Pay) · Makecommerce (Baltijos šalių bankai)
- Sekimas
- PostHog (proxied) · Meta CAPI · GeoIP2 · event-ID dedup
- El. paštas
- Vidinis variklis · planuoklis · kampanijų grandinės
- Auth / sauga
- JWT · bcrypt · audito žurnalas · užklausų ribojimas (2 sluoksniai)
- GDPR
- Sutikimo įvykiai · privatumo politikos versijų įrašai · atsisakymo žetonai
- Ops
- Docker · Coolify · nginx · PM2 · Retool prietaisų skydeliai
- i18n
- i18next + http-middleware (LT / EN)
- Greitis
- Serverinis SSR · LQIP užuominos · WebGL gradientas
- Vite + React 18
- Hand-rolled SSR
- Express + Prisma
- PostgreSQL
- Redis + BullMQ
- Stripe (kortelė + Apple/Google Pay)
- Makecommerce (Baltijos šalių bankai)
- PostHog proxy
- Meta CAPI
- MaxMind GeoIP2
- Docker · Coolify · nginx · PM2
- i18next (LT/EN)
Automatizacijos ir foniniai procesai
Keturi BullMQ darbuotojai* valdo tai, ko klientas nemato: palikto krepšelio atstatymą su atstatymo žetonais, transakcinį paštą, rinkodaros kampanijas ir el. pašto procesorių. Apklausos logika – deterministinė, ne LLM* spėjimas – iš atsakymų suskaičiuoja porciją ir prenumeratos pristatymo dažnį. Sekimo grandinė tarp naršyklės Meta Pixel* ir serverinio CAPI* įvykius dedubliuoja per bendrą event ID*.
Ką teko išspręsti
Vienas tiesos šaltinis tarp Stripe ir Makecommerce
Du mokėjimų teikėjai, kurių įvykių semantika nesutampa. Stripe siunčia webhook’us pagal pirkimo gyvavimo ciklą, Makecommerce – pagal trumpalaikių banko nuorodų rezultatus. Reikėjo grandinės, kuri suvestų abiejų pusių baigtis į vieną užsakymo ir prenumeratos įrašą be dublikatų.
Baltijos šalių bankų nuorodos greta globalaus kanalo
Makecommerce atgalinis kvietimas elgiasi kitaip nei Stripe webhook’as: trumpas galiojimo langas, kitokia pakartojimo logika, kiti laukai. Įausti šį kanalą į tą pačią būsenos mašiną kaip Stripe užtruko ilgiau nei pats vizualas.
Įvykių dedublikacija per visą pardavimo kelią
Naršyklės Meta Pixel ir serverinis CAPI turi siųsti tą patį pirkimo įvykį, ne du. Jei event ID, laikas arba kontekstas išsiskiria, Meta optimizuoja į iškreiptą paveikslą. Dedublikaciją parašėme kaip atskirą biblioteką su savais testais, kad ją būtų galima keisti neperžiūrint viso piltuvėlio.
Sutikimų laiko žemėlapis
Pixel ir serveriniai įvykiai elgiasi skirtingai pagal sutikimų juostos būseną. Reikėjo tiksliai apibrėžti, kuris įvykis išleidžiamas iki sutikimo (ir kokia forma), o kuris laukia patvirtinimo – kitaip pažeidžiamas GDPR arba prarandama konversija.
Palikto krepšelio ribiniai atvejai
Atstatymo žetonas pasibaigia. Klientas užbaigia pirkimą tarp dviejų priminimų. Atsisako prenumeratos vidury grandinės. Kiekvienam scenarijui parašėme aiškų išėjimą, kad gavėjas niekada negautų laiško apie tai, ko jau nebėra.
Apklausos sesijos pernešimas tarp įrenginių
Pildymo pradžia kompiuteryje, pabaiga telefone vakare; slapukai skirtingi, bendros sesijos nėra. Be serverinio raktelio, susieto su el. paštu, tai būtų buvęs duomenų praradimas, ne funkcija.
Mokėjimo žingsnių derinys po vienu užsakymu
3DS patvirtinimas, AVS pakartojimas, Apple ar Google Pay pasiūlymas, Makecommerce šokis pirmyn–atgal į banką – kiekvienas turi tilpti į savo teikėjo taisykles. Klaidingas žingsnis baigiasi atmetimu, kurį pamatai ne pirkėjo dialoge, o telemetrijoje.
Serverio pusėje sukabintas i18n
Lietuvių kalbos meta žymos turi atsidurti serverio sugeneruotame HTML dar prieš pirmą piešinį, o vėlesnė hidratacija negali jų perrašyti. Smulkmena, dėl kurios Google mato Garrdu kaip lietuvišką prekės ženklą, ne angliškų raktažodžių aidą.
Diegimo grandinė be staigmenų
Atskiri Dockerfile variantai produkcijai ir testinei aplinkai, skirtingi nginx konfigai, vienas procesų prižiūrėtojas. Visi privalo elgtis identiškai abiejose pusėse – antraip pirkėjo akivaizdoje iškyla klaida, kurios nebuvo nė vienoje testinėje paleidimo versijoje.
Kuo lenkia standartą
Visa logika viename name
Vietoj šešių–septynių SaaS prenumeratų, kalbančių per webhook’us, čia veikia viena duomenų bazė ir vienas back-end. Kiekviena funkcija mato visą kontekstą.
Atribucija po Safari ITP
Serverinis sekimas reiškia, kad Meta ir Google pirkimo signalą gauna ir tada, kai naršyklė tyli. Optimizacija nelieka aklame lange.
Apklausa vietoje žmogaus konsultacijos
Porcija ir pristatymo dažnis sudaromi pagal šuns svorį, amžių, aktyvumą ir alergijų statusą. Shopify plėtinys šio darbo neatlieka.
Trys mokėjimo būdai, vienas srautas
Kortelė su 3DS, Apple/Google Pay ir Baltijos šalių bankų nuorodos per Makecommerce – su tomis pačiomis pasekmėmis užsakymui. Mažiau krepšelių, paliktų paskutiniame žingsnyje.
Krepšelio atstatymo grandinė
Ne pavienis priminimas, o grandinė, kuri pati nutrūksta užsakymui įvykus ar prenumeratai atsisakius. Pakeičia brangų išorinį įrankį.
Vidinis el. pašto variklis
Funkciškai panašus į Klaviyo, tik be mokesčio už kiekvieną aktyvų profilį. Rinkodaros sąskaita auga gerokai lėčiau už klientų skaičių.
Greitis nuo pirmos dienos
Serverinis pirmas piešinys, optimizuotos nuotraukos, iš anksto rezervuotos vietos. Core Web Vitals čia – ne paskutinė užduotis, o starto sąlyga.
GDPR įrašytas į pamatus
Sutikimo įvykiai, audito žurnalas, atsisakymo grandinė – be papildomų plėtinių ir be teisinės rizikos pleistro.
Prekės ženklo charakteris
Animuotas apmokėjimo srautas, vidinis hero gradientas, individualūs modalai. Klientui matosi, kad tai – ne dar viena Shopify šablono parduotuvė.
Prognozuojama sąskaita
Fiksuotas mėnesinis serverio kaštas, be procento nuo pardavimo ir be staigmenų sausį.
Garrdu ir standartinis sprendimas
| Kas lyginama | Shopify + plėtiniai | Garrdu |
|---|---|---|
| Mėnesinė SaaS prenumeratų suma | nuo 600 € | 0 € (visi sprendimai sukurti individualiai) |
| Mokėjimo kanalai apmokėjimo lange | 1–2 | 3 (kortelė · Apple/Google Pay · banko nuoroda per Makecommerce) |
| Reklamos sekimas po Safari ITP | Dalinis (tik naršyklė) | Pilnas (serverinis + dedublikacija) |
| Prenumeratos personalizacija | Šablonas, vienodas visiems | Pagal apklausos duomenis (porcija + dažnis) |
| Krepšelio atstatymas | Plėtinys su mokesčiu už profilį | Individualus vidinis sprendimas, be mėnesinio mokesčio |
| Pirmas piešinys mobiliajame | Šabloninis JS karkasas | Serverinis SSR |
| Lietuviškas SEO matomumas | Plėtinys + pavėluotas turinys po hidratacijos | Serverinis SSR su lietuviškomis meta žymomis nuo pirmo baito |
| Klientų duomenų nuosavybė | Priklauso platformai | 100 % priklauso jums |
Pažiūrėkite patys: Garrdu parduotuvė
Kas pasikeitė
- Mokėjimo kanalai
- +1–2 kanalai
- 1–2 → 3 viename sraute
- Prenumeratos personalizacija
- Individuali kiekvienam šuniui
- Šabloninė → Pagal apklausą
- Reklamos matomumas po Safari ITP
- Atribucija nelieka aklame lange
- Dalinis → Pilnas
- Mėn. SaaS prenumeratos
- Visi sprendimai sukurti individualiai
- nuo 600 € → 0 €
- Pirmas piešinys
- Greičiau
- JS karkasas → Serverinis SSR
- GDPR auditas
- Minutės, ne savaitės
- Plėtinių rinkinys → Įrašyta į DB
- Lietuviškas SEO matomumas
- Pilnas indeksavimas iš pirmo apsilankymo
- Plėtinys + pavėluotas turinys → SSR + lietuviškos meta žymos nuo pirmo baito
- Apklausos žingsnių logika
- Porcija ir baltymas parinkti deterministiškai
- Vienodas srautas visiems → Šakojasi pagal alergijas ir aktyvumą
Konkretūs sprendimo receptai – event ID schema, Stripe saugyklos ir būsenų grandinė, apklausos skaičiavimo formulė, palikto krepšelio laiko tinklas, diegimo seka – viešai nepateikiami. Rimtam užsakovui pristatomi atskirai.
Reikia panašios svetainės?
Papasakokite, ką sumanėte. Kiekvieną užklausą perskaitome patys.
Aptarti projektą
