Kako smo izgradili ABOS B2B web katalog od nule - case study
Custom PHP MVC arhitektura, napredni filteri, sustav ponuda s PDF generacijom i kompletan admin panel - sve bez jedne linije WordPressa. Ovako je nastao ABOS.
Pozadina projekta
ABOS d.o.o. je hrvatska B2B tvrtka koja prodaje industrijsku opremu distributerima i poslovnim kupcima diljem regije. Imali su problem: postojeći katalog bio je statičan PDF koji su slali mailom. Kupci nisu mogli pretraživati, filtrirati ni direktno slati upite. Proces naručivanja bio je kaotičan - mailovi, telefonski pozivi, Excel tablice.
Zadatak: izgraditi kompletan B2B web katalog koji će automatizirati proces od pretrage do slanja ponude.
Tehnički izazovi
ABOS katalog ima više od 400 SKU-ova podijeljenih u 15 kategorija s do 30 filtrirajućih atributa po kategoriji. Standardni e-commerce plugin to ne može pokriti - svaka kategorija ima drugačije atribute (npr. pumpe filtriraju po protoku, tlaku i mediju; ventili po DN, PN i materijalu).
Osim toga, ABOS ne prodaje direktno - šalju ponude. Kupac skuplja proizvode u "košaricu za upite" (ne u narudžbu), a sustav automatski generira PDF ponudu s cijenama, uvjetima i rokom isporuke.
Arhitekturno rješenje
Odabrao sam custom PHP MVC arhitekturu pisanu od nule - bez frameworka, bez WordPressa, bez gotovih CMS-ova. Razlog je jednostavan: gotova rješenja bi zahtijevala toliko prilagodbi da bi na kraju bila skuplji i sporiji od custom koda.
Struktura projekta:
- Router - clean URL-ovi, language detection, 301 redirecti
- Product model - dinamički atributi po kategoriji, JSON pohrana za fleksibilnost
- Filter engine - kombinacija PHP i MySQL za real-time filtriranje bez page reloada
- Quote system - basket za upite, PDF generacija (FPDF), email dispatch
- Admin panel - CRUD za sve entitete, bulk upload CSV, image management
Filter engine - najkompleksniji dio
Najveći izazov bio je filter engine koji radi u realnom vremenu. Korisnik odabire filtere, a stranica prikazuje relevantne proizvode bez full page reloada. Implementacija koristi AJAX fetch na PHP endpoint koji dinamički gradi SQL query ovisno o odabranim filterima.
Ključni dio: atributi su pohranjeni u EAV (Entity-Attribute-Value) strukturi što omogućuje dodavanje novih atributa bez promjene sheme baze. Admin može dodati novi filtrabilni atribut za kategoriju bez ijedne linije koda.
PDF generacija ponuda
Kad kupac skupi željene proizvode u upit, sustav generira PDF ponudu s logom ABOS-a, detaljima proizvoda, cijenama, uvjetima i potpisom prodajnog predstavnika. PDF se automatski šalje na email kupca i na interni ABOS mail.
Korišten je FPDF library koji je jedini dio projekta koji dolazi iz externe biblioteke. Sve ostalo - vlastiti kod.
Rezultati
Nakon lansiranja ABOS kataloga:
- Proces slanja upita s 3-5 dana (mail-telefon-Excel) na ispod 5 minuta
- Broj upita tjedno porastao za +100% jer je barijera ulaska eliminirana
- Admin tim štedi 2-3 sata tjedno na ručnoj obradi upita
- Page load: ispod 1.2s čak i s 400+ SKU-ova u katalogu
Što smo naučili
Custom B2B katalog je kompleksan projekt - ali je jedini pravi odgovor kad biznis ima specifičnu logiku koja ne stane u gotova rješenja. WooCommerce ili Shopify bi bili 3x skuplji za prilagodbu i 5x sporiji u produkciji.
Ako imate sličan B2B challenge - razgovarajmo.