Izrada novog tehnološkog jezgra onlajn prodavnice: od ograničenja WordPressa do savremene arhitekture
Prva verzija prodavnice it-shop.rs razvijala se na WordPressu godinu i po i dostigla granice platforme. Objašnjavamo zašto smo prodavnicu prepisali na sopstveno jezgro i šta je to donelo biznisu.
Pri izradi onlajn prodavnice firme često biraju gotove sisteme za upravljanje sadržajem. Takav pristup skraćuje rokove prvog lansiranja i omogućava korišćenje već razvijenih funkcionalnih modula. Međutim, kako projekat raste, standardna platforma može postati izvor ozbiljnih tehničkih ograničenja.
Upravo s takvom situacijom suočili smo se radeći na onlajn prodavnici it-shop.rs za trgovinsku firmu u Srbiji.
Ograničenja prvobitnog rešenja
Prva verzija onlajn prodavnice razvijena je na WordPressu. Za njenu izradu i kasnije prilagođavanje zahtevima biznisa bilo je potrebno oko godinu i po dana i znatan budžet.
Za realizaciju potrebnih funkcija korišćen je veliki broj dodataka trećih strana i pojedinačnih dorada. Kako se projekat razvijao, njegova tehnička arhitektura postajala je sve složenija. Javljali su se sukobi između proširenja, a ažuriranje pojedinih komponenti moglo je da poremeti rad celog sistema.
Posebno zahtevna pokazala se realizacija nestandardnih zahteva:
- posebne strukture kartica proizvoda;
- integracija s internim informacionim sistemima;
- marketinških alata;
- posebnih scenarija naplate (checkout);
- dodatnih funkcija kojih nema u standardnim modulima.
Uprkos dugotrajnom razvoju i optimizaciji, nije bilo moguće obezbediti potrebne performanse i stabilnost onlajn prodavnice.
Zašto dalja optimizacija nije imala smisla
Performanse projekata na WordPressu mogu se poboljšati keširanjem, optimizacijom baze podataka i povećanjem računarskih resursa servera. Međutim, u ovom slučaju glavni uzrok problema bila je arhitektura sistema.
Svako dodatno proširenje povećavalo je broj zavisnosti, upita ka bazi podataka, skripti i elemenata dizajna. Čak i relativno male izmene mogle su da zahvate nekoliko međusobno povezanih komponenti.
Zbog toga se znatan deo resursa tima trošio na održavanje postojećeg sistema, otklanjanje sukoba i vraćanje sistema u radno stanje. Dalja optimizacija donela bi samo privremena poboljšanja, bez otklanjanja osnovnih ograničenja platforme.
U čemu je bila prava složenost projekta
Glavna osobenost ovog projekta nije bila u dizajnu ili skupu stranica, nego u unutrašnjoj mehanici. Firma je postavila ambiciozan cilj — da u jednoj prodavnici objedini veoma veliki katalog proizvoda, koji spaja robu više od deset lokalnih dobavljača.
Svaki dobavljač šalje podatke na svoj način. Robne matrice s cenama isporučuju se u različitim formatima, s različitom strukturom i po različitim pravilima. Sve to je trebalo svesti na jedinstven oblik: uskladiti podatke u svakoj kartici tako da se isti proizvodi od različitih dobavljača pouzdano prepoznaju i spoje u jednu karticu.
Poseban zadatak bilo je formiranje cena. Svaki dobavljač ima svoj sistem popusta i složenu tarifnu mrežu, a svu tu logiku trebalo je ispravno uzeti u obzir pri formiranju konačne cene za kupca.
Dodatni nivo složenosti donela je višejezičnost. Sajt je od početka zamišljen — i danas je tako napravljen — kao višejezičan: svaka kartica i svaki opis proizvoda postoje na tri jezika, srpskom, ruskom i engleskom. Pritom i podaci od dobavljača stižu na različitim jezicima, najčešće na engleskom ili srpskom. Zbog toga su unutrašnje transformacije bile posebno zahtevne, a mehanika obrade podataka pravljena je posebno za ovaj projekat.
Izrada novog tehnološkog jezgra
Posle analize projekta doneli smo odluku da onlajn prodavnicu u potpunosti izradimo iznova, na savremenom tehnološkom steku.
Novo jezgro pravljeno je prema konkretnim poslovnim procesima i zahtevima firme. Odustali smo od suvišne univerzalnosti i u sistem uključili samo neophodne funkcije. Arhitektura je unapred pripremljena za povezivanje spoljnih servisa, razvoj funkcionalnosti i rast opterećenja.
Takav pristup omogućio je jasnu i upravljivu bazu koda. Nove mogućnosti sada se mogu uvoditi postupno, bez rizika da se poremeti rad nepovezanih komponenti.
Rezultati prelaska na novu platformu
Posle lansiranja novog jezgra znatno su porasle brzina rada i stabilnost onlajn prodavnice. Stranice su počele brže da se učitavaju, a interfejs je počeo odmah da reaguje na radnje korisnika.
Bolje performanse povoljno utiču na korisničko iskustvo, konverziju i vidljivost sajta u pretrazi. Brzo učitavanje stranica smanjuje verovatnoću da će potencijalni kupac napustiti onlajn prodavnicu pre nego što završi porudžbinu.
Istovremeno su smanjeni zahtevi prema serverskoj infrastrukturi. Novi sistem može da opsluži veći broj zahteva uz manje računarskih resursa.
Takođe je znatno olakšan dalji razvoj projekta. Tim sada brže menja kartice proizvoda, povezuje nove servise, uvodi marketinške alate i unapređuje proces naplate.
Posebno treba istaći da su posle prelaska na sopstvenu tehnologiju svi složeni procesi — objedinjavanje kataloga desetina dobavljača, uparivanje proizvoda, obračun cena i višejezične transformacije — uzeti u obzir i osetno olakšani. Sada se obavljaju na strani novog jezgra i praktično ne utiču na brzinu rada sajta: projekat je izašao na sasvim drugi tehnološki nivo.
Ishod projekta
Prelazak s WordPressa na sopstveno tehnološko jezgro omogućio je otklanjanje osnovnih ograničenja prvobitnog sistema.
Umesto onlajn prodavnice koju je teško održavati i koja zavisi od mnoštva dodataka trećih strana, firma je dobila brzu, stabilnu i skalabilnu platformu. Nova arhitektura rešila je aktuelne tehničke probleme i stvorila pouzdanu osnovu za dalji razvoj biznisa.
Iskustvo ovog projekta pokazuje da su gotovi sistemi za upravljanje sadržajem pogodni za brzo lansiranje tipskih rešenja. Ali kada postoje nestandardni zahtevi, veliki broj integracija i dugoročni planovi razvoja, izrada namenske platforme može biti delotvornije i ekonomski opravdanije rešenje.