O klijentu
Atelier Lumière je studio lepote u Staroj Pazovi koji su zajedno otvorile dve stručnjakinje iz različitih oblasti. Mila je kozmetičarka i lash artist: nega lica, depilacija, sprej ten i svilene trepavice, uz edukacije za svilene trepavice. Neška je muško-ženski frizer: svečane frizure, farbanje, keratin, pramenovi i balayage.
Dele ime, prostor i ideju da različite oblasti lepote budu na jednom mestu. Sve ostalo je odvojeno: termini, telefoni, radno vreme, pa i firme. Naš zadatak nije bio da to sakrijemo iza jednog generičkog sajta za salon, nego da ga napravimo tako da mušterija nikad ne mora da razmišlja o tome kako studio funkcioniše iznutra.

Polazna tačka: dva posla pod jednim krovom
Na prvi pogled ovo je jedan salon. U praksi su to dva odvojena posla pod istim imenom:
| Trepavice i lice | Frizerske usluge | |
|---|---|---|
| Zakazivanje | Onlajn kalendar sa izborom usluge i slobodnog termina | Isključivo poziv ili WhatsApp; frizerka sama potvrđuje termin i upisuje ga u svoj kalendar |
| Radno vreme | Sopstveno | Sopstveno, drugačije |
| Telefon | Poseban broj | Poseban broj |
| Pravni subjekt | Poseban PIB i matični broj | Poseban PIB i matični broj |
| Cene | Vode se u sistemu za zakazivanje | Zavise od dužine i gustine kose, materijala i vremena, pa se dogovaraju direktno |
Zajednički su samo brend, adresa, email i prostor. Nijedno od ovoga nije smelo da se spoji radi jednostavnosti. Jedno zajedničko radno vreme bi bilo netačno, jedno dugme „Zakaži“ bi vodilo pogrešnu mušteriju u pogrešan kalendar, a jedan telefon bi jednu od vlasnica pretvorio u sekretaricu druge.
Izazovi
- Dva toka zakazivanja, jedan brend. Mušterija ne zna, i ne treba da zna, da su to dve firme. Treba da u jednom koraku stigne do prave osobe, na pravi način.
- Ravnopravnost dve vlasnice. Nijedna oblast ne sme da izgleda kao dodatak drugoj, ni u navigaciji ni u dugmetu za zakazivanje.
- Obećani SMS podsetnici koji ne stižu. Sistem za onlajn zakazivanje koji studio koristi šalje email podsetnike, ali SMS ne isporučuje na srpske brojeve. Vlasnice nisu htele da menjaju alat na koji su navikle.
- Frizerski termini ne prolaze kroz onlajn zakazivanje, a i njima je trebalo poslati podsetnik.
- Mnogo sadržaja koji još ne postoji. Na početku nije bilo fotografija radova, potvrđenih brendova, Google Business profila ni aktuelnih ponuda. Sajt je morao da izgleda završeno i da ostane iskren.
- Vlasnice same održavaju sajt. Banere, pakete, galeriju, biografije i radno vreme moraju da menjaju bez programera i bez rizika da nešto pokvare.
- Lokalna vidljivost. „Frizer Stara Pazova“ i „trepavice Stara Pazova“ su različite pretrage i treba da vode na različite stranice.
Principi kojih smo se držali
- Odvojeno svuda gde se razlikuje: zakazivanje, kontakt, radno vreme, pravni podaci, cene i priprema za tretman. Spojeno samo tamo gde je zaista zajedničko: brend, priča i adresa.
- Ništa izmišljeno. Nema izmišljenih cena, recenzija, ocena, brendova ni ponuda. Prazna sekcija se ne prikazuje.
- Sadržaj pripada klijentu, izgled temi. Svi poslovni podaci žive u posebnom pluginu, pa preživljavaju i budući redizajn.
- Radi i bez JavaScript-a. Svako dugme za zakazivanje je pravi link; prozor za zakazivanje je nadogradnja, a ne uslov.
- Proveravamo ono što je stvarno objavljeno, na telefonu i desktopu, pre nego što kažemo da je gotovo.
Zakazivanje: jedno dugme, dva puta
Prva verzija globalnog dugmeta „Brzo zakazivanje“ vodila je direktno u onlajn kalendar za trepavice i lice. Frizerske usluge bile su mala napomena sa linkom ka drugoj stranici. Za studio dve ravnopravne vlasnice to nije bilo prihvatljivo, pa smo tok promenili.
Sada svako neutralno dugme „Brzo zakazivanje“ (u zaglavlju, na početnoj, u fiksnoj traci na dnu telefona, u mobilnom meniju i na stranici Zakazivanje) otvara isti prozor sa pitanjem „Izaberite kod koga zakazujete“ i dve ravnopravne kartice:
- Trepavice i lice: onlajn zakazivanje. Dugme „Izaberite termin“ učitava kalendar u istom prozoru, bez napuštanja sajta.
- Frizerske usluge: poziv ili WhatsApp. Frizerka potvrđuje termin i sama ga upisuje u svoj kalendar. WhatsApp poruka je unapred popunjena na srpskom, pa mušterija samo pritisne „pošalji“.

Linkovi unutar jedne oblasti preskaču izbor. Sa stranice frizerskih usluga, iz cenovnika ili sa kartice usluge prozor se otvara pravo na odgovarajućem koraku, uz dugme „Nazad na izbor“.

Detalji koji se ne vide na prvi pogled, a čine razliku:
- Kalendar se učitava tek kada ga mušterija zatraži. Spoljni sistem za zakazivanje ne usporava otvaranje stranice.
- Bez JavaScript-a svako dugme vodi na pravu adresu. Ctrl ili Cmd + klik otvara link u novom tabu, kao svaki normalan link, a u prozoru postoji i vidljiv link za otvaranje zakazivanja u novom prozoru, ako ugrađeni kalendar ne može da se učita.
- Prozor je pristupačan. Fokus ostaje u prozoru, Escape i klik na pozadinu ga zatvaraju, stranica se ne skroluje ispod njega, a po zatvaranju se fokus vraća na dugme koje ga je otvorilo.
- Nijedna opcija vizuelno ne „pobeđuje“ drugu. Dugmad za onlajn zakazivanje, poziv i WhatsApp imaju istu veličinu slova, istu visinu i iste margine na svakoj širini ekrana.
- Podsetnici su navedeni tamo gde se odlučuje, u svakoj kartici i u čestim pitanjima.
- Frizerski onlajn termin je blokiran u kodu, a ne samo sakriven u podešavanjima. Čak i kad bi u bazi ostao stari link, sajt ga ne bi ponudio.
- Jedna lista cena, ne dve. Cene trepavica i lica vode se u sistemu za zakazivanje i mušterija ih vidi pri izboru termina. Na sajtu namerno nema druge tabele koja bi mogla da se razlikuje od prave. Za frizerske usluge sajt objašnjava od čega cena zavisi.
Automatski test prozora za zakazivanje prošao je 80 od 80 provera na širinama 1440, 390 i 320 piksela: ispravni linkovi za poziv i WhatsApp, kalendar koji se ne učitava pre izbora, fokus, Escape, rad bez JavaScript-a i bez horizontalnog prelivanja. Tokom testova zahtevi ka sistemu za zakazivanje bili su blokirani, pa nijedan pravi termin nije zakazan i nijedna poruka nije poslata.
Kada se isplati onlajn kalendar, a kada je dovoljan poziv ili poruka, detaljnije smo opisali u vodiču o online zakazivanju na sajtu.
SMS podsetnici koje sistem za zakazivanje ne šalje u Srbiju
Na sajtu je mušterijama obećan SMS podsetnik sat vremena pre termina. Sistem za zakazivanje koji studio koristi šalje email, ali SMS na srpske brojeve ne isporučuje. Nema ni webhook-ove, pa ne može sam da javi našem serveru da je termin zakazan ili promenjen. Umesto da tražimo od vlasnica da promene alat koji im odgovara zbog mobilne aplikacije, napravili smo sopstveni modul.
Kako radi
- Na svakih 5 minuta pravi serverski cron, a ne WordPress „pseudo-cron“ koji zavisi od poseta, preko zvaničnog API-ja čita predstojeće termine.
- Za svaki termin proverava da li počinje za 20 do 65 minuta i da li podsetnik za taj termin i to vreme već nije poslat.
- Šalje jedan SMS preko srpskog SMS provajdera.
Poruka je kratka i uvek ista po formi:
Atelier Lumière: Podsetnik za termin, danas u 14:30 kod Milane. Tel: 0641311718
Primer SMS podsetnika
Detalji koji pokazuju da je promišljeno
- Prava stručnjakinja, pravi broj. Sistem prepoznaje kod koga je termin i u poruku stavlja ime i telefon te stručnjakinje. Frizerski termini dobijaju podsetnik iako ih frizerka unosi ručno.
- Tačno jedan SMS segment. Bez slova č, ć, š, ž i đ SMS sme da ima 160 znakova, a sa bilo kojim od njih samo 70. Šablon je napisan tako da staje u jedan segment, a kod pre svakog slanja broji delove i odbija poruku koja bi otišla u dva dela, jer dva dela znače duplu cenu. „È“ iz imena Lumière spada u osnovni GSM-7 skup, pa ime brenda zadržava akcenat bez skraćivanja limita.
- Samo srpski mobilni brojevi. Brojevi koje mušterije kucaju kao „064…“, „+381 64…“ ili „00381…“ svode se na isti format, a sve ostalo, uključujući strane brojeve, preskače se.
- Nema duplih poruka. Pre slanja sistem atomski upisuje zahtev sa jedinstvenim ključem (termin + vreme početka), pa ni dva istovremena pokretanja ne mogu da pošalju isti podsetnik dvaput.
- Pomeren termin dobija novi podsetnik, za novo vreme. Otkazan termin ne dobija ništa.
- Greška ne prolazi tiho. Neuspelo slanje se ne ponavlja automatski, da ne bi nastao duplikat, nego mi dobijamo email upozorenje. Isto važi ako ne uspe osvežavanje pristupa API-ju, jer bi podsetnici inače tiho prestali da stižu.
- Minimum podataka. U evidenciji se čuva samo maskiran broj telefona, a zapisi se brišu posle 90 dana.
- Posetioci ga ne učitavaju. Modul radi samo na serveru i ne dodaje ništa stranicama sajta.
„Z“ koje nije UTC
Prvog dana rada test termin u 14:00 nije dobio podsetnik u 13:00. API vraća vreme termina sa oznakom „Z“, što po standardu znači UTC, a zapravo je to lokalno beogradsko vreme. Sistem je zato termin video dva sata kasnije i podsetnik bi otišao oko 14:55 sa tekstom „danas u 16:00“. Grešku smo pronašli i ispravili istog dana, pre nego što je ijedna pogrešna poruka poslata, uključujući i prelazak na letnje i zimsko vreme. Odmah zatim test termin u 15:45 dobio je podsetnik u 14:45.
Pouka: dokumentacija i stvarni podaci se ne poklapaju uvek, pa ponašanje API-ja proveravamo stvarnim terminom pre puštanja u rad.
Sistem šalje prave poruke od 10. oktobra 2026. Mušterija sa onlajn terminom za trepavice ili lice dobija email dan ranije i SMS sat vremena pre termina, a mušterija sa frizerskim terminom SMS sat vremena pre potvrđenog termina.
Dizajn: topao, urednički i čitljiv
Pravac je urednički studio lepote sa osećajem hotelskog gostoprimstva: topli papir, krem i kafa tonovi, zlatni akcenti i mekane konture. Naslovi su u fontu Newsreader, tekst u Hanken Grotesk-u, a rukopisni potpis brenda koristi se suzdržano. Svi fontovi su hostovani na serveru studija, pa sajt ne zove Google Fonts niti bilo koji spoljni font servis.
Dizajn je nastajao kroz iteracije, na osnovu povratnih informacija:
- Prvi font za naslove imao je tanke poteze koji su na telefonu bili nečitljivi, pa smo ga zamenili.
- Tipografske strelice i zvezdice iOS je prikazivao kao šarene emoji. Sve ikone su sada SVG.
- Animirana traka sa uslugama na početnoj uklonjena je jer nije dodavala informaciju.
- Prevelik apstraktni motiv u ilustraciji uklonjen je jer je delovao uznemirujuće.
- Hero je sa tri panela prešao na dva, kada je studio suzio ponudu na dve oblasti.
Dok ne stignu fotografije radova, usluge prate originalne apstraktne ilustracije, uvek prikazane cele, nikad isečene. Početna i stranica O nama imaju prave fotografije vlasnica. Pokreta ima malo i ima svrhu: nema animacija koje sakrivaju sadržaj dok se ne skroluje, a sve se gasi kada korisnik u sistemu isključi animacije.
Sadržaj koji su napisale vlasnice
Sav poslovni sadržaj potiče od vlasnica: zajednička priča, dve biografije, radno vreme, poslovni podaci i uputstva za pripremu. Nismo dopisivali tretmane, garancije ni savete.
- Stranice oblasti imaju celu biografiju odgovarajuće stručnjakinje i sekciju „Priprema“ sa numerisanim uputstvima: dolazak bez šminke na očima, kada je idealna korekcija svilenih trepavica, kako se kosa priprema za svečanu frizuru, kada je potrebna konsultacija uživo.
- Kontakt ima dva odvojena bloka sa radnim vremenom i poslovnim podacima, zajedničku adresu i uputstvo kako se dolazi do ulaza.
- Prazno je bolje od lažnog. Sekcije za brendove, banere, pakete i galeriju postoje, ali se na sajtu ne pojavljuju dok u njima nema stvarnog sadržaja. Stranica Galerija iskreno kaže da je u pripremi. Mapa i Google ocene nisu dodate jer studio još nema Google Business profil.
Administracija koju vlasnice same vode
U WordPress adminu postoji poseban meni „Studio Lumière“, napravljen za ovaj studio, a ne za salon uopšte:
- Podaci i rezervacije: biografije, telefoni, radno vreme i poslovni podaci za svaku stručnjakinju, adresa, link za onlajn zakazivanje (uz proveru da je ispravan), fotografije i uputstva za pripremu.
- Mesečni baneri u dva formata, sa datumom početka i kraja. Naslov, opis i uslovi su pravi tekst, ne samo slika, pa ih čitaju i pretraživači i čitači ekrana.
- Paketi sa obaveznom ukupnom cenom i bez automatskog računanja „uštede“. Ako vlasnica skine uslugu iz ponude, svaki paket koji je sadrži automatski nestaje sa sajta, da se nikad ne prikaže ponuda koja ne postoji.
- Brendovi i galerija sa ručno odabranim radovima i opcionim linkom ka objavi na Instagramu, bez API tokena i automatskog preuzimanja.
- Izmena se odmah vidi. Kada vlasnica objavi, izmeni ili ukloni baner, paket, sliku ili podatke, sajt sam čisti keš stranica koje taj sadržaj prikazuju. Isto važi i kada baner istekne. Nema pitanja „zašto se ne vidi moja izmena“.
Svi poslovni podaci su u pluginu, a ne u temi, pa ostaju sačuvani i ako se jednog dana promeni dizajn. To je isti pristup koji primenjujemo u svakom custom WordPress razvoju.
Lokalni SEO po nameri pretrage
Ključne reči smo rasporedili po tome šta osoba traži, a ne po broju ponavljanja:
| Pretraga | Stranica |
|---|---|
| studio lepote / salon lepote Stara Pazova | Početna i O nama |
| trepavice / tretmani lica Stara Pazova | Trepavice i lice |
| frizer / frizerski salon Stara Pazova | Frizerske usluge |
- Strukturirani podaci opisuju studio kao
BeautySalonsa dva odvojena kontakta za rezervacije. Radno vreme i pravni subjekti se ne spajaju u jedan netačan zapis. - Tehnička higijena: jedan H1 po stranici, sopstveni canonical, sve javne stranice u sitemap-u, prazne arhive van indeksa i pravi 404 za nepostojeće adrese, umesto preusmerenja na početnu.
- Kontrolisano puštanje: tokom izrade sajt je bio skriven od pretraživača, a indeksiranje je uključeno tek posle SEO pregleda i tehničke provere.
- Favicon na beloj pozadini. Providna ikonica lepo je izgledala na belom, a nestajala na tamnoj temi pregledača i u rezultatima pretrage.
Pozicije ne garantujemo. Rezultati u pretrazi i efekat na broj zakazivanja još nisu mereni, jer je sajt tek pušten u rad.
Brzina, pristupačnost i bezbednost
- Lagan kod. Bez frontend framework-a, page buildera i jQuery-ja na javnim stranicama: PHP, čist CSS i četiri mala JavaScript fajla. Fontovi su lokalni, a kalendar se učitava tek na zahtev.
- Keš koji radi zajedno sa sajtom. Umesto da gasimo optimizacije WP Rocket-a kada nešto ne radi, skripte potrebne za interakciju izuzeli smo iz odlaganja, a stilove menija i prozora za zakazivanje zaštitili od uklanjanja.
- 0 automatskih WCAG A/AA prekršaja na pregledanim stranicama i prozorima (axe). To je automatska provera, ne sertifikat, pa su uz nju rađene i ručne provere tastaturom. Testirano je na sedam širina ekrana, od 320 do 1440 piksela, u dva browser engine-a.
- Zaštita samo tamo gde treba. reCAPTCHA štiti prijavu u admin, a javne stranice je ne učitavaju, pa posetioci nemaju dodatni teret. Ako Google provera nije dostupna, vlasnice nisu zaključane, nego se događaj beleži. XML-RPC prijava je isključena.
- Ključevi za API-je postoje samo u konfiguraciji servera, nikad u kodu ni u logovima.
Proces: 60 izdanja za pet nedelja
Od 6. septembra do 11. oktobra 2026. isporučili smo 60 produkcionih izdanja. Svako je arhivirano, sa sačuvanom prethodnom verzijom, pa je povratak bio pripremljen za svako izdanje. Svaka isporuka prolazi isti put: rezervna kopija, provera koda na samom serveru, postavljanje, čišćenje keša i provera onoga što je stvarno javno, i preko javnog CDN-a i direktno sa servera.
Za svaku veću izmenu pokretali smo automatske provere u pregledaču (Playwright i axe): statuse stranica, jedan H1, horizontalno prelivanje, tastaturu, fokus, smanjen pokret i rad bez JavaScript-a. Rezultate smo pregledali kao screenshotove na desktopu i telefonu. Pravilo je bilo jednostavno: automatski testovi nikad ne zakazuju stvaran termin i ne šalju poruku.
| Brojka | Šta znači |
|---|---|
| 2 | stručnjakinje, toka zakazivanja, radna vremena i pravna subjekta pod jednim brendom |
| ~5 nedelja | od prvog do poslednjeg evidentiranog produkcionog izdanja |
| 60 | produkcionih izdanja, svako sa sačuvanom prethodnom verzijom |
| 80/80 | provera prozora za zakazivanje na 1440, 390 i 320 px |
| 0 | automatskih WCAG A/AA prekršaja na pregledanim stranicama |
| 11 + 10 | indeksabilnih stranica i pomoćnih SEO provera, svaka preko CDN-a i direktno sa servera |
| 1 | SMS segment po podsetniku |
| 0 | pogrešnih SMS poruka zbog greške u vremenskoj zoni |
| 0 | spoljnih zahteva za fontove pri poseti |
Šta još nije gotovo
- Galerija radova je spremna i čeka fotografije koje vlasnice odobre.
- Brendovi, mesečni baneri i paketi spremni su u adminu i pojaviće se kada vlasnice potvrde stvarne ponude.
- Mapa i ocene čekaju Google Business profil.
- Ilustracije usluga zameniće prave fotografije.
- Prvi smisleni podaci o pretrazi i zakazivanjima očekuju se tek posle nekoliko nedelja rada.
Šta smo naučili
Najlakše je napraviti jedno dugme „Zakaži“. Ali kada iza jednog imena stoje dva posla, jedno dugme znači da pola mušterija završi u pogrešnom kalendaru, a da druga vlasnica praktično nestane sa sajta.
Podsetnik koji stigne dva sata kasnije gori je od podsetnika koji ne stigne. Zato smo vremensku zonu proverili stvarnim terminom pre puštanja u rad, a ne samo dokumentacijom.
Jedno slovo može da udvostruči cenu SMS-a. Svako „č“ ili „š“ spušta dozvoljenu dužinu sa 160 na 70 znakova. Zato sistem broji pre nego što pošalje.
Prazna sekcija je bolja od izmišljene ponude. Sajt koji je tek pušten u rad ne mora da izgleda kao da ima sve. Mora da bude tačan.
Vodite salon, studio ili ordinaciju sa više stručnjaka?
Ako kod vas različiti ljudi zakazuju na različite načine, sajt to ne treba da sakriva, nego da vodi svaku mušteriju na pravo mesto. Rado ćemo pogledati kako vi radite.
