STUDIJA SLUČAJA
Amore OMS
Prilagođeni OMS za višetržno e-commerce poslovanje.
Sažetak
- Industrija: E-commerce
- Veličina tvrtke: Višetržni e-commerce operater s više trgovina diljem EU-a
- Deliverable: Custom OMS (operativna web aplikacija)
- Uloga: Sistemska arhitektura, full-stack implementacija, integracije, operativni alati
- Integracijske točke: Webhooki trgovin, API/SDK prijevoznika, tracking izvozi/uvozi, operativni dokumenti
- Status: Aktiven produkcijski sustav
- Vremenski okvir: Iterativna dostava s postupnim rolloutom
Kontekst
Klijent upravlja više storefrontova i dostavlja na različita europska tržišta. Unos narudžbi, fulfillment i otpremni procesi bili su raspodijeljeni između alata platforme i procesa pojedinih prijevoznika. Kako je volumen rastao, rastao je i operativni napor. Glavni problem nije bio nedostatak funkcionalnosti, nego nedostatak jedinstvenog operativnog pogleda i predvidljivog upravljanja statusima.
Problem
Ključni problem nije bio nedostatak funkcija, nego nedostatak kontrole i pouzdanosti.
- Narudžbe su pristizale bez normalizirane interne reprezentacije.
- Otmepni procesi razlikovali su se po prijevoznicima (etikete, formati, praćenje).
- Skladišni tokovi (picking/packing) teško su se standardizirali bez alata.
- Formati adresa i telefona razlikovali su se po državama, što je uzrokovalo neuspjele dostave.
- Nedostajalo je pouzdano usklađivanje “zastalih” narudžbi (plaćeno, a nije poslano; poslano, a nije praćeno).
Ciljevi projekta
- Centralizirati upravljanje narudžbi u jedan operativni sustav.
- Stvoriti predvidljiv životni ciklus narudžbe s eksplicitnim stanjima i iznimkama.
- Standardizirati skladišne tokove (batching, skeniranje, pakiranje) i smanjiti ljudske pogreške.
- Integrirati više prijevoznika s konzistentnom otpremom i praćenjem.
- Omogućiti širenje na nova tržišta/prijevoznike bez prepisivanja jezgre.
Ograničenja i izazovi
- Bez prekida u unosu narudžbi iz storefrontova.
- Različite stope PDV-a i iznimke po državama.
- Različite vrste plaćanja (uključujući COD) i operativne varijante po tržištima.
- Različiti API-ji prijevoznika, formati etiketa i identifikatori praćenja.
- Legacy podaci i nekonzistentni payloadi iz vanjskih sustava.
Rješenje je moralo koegzistirati s postojećim okruženjem prije nego što je postupno postalo primarni operativni sustav.
Pregled rješenja
Dizajnirali i izradili smo custom OMS koji radi kao operativni kontrolni sloj između storefrontova i logistike. OMS ne zamjenjuje storefrontove, nego orkestrira fulfillment: unos, normalizaciju, praćenje statusa, otpremu, tracking i operativne tokove.
- Jedan sam izvor istine za stanje narudžbe
- Eksplicitne tranzicije stanja i usklađivanje iznimki
- Verificirani ulazni događaji (webhooki) i deterministička ažuriranja
- Jasno razdvajanje između unosa, operacija i integracija prijevoznika
Arhitektura i tehnički pristup
Sustav je implementiran kao pragmatična operativna web aplikacija s relacijskom bazom. Srž dizajna je podatkovni model: narudžbe, trgovine, statusi, batchi, proizvodi i artefakti prijevoznika.
- Unos narudžbi: verificirani webhooki za događaje storefrontova i kreiranje narudžbi, uz zaštitu od duplikata.
- Normalizacija: konsistentna interna predstavitev (adrese, telefoni, pravila držav/DDV, SKU-ji).
- Upravljanje stanja: eksplicitni statusi i obrada iznimki za operativnu predvidljivost.
- Operativni UI: filtriranje, triage, priprema batchova i akcije po narudžbama za operativnu ekipu.
- Skladišni alati: skeniranje barkodova i batch tokovi za pakiranje/otpremu.
- Sloj prijevoznika: integracije za generiranje etiketa, dodjeljivanje tracking brojeva, otkazivanja i ažuriranja.
- Pozadinski poslovi: planirano usklađivanje i ažuriranja trackinga za zaključivanje “on-hold” stanja.
Svaka integracija je izolirana, što omogućuje promjene bez utjecaja na jezgru. Struktura podržava postupni rollout i predvidljiva proširenja (novi storefrontovi, prijevoznici, tržišta).
Tehnološki stack
- Backend: PHP
- Baza: MySQL
- UI: Server-rendered interna web UI (MDL + JS utilities)
- Pozadinski poslovi: Cron-based scheduled tasks
- Integracije: Shopify webhooki + više carrier API/SDK-jev (DPD, GLS, Packeta, UrgentCargus, BRT), tracking izvozi/uvozi
- Dokumenti: PDF generiranje operativnih artefakata (etikete, dokumenti)
Tehnološke odluke prioritizirale su stabilnost, izdržljivost i poznatost ekipe u odnosu na eksperimentalna rješenja.
Proces implementacije
- Analiza i mapiranje poslovnih procesa
- Definicija životnog ciklusa narudžbi i stanja
- Postupna implementacija unosa, internog podatkovnog modela i operativnog UI-ja
- Dodavanje integracija prijevoznika jednu po jednu s konzistentnim apstrakcijama i fallbackovima
- Postupni rollout skladišnih alata (batching, skeniranje) i pozadinskog usklađivanja
Redoviti checkpointi s klijentom osiguravali su usklađenost između tehničkih odluka i operativne realnosti.
Rezultati i učinak
- Manje ručne obrade i manje otpremnih pogrešaka.
- Bolja transparentnost za operativne i podršne ekipe (jedan pogled na stanje narudžbe).
- Brže dodavanje novih prijevoznika/trgovina zahvaljujući jasnim integracijskim granicama.
- Stabilna osnova za automatizaciju i operativno izvještavanje.
OMS je postao kritičan dio dnevnih operacija.
Refleksija
Odluka za orkestraciju umjesto zamjene bila je ključna. Smanjila je rizik i klijentu omogućila ranu vrijednost. Najutjecajnija investicija bila je detaljna početna modelacija stanja i tranzicija koja je smanjila operativnu nejasnoću tijekom razvoja i kasnijih promjena.
Sažetak
Projekt pokazuje kako dobro dizajniran custom sustav može donijeti red i stabilnost u kompleksne e-commerce operacije bez ometanja postojećeg poslovanja. Naglašava pragmatičan, arhitekturno vođen pristup rješavanju realnih operativnih problema.