Drugi ulaz za istog prijevoznika
Elite Ride Mugoša vozi premium transfere u Crnoj Gori. Njihov glavni sajt prodaje chauffeur uslugu: limuzine, vjenčanja, poslovne vožnje, diskreciju.
Problem je što putnik koji sleti na aerodrom u Podgorici ne traži limuzinu. Traži odgovor na tri pitanja: koliko košta do Budve, da li je to konačna cijena, i mogu li da platim sad. To je drugi gost, druga namjera i druga pretraga.
Zato smo napravili zaseban sajt za transfere, sa istim vozilima i istim dispečerskim sistemom iza sebe, ali sa porukom skrojenom za nekoga ko upravo traži prijevoz sa aerodroma.
Cijena prije upita, ne poslije
Ključna odluka je bila da cijena bude vidljiva odmah.

Gost unese polazak i odredište kroz Google Places pretragu, izabere datum, vrijeme i broj putnika, i dobije cijenu po svakoj klasi vozila. Cijena ne dolazi iz naše tabele nego uživo iz dispečerskog sistema prijevoznika, za tačne koordinate i tačno vrijeme polaska, pa u sebi već nosi sve doplate koje operater primjenjuje: noćna vožnja, špic, aerodromska taksa, dječje sjedište, dočekivanje sa tablom.
Prednost je što nema dva cjenovnika koja se razilaze. Prijevoznik mijenja cijene na jednom mjestu, sajt to odmah preuzima.
Programatske stranice po relaciji
Ljudi ne traže „aerodromski transfer". Traže „taxi Podgorica aerodrom Budva". Zato svaka česta relacija ima svoju stranicu.

Stranice se ne pišu ručno. Admin doda relaciju sa polaznom i odredišnom tačkom, a sistem sam pravi stranicu, računa cestovnu udaljenost i povlači cijene po klasi vozila.

Admin može da nadjača naslov i uvodni tekst gdje ima smisla, pa stranica nije šablon bez sadržaja. Relacije se grupišu i po gradu, pa postoji i ulaz tipa „svi transferi za Kotor".
Nekoliko stvari koje su ovdje bile važne:
- Cestovna udaljenost, ne vazdušna. Udaljenost se računa preko rutera i kešira mjesec dana, uz rezervni proračun ako servis ne odgovori, pa broj kilometara nikad ne ostane prazan.
- Cijene se keširaju, vozila ne. Cijene stoje šest sati, a pri grešci samo pet minuta, da pad servisa ne izazove lavinu ponovnih poziva. Podaci o vozilima se nikad ne keširaju, pa se izmjena naziva ili slike u adminu vidi odmah.
- Prikazana cijena je dnevna. Cijena „od" se računa za reprezentativan termin u podne, jer bi noćna doplata inače prikazala neuporedivo veći iznos. Stvarna cijena se ponovo računa čim gost izabere svoj termin.
- Cijene se griju u pozadini. Zakazani posao održava keš toplim, pa stranice sa listama nikad ne čekaju vanjski servis.
O tome kako uopšte pristupamo sajtovima za prijevoznike pišemo u tekstu izrada sajta za rent-a-car agencije.
Flota i povjerenje

Klase vozila se sinhronizuju iz dispečerskog sistema, ali redoslijed prikaza i vidljivost kontroliše admin prevlačenjem. Prijevoznik odlučuje šta gost prvo vidi, bez obzira na to kako su vozila zavedena u pozadini.
Ocjena i recenzije se povlače uživo sa Google profila, filtrirane na one sa stvarnim tekstom, sa keširanjem po jeziku i rezervnim prikazom da značka ne nestane ako Google ne odgovori.
Sajt radi na dva jezika, engleskom za putnike i crnogorskom za domaće goste, sa prefiksom jezika u URL-u i hreflang oznakama.

Naplata i pravila rezervacije
Kartično plaćanje je uvedeno pažljivo, jer se radi o stvarnom novcu i o banci koja mora da odobri integraciju.
- Plaćanje karticom prolazi kroz 3-D Secure, uz Visa i Mastercard provjeru identiteta
- Prekidač za kartično plaćanje se provodi na serveru, ne samo u interfejsu, pa dok banka ne odobri, ta putanja jednostavno ne postoji
- Opcija „naruči pa plati kasnije" radi uvijek, pa rezervacija nikad ne zavisi od stanja gateway-a
Pravila o vremenu unaprijed su podesiva u adminu, po opsezima udaljenosti. Za vožnje preko sto kilometara od Podgorice traži se dvadeset četiri sata najave, jer prijevoznik mora da rasporedi vozača.
Nadzorna ploča koja gleda maržu
Admin panel nije samo spisak rezervacija. Nadzorna ploča prikazuje broj i vrijednost rezervacija za danas, mjesec i ukupno, plaćeno naspram neplaćenog, uloženo naspram prihoda po vožnji, kretanje kroz trideset dana i prihod kroz dvanaest mjeseci.
Zanimljiv dio je kalendar sa ulančavanjem vožnji: sistem prepoznaje uzastopne vožnje kod kojih se odredište jedne poklapa sa polaskom sljedeće, pa dispečer vidi gdje može da spoji dvije vožnje umjesto da vozilo vraća prazno.
Pod haubom
Backend: PHP 8.2, Laravel 13, Spatie paketi (permission, translatable, sitemap, honeypot), Sentry, reCAPTCHA Enterprise uz honeypot na svim formama.
Javni sajt: Blade i Tailwind CSS v4, Alpine.js, Flatpickr. Sajt je za ovu namjenu pisan iz nule, umjesto da se nasljeđuje tema sa glavnog sajta.
Admin: Inertia.js sa Vue 3 i Vuetify, šesnaest ekrana.
Integracije: dispečerski sistem prijevoznika za cijene i slanje rezervacija, Google Places za pretragu adresa (posredovano i keširano na serveru), Google Places Details za recenzije, ruter za cestovnu udaljenost.
SEO: sitemap sa hreflang oznakama po jeziku, sedam JSON-LD shema uključujući LocalBusiness sa geo podacima i skupnom ocjenom, sopstveni modul vijesti.
Obim: 13 modela, 29 migracija, dva jezika (engleski i crnogorski).
Detaljnije o ovakvim integracijama pišemo na stranici Sistem integracije.
Pogledajte websajt
Ako vozite transfere ili vodite prijevoz i treba vam sajt koji daje cijenu prije upita, kontaktirajte nas. Pogledajte i ostale projekte iz našeg portfolija.