Konturas.lt
LTEN
← Visi darbai

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į.

2023–2025·Sukūrimas, dizainas, architektūra, palaikymas·Iteracinis (12+ mėn.)·Premium gyvūnų maistas · D2C prenumerata
Aplankyti garrdu.lt
Garrdu — screenshot

TL;DR — kuo skiriasi

  • 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

Situacija

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

Kaip priėjome

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

Kas pasikeitė

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.


Naratyvas

Kaip tai sukurta

01 / PRADŽIA

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.

02 / POZICIJA

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ą.

03 / APKLAUSA

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.

Garrdu apklausos žingsnis – šuns parametrų pasirinkimas
Apklausos žingsnis · serverinis progreso išsaugojimas

04 / SEKIMAS

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.

05 / EL. PAŠTAS

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.

06 / GRĮŽIMAS

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.

06b / PRISTATYMAS

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.

LP Express paštomatų pasirinkimo modalas su miestų grupavimu
LP Express paštomatų pasirinkimas · LT / LV / EE · paieška su klaidų tolerancija

07 / GREITIS

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.

08 / VIDUS

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.

09 / INFRA

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.


Ekspertizė

Mokėjimai – trys kanalai, vienas srautas

[ Payments + Subscriptions ]

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

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.

[ Cart · One-time vs Subscription ]
Garrdu krepšelis su vienkartinio pirkimo ir prenumeratos perjungimu
Krepšelis · vienkartinis pirkimas ↔ prenumerata · vienas srautas

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.


Pristatymas

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.

LP Express paštomatų sąrašas su miestų grupavimu
Paštomatų pasirinkimo modalas · LT / LV / EE

Sąsaja

Mobiliuose telefonuose

Garrdu pagrindinio puslapio hero mobiliame įrenginyje
Pagrindinis · hero
Garrdu produktų sąrašas mobiliame įrenginyje
Produktų sąrašas
Garrdu pagrindinis puslapis su atvertu krepšeliu
Krepšelio modalas
Garrdu apmokėjimo žingsnis mobiliame įrenginyje
Apmokėjimas · mobilus

Technika

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-endVite · React 18 · rankinis SSR · react-helmet-async
Back-endNode.js · Express · TypeScript · Zod
DBPostgreSQL · Prisma (~30 modelių)
EilėsRedis · BullMQ (4 darbuotojai)
MokėjimaiStripe (kortelė + Apple/Google Pay) · Makecommerce (Baltijos šalių bankai)
SekimasPostHog (proxied) · Meta CAPI · GeoIP2 · event-ID dedup
El. paštasVidinis variklis · planuoklis · kampanijų grandinės
Auth / saugaJWT · bcrypt · audito žurnalas · užklausų ribojimas (2 sluoksniai)
GDPRSutikimo įvykiai · privatumo politikos versijų įrašai · atsisakymo žetonai
OpsDocker · Coolify · nginx · PM2 · Retool prietaisų skydeliai
i18ni18next + http-middleware (LT / EN)
GreitisServerinis SSR · LQIP užuominos · WebGL gradientas
Vite + React 18Hand-rolled SSRExpress + PrismaPostgreSQLRedis + BullMQStripe (kortelė + Apple/Google Pay)Makecommerce (Baltijos šalių bankai)PostHog proxyMeta CAPIMaxMind GeoIP2Docker · Coolify · nginx · PM2i18next (LT/EN)

AI / Automatizacijos

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.


Iššūkiai

Ką teko išspręsti

01

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ų.

02

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.

03

Į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.

04

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.

05

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.

06

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.

07

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.

08

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ą.

09

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.


Privalumai

Kuo lenkia standartą

01Visa 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ą.

02Atribucija po Safari ITP

Serverinis sekimas reiškia, kad Meta ir Google pirkimo signalą gauna ir tada, kai naršyklė tyli. Optimizacija nelieka aklame lange.

03Apklausa vietoje žmogaus konsultacijos

Porcija ir pristatymo dažnis sudaromi pagal šuns svorį, amžių, aktyvumą ir alergijų statusą. Shopify plėtinys šio darbo neatlieka.

04Trys 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.

05Krepšelio atstatymo grandinė

Ne pavienis priminimas, o grandinė, kuri pati nutrūksta užsakymui įvykus ar prenumeratai atsisakius. Pakeičia brangų išorinį įrankį.

06Vidinis 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ų.

07Greitis 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.

08GDPR įrašytas į pamatus

Sutikimo įvykiai, audito žurnalas, atsisakymo grandinė – be papildomų plėtinių ir be teisinės rizikos pleistro.

09Prekės ženklo charakteris

Animuotas apmokėjimo srautas, vidinis hero gradientas, individualūs modalai. Klientui matosi, kad tai – ne dar viena Shopify šablono parduotuvė.

10Prognozuojama sąskaita

Fiksuotas mėnesinis serverio kaštas, be procento nuo pardavimo ir be staigmenų sausį.


Palyginimas

Garrdu vs. standartas

MetrikaShopify + plėtiniaiGarrdu
Mėnesinė SaaS prenumeratų sumanuo 600 €0 € (visi sprendimai sukurti individualiai)
Mokėjimo kanalai apmokėjimo lange1–23 (kortelė · Apple/Google Pay · banko nuoroda per Makecommerce)
Reklamos sekimas po Safari ITPDalinis (tik naršyklė)Pilnas (serverinis + dedublikacija)
Prenumeratos personalizacijaŠablonas, vienodas visiemsPagal apklausos duomenis (porcija + dažnis)
Krepšelio atstatymasPlėtinys su mokesčiu už profilįIndividualus vidinis sprendimas, be mėnesinio mokesčio
Pirmas piešinys mobiliajameŠabloninis JS karkasasServerinis SSR
Lietuviškas SEO matomumasPlėtinys + pavėluotas turinys po hidratacijosServerinis SSR su lietuviškomis meta žymomis nuo pirmo baito
Klientų duomenų nuosavybėPriklauso platformai100 % priklauso jums

Pamatyti gyvai — Garrdu parduotuvė


Skaičiai

Rezultatai

Mokėjimo kanalai

+1–2 kanalai

1–23 viename sraute

Prenumeratos personalizacija

Individuali kiekvienam šuniui

ŠabloninėPagal apklausą

Reklamos matomumas po Safari ITP

Atribucija nelieka aklame lange

DalinisPilnas

Mėn. SaaS prenumeratos

Visi sprendimai sukurti individualiai

nuo 600 €0 €

Pirmas piešinys

Greičiau

JS karkasasServerinis 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 turinysSSR + 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.