Konturas.lt
LTEN
← Visi darbai

E-komercijos platforma · multi-tenant SaaS

Vantemo

Daugelio parduotuvių e-komercijos platforma: parduotuvės sąsaja, mokėjimai, laiškai, analitika ir konversijų sekimas serveryje veikia vienoje sistemoje – be atskirų SaaS įrankių rinkinio.

2024–2026·Sukūrimas, dizainas, architektūra·Tęstinis·E-komercijos SaaS · savas produktas
Aplankyti vantemo.com
Vantemo — screenshot

TL;DR — kuo skiriasi

  • Viena multi-tenant sistema: kiekviena parduotuvė su izoliuotais duomenimis, bendras branduolys – API, valdymo skydelis, mokėjimai ir foniniai procesai
  • Konversijų sekimas iš serverio (Meta, TikTok, Google Ads) su dublikatų šalinimu ir sutikimų valdymu – pardavėjui nereikia diegti pikselių
  • Vizualus puslapių redaktorius su keliais šimtais komponentų – parduotuvės puslapiai dėliojami be kodo
  • Mokėjimai per Stripe Connect ir Baltijos šalių bankų nuorodas viename atsiskaitymo sraute
  • Palikto krepšelio grandinė, el. laiškų rengyklė ir SMS – atskiruose foniniuose procesuose, neapkraunant parduotuvės
  • AI asistentas generuoja turinį (aprašymus, SEO antraštes, vertimus), o išoriniai AI agentai per MCP serverį valdo parduotuvę natūralia kalba – saugiai apriboti iki vienos parduotuvės

Situacija

Iššūkis

Pradedantysis pardavėjas susiduria su ta pačia kliūtimi: kol parduotuvė pradeda veikti, jau reikia kelių atskirų įrankių – platformos, konversijų sekimo, el. laiškų, palikto krepšelio grandinės ir mokėjimų. Kiekvienas su atskira sąskaita, atskira duomenų saugykla ir techniniu derinimu, kurio pradedantysis dažnai negali atlikti pats. Tipinė platforma šį darbą perkelia pardavėjui.


Sprendimas

Kaip priėjome

Vantemo sudėliotas kaip viena multi-tenant sistema. Kiekviena parduotuvė turi izoliuotus duomenis, bet visos remiasi tuo pačiu branduoliu – API, valdymo skydeliu, mokėjimais ir foniniais procesais. Konversijų sekimas Meta, TikTok ir Google Ads platformose vyksta iš serverio su dublikatų šalinimu, tad pardavėjui nereikia pačiam diegti pikselių. Parduotuvės puslapiai dėliojami vizualiu redaktoriumi, o turinys nuo pradžių ruošiamas paieškai ir greitiems Core Web Vitals rodikliams.


Rezultatas

Kas pasikeitė

Rezultatas – veikianti platforma, kurioje nauja parduotuvė paleidžiama be atskirų integracijų: sukonfigūruojami mokėjimai, sudedamas katalogas, dėliojami puslapiai, o serverinis sekimas ir laiškų automatika veikia nuo pirmos dienos. Produktas šiuo metu ruošiamas viešam paleidimui. Portfelyje rodoma architektūra ir jau sukurtos galimybės; pardavimų rodikliai bus matuojami realioje rinkoje po paleidimo.


Naratyvas

Kaip tai sukurta

01 / PREMISA

Kodėl platforma, ne viena parduotuvė

Vantemo pradžios klausimas buvo platesnis nei viena parduotuvė: kaip padaryti, kad bet kurią parduotuvę būtų galima paleisti greitai ir be techninio derinimo. Pradedantysis pardavėjas paprastai surenka įrankių rinkinį – platformą, sekimą, laiškus, mokėjimus – ir kiekvieną jungia atskirai. Vantemo šį rinkinį pakeičia vienu branduoliu: tai, kas įprastai išskaidyta po kelias SaaS prenumeratas, čia veikia vienoje sistemoje.

02 / IZOLIACIJA

Daug parduotuvių, vienas branduolys

Kiekviena parduotuvė platformoje turi savo duomenis – produktus, užsakymus, klientus – ir nemato kitų. Izoliacija sutvarkyta duomenų bazės sluoksnyje: kiekviena užklausa automatiškai apribojama iki tos parduotuvės, tad atskiro „neužmiršk patikrinti“ žingsnio programuotojui nelieka. Tą patį branduolį naudoja visos parduotuvės, todėl naują parduotuvę užtenka sukonfigūruoti, o ne kurti iš naujo.

03 / REDAKTORIUS

Puslapiai dėliojami be kodo

Parduotuvės puslapiai – pradinis, kategorijos, kampanijos – dėliojami vizualiu redaktoriumi iš paruoštų komponentų. Pardavėjas keičia turinį ir struktūrą pats, be programuotojo, o komponentai jau pritaikyti greičiui ir paieškai. Tame pačiame redaktoriuje dėliojamos ir apklausos: pirkėjas atsako į kelis klausimus, o pagal atsakymus parenkami tinkami produktai.

04 / MOKĖJIMAI

Mokėjimai pritaikyti Baltijos rinkai

Atsiskaitymo srautas jungia dvi pirkėjo įpročiams svarbias dalis: korteles per Stripe ir tiesiogines Baltijos šalių bankų nuorodas per MakeCommerce. Kiekviena parduotuvė turi atskirą išmokų paskyrą, tad pinigai keliauja tiesiai pardavėjui. Pirkėjui tai atrodo kaip vienas srautas, nepriklausomai nuo pasirinkto mokėjimo būdo.

05 / FONAS

Foniniai procesai, neapkraunantys parduotuvės

Laiškai, palikto krepšelio grandinė, SMS, sąskaitų PDF ir reklamos duomenų sinchronizacija veikia atskirame procese, eilėse. Parduotuvė lieka greita, nes sunkūs darbai atliekami fone ir, jei reikia, kartojami. Kiekviena parduotuvė turi atskirą laiškų siuntimo konfigūraciją, tad vienos parduotuvės srautas nedaro įtakos kitos pristatomumui.

06 / GREITIS

Greitis ir SEO – nuo pirmos dienos

Parduotuvės pateikiamos iš serverio, su paieškai paruoštu turiniu, struktūriniais duomenimis ir hreflang keliomis kalbomis. Greičio ir prieinamumo rodikliai tikrinami automatiškai prieš kiekvieną pakeitimą – jei puslapis sulėtėja arba nukrenta Lighthouse įvertinimas, pakeitimas nepraeina. Taip greitis išlaikomas ilgainiui, ne tik paleidimo dieną.

07 / AGENTAI

Parduotuvė, valdoma natūralia kalba

Visas administravimo API sutrauktas į nedidelį AI įrankių rinkinį – katalogas, užsakymai, analitika, turinys, nustatymai. Todėl parduotuvę galima valdyti kalbant: „pridėk šį produktą“, „parodyk praėjusios savaitės pajamas“, „pakeisk užsakymo būseną“. Tas pats įrankių rinkinys veikia ir asistentui valdymo skydelyje, ir išoriniam AI agentui – Claude Desktop, ChatGPT ar Cursor – prisijungiančiam per MCP serverį.

08 / RIBOS

AI agentas, neperžengiantis parduotuvės ribų

Sunkioji dalis – leisti AI agentui veikti vienoje parduotuvėje ir niekada nepaliesti kitos. Kiekviena jungtis naudoja API raktą, susietą su viena parduotuve; parduotuvės identifikatorius visada imamas iš rakto, o ne iš to, ką atsiunčia agentas, tad suklastotas identifikatorius nieko nepakeičia. Raktai gali būti apriboti – tik skaitymui arba tik tam tikroms sritims – o užklausų dažnis ribojamas.


Sekimas

Konversijų sekimas, atlaikantis privatumo apribojimus

[ Server-side conversion tracking ]

Naršyklėje veikiantis sekimas po iOS privatumo pakeitimų ir reklamų blokavimo praranda dalį pirkimo signalų. Vantemo signalus į reklamos sistemas siunčia iš serverio, su dublikatų šalinimu ir papildomu sutapatinimu – kiekvienai parduotuvei, be rankinio pikselių diegimo.

Meta

Conversions API · dedup · advanced matching

  • Pirkimo ir krepšelio įvykiai siunčiami iš serverio
  • Naršyklės ir serverio įvykiai sutapatinami, kad nebūtų skaičiuojama du kartus
  • Papildomas pirkėjo duomenų sutapatinimas geresniam priskyrimui

TikTok

Events API

  • Serveriniai įvykiai be priklausomybės nuo naršyklės
  • Vieningas įvykių žodynas su kitais kanalais

Google Ads

Enhanced Conversions

  • Konversijos perduodamos su sutapatinimo duomenimis
  • Veikia ir tada, kai naršyklės žyma neužsikrauna

Sutikimai

Consent Mode v2

  • Įvykiai siunčiami pagal vartotojo sutikimą
  • Sutikimo būsena perduodama kartu su signalu

Paspaudimo žymės

gclid · gbraid · wbraid · fbclid · ttclid

  • Reklamos paspaudimo žymės išsaugomos atvykus
  • Perduodamos kartu su pirkimu tiksliam priskyrimui

Naršyklės analitika

GA4 · PostHog

  • Kliento pusės analitika šalia serverinių kanalų
  • Bendras vaizdas nuo apsilankymo iki pirkimo

Pardavėjas sujungia paskyras, o pikselių diegimą, maišymą ir įvykių siuntimą platforma atlieka pati.


Technika

Architektūra

Branduolys – API ir bendra duomenų bazė, kuriais remiasi visos parduotuvės. Sąsajos sukurtos su Next.js, foniniai darbai – atskirame procese su eilėmis. Parduotuvių duomenys izoliuojami duomenų bazės sluoksnyje, tad viena parduotuvė nemato kitos. Visa sistema sudėliota kaip monorepo su bendromis bibliotekomis ir tipų tikrinimu nuo sąsajos iki duomenų bazės.

Front-endNext.js 16 · React 19 · Tailwind
APINode.js · Hono · TypeScript · Zod
DBPostgreSQL · Prisma (200+ modelių)
Foniniai darbaiBullMQ · Redis · Sharp
MokėjimaiStripe Connect · MakeCommerce
El. paštas / SMSAWS SES · SMTP relay · Twilio
AIClaude · Gemini (Vercel AI SDK)
AuthSesijomis pagrįstas · Argon2
InfrastruktūraCoolify (Docker) · Cloudflare · Sentry
KokybėLighthouse CI · Playwright · Biome · Turborepo
Next.js 16React 19TypeScriptHono APIPostgreSQLPrismaRedis + BullMQStripe ConnectMakeCommerceAWS SESTwilioClaude · GPT · GeminiVercel AI SDKMCP serverisCloudflareCoolifySentryLighthouse CIPlaywrightTurborepo

AI / Automatizacijos

AI sluoksnis

AI integruotas į platformą per vieną modelių tiekėjų sluoksnį: tos pačios užduotys veikia su Claude, GPT arba Gemini, o kiekvienai parenkamas tinkamiausias modelis pagal kainą ir kokybę. Valdymo skydelyje asistentas paruošia produktų aprašymus, paieškai pritaikytas antraštes bei meta aprašymus (iki 60 ir 160 simbolių), tinklaraščio įrašus, atsakymus į atsiliepimus ir nuotraukų alternatyvųjį tekstą. Tas pats sluoksnis išverčia turinį tarp kalbų. Naudojimas matuojamas sunaudotais žetonais (AI apdoroto teksto vienetais), su atskiru greičio ribojimu, o pardavėjas gali prijungti savo modelio raktą.


Iššūkiai

Ką teko išspręsti

01

Duomenų izoliacija tarp parduotuvių

Daugelio parduotuvių sistemoje didžiausia rizika – kad vienos parduotuvės duomenys atsidurtų kitoje. Izoliacija įrengta duomenų bazės sluoksnyje ir padengta testais, tad apribojimas galioja automatiškai kiekvienai užklausai, o ne pasikliaujama programuotojo budrumu.

02

Sekimas po privatumo apribojimų

Po iOS privatumo pakeitimų ir reklamų blokavimo naršyklinis sekimas praranda dalį signalų. Sprendimas – siuntimas iš serverio su dublikatų šalinimu, kad reklamos sistemos gautų pilnesnį pirkimo vaizdą ir tas pats įvykis nebūtų skaičiuojamas du kartus.

03

Vienas branduolys, skirtingos parduotuvės

Parduotuvės skiriasi išvaizda ir turiniu, bet turi remtis tuo pačiu branduoliu. Vizualus redaktorius leidžia kiekvienai parduotuvei atrodyti savaip, neišskaidant pagrindinės logikos į atskiras kodo versijas.

04

Mokėjimai keliose šalyse

Lietuvoje vienas pirkėjas moka kortele, kitas – banko nuoroda. Stripe ir MakeCommerce sujungti į vieną srautą, o kiekviena parduotuvė turi atskirą išmokų paskyrą, tad pinigai keliauja tiesiai pardavėjui.

05

Greitis kiekvienai parduotuvei

Greitis turi išlikti ne tik paleidimo dieną. Pateikimas iš serverio kartu su automatiniu Lighthouse tikrinimu prieš kiekvieną pakeitimą neleidžia greičio ir SEO rodikliams tyliai prastėti.

06

El. pašto pristatomumas

Jei vienos parduotuvės laiškai patenka į šlamštą, tai neturi paveikti kitų. Kiekviena parduotuvė turi atskirą siuntimo konfigūraciją, tad reputacija atskiriama pagal parduotuvę.

07

Atsargų tikslumas

Esant keliems pirkėjams vienu metu, ta pati prekė neturi būti parduota du kartus. Atsargų keitimas vyksta su užraktais duomenų bazėje, kad likučiai liktų tikslūs net per didelį srautą.

08

ES PVM ir atitiktis

Tarptautinė prekyba reikalauja PVM mokėtojų tikrinimo ir duomenų apsaugos taisyklių. Įmonių PVM kodai tikrinami per VIES, o sutikimų ir duomenų valdymas sutvarkytas pagal BDAR.

09

Sistemos dydžio valdymas

Plati sistema su keliomis sąsajomis ir šimtais duomenų modelių lengvai tampa sunkiai prižiūrima. Monorepo su bendromis bibliotekomis ir tipų tikrinimu nuo sąsajos iki duomenų bazės leidžia saugiai keisti sistemą.

10

Per daug įrankių vienam AI agentui

AI agentas dažniau klysta, kai jam pateikiama keliasdešimt ar šimtai atskirų įrankių. Visas administravimo API sutrauktas į vienuolika temų – katalogas, užsakymai, analitika ir kt. – kurių kiekviena viduje turi daug veiksmų. Taip agentas greičiau randa kelią ir tiksliau pasirenka veiksmą.

11

Paieška su lietuviškomis raidėmis

Parduotuvės paieška turi rasti prekę net įvedus be lietuviškų raidžių arba su rašybos klaida. Paieška remiasi PostgreSQL pilnatekstės paieškos įrankiais: „dešra“ randama įvedus „desra“, o smulkios rašybos klaidos sušvelninamos panašumo įvertinimu.

12

Saugus išorinių nuorodų tvarkymas

Pardavėjai nurodo išorines nuorodas – pavyzdžiui, produktų nuotraukas iš kitų svetainių. Kiekviena tokia nuoroda iš anksto patikrinama, kad per ją nebūtų pasiektos vidinės, viešai neprieinamos sistemos.


Privalumai

Kuo lenkia standartą

01Visa logika vienoje sistemoje

Vietoj kelių SaaS prenumeratų, kurios tarpusavyje nesikalba, platforma, mokėjimai, sekimas, laiškai ir analitika veikia kaip viena visuma.

02Konversijų sekimas įskaičiuotas

Serverinis sekimas veikia nuo pirmos dienos, be rankinio pikselių diegimo kiekvienam kanalui.

03Parduotuvė paleidžiama be integracijų

Nauja parduotuvė – konfigūracija veikiančiame branduolyje, o ne naujas projektas nuo nulio.

04Greitis ir SEO iš karto

Pateikimas iš serverio, struktūriniai duomenys ir automatinis greičio tikrinimas užtikrina gerus rodiklius be papildomo darbo.

05Duomenų izoliacija pagal parduotuvę

Kiekviena parduotuvė mato tik savo duomenis – izoliacija galioja duomenų bazės lygmenyje.

06Mokėjimai Baltijos rinkai

Kortelės ir bankų nuorodos viename sraute, su tiesioginėmis išmokomis kiekvienai parduotuvei.

07Plečiamas branduolys

Naujos parduotuvės ir galimybės pridedamos prie to paties branduolio, o ne kuriamos atskirai.

08AI sukurta kaip platformos dalis

Turinio generavimas, valdymas natūralia kalba ir išorinių AI agentų prieiga remiasi tuo pačiu API, o ne atskiru priedu.

09Kodas ir prieigos lieka komandos rankose

Platforma valdoma savo infrastruktūroje, be priklausomybės nuo svetimos platformos taisyklių ir procentų.

Konkretūs sprendimo receptai – izoliacijos mechanizmas, dublikatų šalinimo logika, eilių sandara – viešai nerodomi. Vantemo yra savas, dar neviešintas produktas; čia aprašytos galimybės ir architektūros principai, ne jų realizacija.