Kuidas ehitada e-pood, mis kannab sadu tuhandeid tooteid 0 € majutuskuluga
Kui ettevõttel on tuhandeid tooteid, öeldakse talle tavaliselt: võta Shopify Plus, Magento või WooCommerce koos võimsa serveriga — ja arvesta sadade või tuhandete eurodega kuus. Ehitasin BusParts.ee jaoks e-poe, mis tõestab vastupidist: üle 9 000 toote, viis keelt, täistekstotsing, laoliidestus ja B2B hinnastamine — majutuskuluga 0 € kuus. Ja sama mootor kannab välja sadu tuhandeid tooteid.
Väljakutse: B2B varuosade äri vajab rohkem kui "ilusat kodulehte"
BusParts OÜ müüb bussivaruosasid ettevõtetele Eestis, Lätis, Leedus ja Soomes. Nende vajadused olid tüüpilisele platvormile paras pähkel: tuhanded tooted koos tehniliste koodidega, viis turgu ja viis keelt, ärikliendid kellel on lepingulised hinnad, ladu mida hallatakse Erply süsteemis, ja tarned mis liiguvad DHL-iga.
Varuosade äris on otsing kõige tähtsam funktsioon. Mehaanik ei sirvi kategooriapuud — ta teab tükikoodi või selle osa ja tahab toote leida kolme sekundiga. Kui otsing ei leia toodet poolikust koodist, läheb ostja konkurendi juurde.
Lahendus: Astro + Cloudflare täispakett
Ehitasin poe Astro raamistikuga, mis jookseb Cloudflare Workers peal — sama lähenemine, millest olen kirjutanud artiklis "Koduleht ilma majutuskuludeta", aga seekord täismahus e-kaubanduse kujul. Iga Cloudflare'i teenus täidab oma rolli:
- ▸D1 andmebaas — SQLite andmebaas serva peal. Tooted, hinnad, tellimused, kliendigrupid. Tasuta tase katab 5 GB ja 5 miljonit lugemist päevas.
- ▸R2 failihoidla — tootepildid ja PDF kataloogid. Erinevalt Amazon S3-st ei võta R2 sentigi väljuva liikluse eest.
- ▸KV võti-väärtus hoidla — sisselogimissessioonid, mis on kättesaadavad igast maailma serverist.
- ▸Workers — serveripoolne loogika: ostukorv, checkout, hinnaarvutus, API liidestused.
Otsing, mis leiab toote poolikust koodist
Poe süda on kahefaasiline otsing. Esimene faas kasutab SQLite FTS5 täistekstindeksit BM25 pingereaga — sama tehnoloogia perekond, mida kasutavad päris otsingumootorid. Teine faas püüab kinni juhud, kus kasutaja sisestab koodi keskosa: näiteks "4814" leiab toote "U4814 Superseal", kuigi kood ei alga nende numbritega.
Otsingutulemused puhverdatakse Cloudflare'i serva peal — kui kaks mehaanikut otsivad sama detaili, saab teine vastuse otse vahemälust. See on põhjus, miks otsing püsib kiire ka siis, kui kataloog kasvab kümme korda suuremaks.
Viis keelt, üks kataloog
BusParts töötab viies keeles — eesti, inglise, läti, leedu ja soome — ja igal keelel on oma lokaliseeritud URL-id: /et/kataloog, /fi/luettelo, /lv/katalogs. See pole ainult mugavus: Google indekseerib iga turu jaoks õiges keeles lehed ja soome ostja leiab poe soomekeelse otsinguga.
Tootetõlked ja keele-spetsiifilised meta-kirjeldused elavad samas D1 andmebaasis — uue keele lisamine ei tähenda uut platvormi, vaid uut tulpa andmebaasis.
Liidestused: Erply, DHL ja VIES
Kaupmees haldab ladu Erply süsteemis — e-pood sünkroniseerib tooted, hinnad ja laoseisud sealt automaatselt. Ei mingit topeltsisestamist, ei mingit "unustasin veebipoodi uuendada" probleemi.
Tarned lähevad välja DHL Express API kaudu ja iga ärikliendi käibemaksunumber valideeritakse automaatselt Euroopa Komisjoni VIES registrist — piiriülene B2B müük nõuab seda ja käsitsi kontrollimine oleks püsiv peavalu.
B2B hinnastamine on omaette maailm: BusPartsil on 12 kliendigruppi ja 3 hinnakirja. Sisselogitud lepinguklient näeb oma hindu, uus külastaja jaehindu. Kõik see toimub serva peal, ilma et leht aeglustuks.
Numbrid, mis loevad
9 000+
toodet praegu
5
keelt
99/100
PageSpeed desktop
0 €
majutus kuus
Võrdluseks: sama funktsionaalsusega pood Shopify Plusil maksaks alates 2 300 $ kuus pluss rakenduste tasud. Magento hosting algab ~100 €/kuus ja vajab pidevat hooldust. WooCommerce sama kataloogiga vajaks võimsat VPS-i (50+ €/kuus) ja muutuks ikkagi aeglaseks — põhjustest kirjutasin artiklis "Miks WordPress on aeglane".
Oluline on olla aus: 9 000 toodet ei ole sada tuhat. Aga arhitektuur — D1 indeksid, serva vahemälu, staatiliselt genereeritud lehed — on täpselt sama, mida vajab 100 000+ tootega kataloog. SQLite käitleb miljoneid ridu probleemideta ja Cloudflare'i tasuta taseme piirid on sellest veel kaugel. Mootor on valmis; tooted võivad tulla.
Mida see sinu ettevõtte jaoks tähendab
Kui sul on suur tootekataloog — varuosad, ehitusmaterjalid, tööriistad, komponendid — ja sind hoiab tagasi platvormide hinnastamine või olemasoleva poe aeglus, siis tea: tehnoloogia on olemas ja see maksab majutuses 0 € kuus. Maksad ühe korra arenduse eest ja pood on sinu oma — ilma kuutasudeta, ilma platvormi lõksuta.
Otsin just selliseid suuri projekte. Kui sinu ettevõttel on tuhandeid tooteid ja ambitsioon müüa rohkem, räägime.
Suur tootekataloog? Räägime läbi.
Vaatame koos üle, kuidas sinu kataloog Cloudflare infrastruktuurile kolida — kiiremaks, odavamaks ja ilma platvormitasuta. Esimene konsultatsioon on tasuta.