← Munkáim /Esettanulmány · Egyedi rendszer
Woodestic OMS
Központi rendeléskezelő rendszer a Woodestic több WooCommerce-webshopjához: rendelések, nyomtatás, csomagfeladás, számlázás és kimutatások egy felületen.
- Típus
- Egyedi rendszer
- Kontextus
- A Woodestic belső használatú rendeléskezelő rendszere – nincs nyilvános felülete.
- Szerepem
- Tervezés és fejlesztés
- Technológia
- Next.js · TypeScript · Prisma · WooCommerce
-
7
aktív webshop egy felületen
-
10
webshop-hely (a rendszer ennyit kezel)
-
7
futárszolgáltató (6 a KVIKK-en át, + DHL Express)
-
Óránként
automatikus egyeztetés a webshopokkal
-
4
deviza külön kezelve (HUF, EUR, USD, GBP)
-
2
nyelv az automata e-mail-sablonokban (HU, EN)
A kiindulás
Miről volt szó?
A Woodestic több WooCommerce-webshopot üzemeltet: magyar, EU-s és nemzetközi áruházakat. Mindegyiknek külön rendelés-felülete van. Ha a rendeléseket, a csomagolást, a szállítást és a számlázást shopról shopra kell követni, az idő nagy része kézi kereséssel, másolással és ellenőrzéssel megy el, és könnyű elveszíteni, melyik rendelés hol tart.
Közben a számok sem egyszerűek: több deviza, országonként eltérő ÁFA-szabályok, kézzel felvett rendelések, utólag módosított címek és tételek, és olyan rendelések, amelyek a webshopban már lezártak, de a számlázásnál vagy a feladásnál még élnek.
A feladat egy olyan központi rendszer volt, amely a webshopok rendeléseit egy felületen összefogja, innen a nyomtatástól a csomagfeladáson át a számlázásig minden megoldható, és közben a számok átláthatók maradnak, anélkül, hogy a rendszer bármit felülírna, amit nem szabad.
Amit tudnia kellett
- Több webshop rendelése egy helyen, automatikus szinkronnal – akkor is, ha egy webhook elveszik
- Rendelések kezelése: státusz, cím, tételek, fizetési és szállítási mód szerkesztése, a változás visszaírásával a webshopba
- Kézi rendelés felvétele és tömeges import táblázatból
- Nyomtatható rendelés-összesítő és szállítási címkék, egyesével és tömegesen
- Csomagfeladás a felületről, több futárral, valós idejű állapotkövetéssel
- Számlázás a Számlázz.hu-n keresztül, shoponkénti számlaszám-sorozattal
- Automatikus e-mailek a vásárlónak, magyarul és angolul, a shop saját feladójával
- Kimutatások devizánként, tájékoztató ÁFA-besorolással
- A pénzügyi rendszer és a CRM kiszolgálása védett, csak olvasható adatkapcsolattal
- Felhasználók, napló, és mobilról is használható felület
A megoldás
Amit építettem
A rendszer minden webshop rendelését egy közös adatbázisba gyűjti: azonnal, amint a webshop jelzi, és óránként egy automatikus egyeztetéssel, amely az esetleg elveszett eseményeket pótolja. A rendeléseken végzett módosítások – a státusz, a cím, a tételek, a fizetési és szállítási mód – a feldolgozás alatt álló rendeléseknél visszakerülnek a webshopba is. A lezárt rendeléseknél a módosítás szándékosan nem lehetséges, mert egy már kiszámlázott vagy feladott rendelésnél félrevezető lenne.
A mindennapi munka egy felületen megy: szűrhető, kereshető rendeléslista (a webshop saját rendelésszámára is), forrás-színekkel és nyomtatási jelöléssel, tömeges nyomtatással; kézi rendelés felvétele vásárló- és termékkeresővel; tömeges import Excelből, mintafájllal és legördülő listákkal. A rendeléseket sosem töröljük, csak archiváljuk, és a sikertelen vagy visszamondott rendelés magától archívnak számít.
A rendelés oldaláról közvetlenül feladható a csomag – a KVIKK-en át a legtöbb hazai futárral, vagy DHL Express-szel kétlépcsős, jóváhagyás-köteles folyamatban –, kiállítható a számla a Számlázz.hu-n, és kiküldhető a vásárlónak szóló e-mail. Az e-mail-sablonok alapból kikapcsoltak, és bekapcsolás után csak az új eseményekre reagálnak, így a régi rendelésekre nem megy ki semmi visszamenőleg.
A Dashboard és a statisztikák a rendelésekből készülnek: devizánként külön, az összesített nézethez a napi árfolyamon átváltva, tájékoztató ÁFA-bontással. A rendelésenkénti ÁFA-besorolás a szabályok sorrendjében dől el: kézi felülírás, a shop saját kulcsa, EU-n kívüli rendelésnél 0%, EU-s céges vásárlónál fordított adózás, belföldi cégnél az általános kulcs, magánszemélynél az ország általános kulcsa. Ez tájékoztató jellegű, és sosem íródik vissza a webshopba. A rendszer ezeken felül egy védett, csak olvasható adatkapcsolaton keresztül szolgálja ki a Woodestic pénzügyi rendszerét és a CRM-et.
-
01
Több webshop, egy felület
A rendelések azonnal (webhook) és óránként (egyeztetés) érkeznek, a teljes történet kézi szinkronnal is lekérhető; a Dashboardon shoponként látszik, mikor járt utoljára a szinkron.
-
02
Visszaírás a webshopba
A státusz, a cím, a tételek, a fizetési és szállítási mód a feldolgozás alatt álló rendeléseknél a WooCommerce-be is visszakerül; a sikertelen visszaírás jelezve van.
-
03
Kézi rendelés
Vásárló- és termékkereső (az összes webshop katalógusából), szabadon választható deviza, szállítási díj, megjegyzések rendelés- és tételszinten, címmásolás számlázásiból szállítási címre.
-
04
Tömeges import
Excel/CSV import mintafájllal és súgó-fülön; legördülő listák a teljes katalógusból és a termék tulajdonságaiból; a sorok rendelésekké állnak össze, a hibás sorok okával együtt.
-
05
Nyomtatás
A4-es rendelés-összesítő, tömeges nyomtatás, „csak új" szűrés; a nyomtatás tényét, idejét és végrehajtóját a rendszer rögzíti és mindenhol jelzi.
-
06
Forrás-színkódok
Minden webshopnak saját színe van, a kézi rendelések semleges szürkét kapnak; a szín sosem az egyetlen jelzés (a szöveges címke mindig látszik), és a kontraszt világos és sötét módban is ellenőrzött.
-
07
Csomagfeladás – KVIKK
GLS, MPL, Foxpost, Packeta, DPD és FámaFutár; csomagpont-választó és automatikus csomagpont-felismerés, becsült súly a termékekből, deviza-átváltott érték, méret- és súlykorlátok, címkék A4-en 2×2-es elrendezésben, csomagátadási jegyzék, valós idejű állapotkövetés.
-
08
Csomagfeladás – DHL Express
Díjkérés minden elérhető szolgáltatásra, szolgáltatás kiválasztása, kézi jóváhagyás a feladás előtt (a feladás nem vonható vissza); vámkezelés, a vámáru-nyilatkozat a rendelés tételeiből automatikusan.
-
09
Számlázás – Számlázz.hu
Számla, sztornó (új, helyesbítő bizonylattal), befizetés, PDF és XML, NAV-os adószám-ellenőrzés; shoponként saját számlaszám-sorozat; a korábbi számlák rendelésekhez párosítása.
-
10
E-mailek
A közös AWS SES-kapcsolaton, shoponkénti feladóval; szerkeszthető magyar és angol sablonok élő előnézettel; vészleállító kapcsoló és külön e-mail napló sikeres és sikertelen kísérletekkel.
-
11
Dashboard
Havi/negyedéves/éves nézet, lapozható időszak; bevétel devizánként bruttó és nettó vonallal; összesített bevétel átváltva; státusz-eloszlás; top termékek; aktuális rendelések lenyitható lista; webshopos és kézi rendelések aránya.
-
12
Termékcsalád-riport
Egyedi, negyedéves bontású kimutatás nettó árakkal, a rendelés napi árfolyamán átváltva, a szett-típus tulajdonság szerinti bontással.
-
13
Statisztikák
Értékesítés, vásárlók (új és visszatérő, top vásárlók, országok), termékek és működés (még nem nyomtatott rendelések, átfutási idők) – az előző időszakhoz viszonyítva.
-
14
ÁFA-kimutatás
Devizánként bruttó, nettó és ÁFA; rendelésenként kézzel felülírható besorolás; tájékoztató, a webshopba nem kerül vissza.
-
15
Termékek
A katalógus szinkronja (shoponként több ezer termékig); a név, a leírás és az ár szerkeszthető és visszaírható; a készlet és a képek szándékosan csak olvashatók.
-
16
WooCommerce-furcsaságok
A „bármelyik" tulajdonságok (szabadon választhatók a vásárlónál) külön kezelve, így a rendeléseken és a manuális felvitelnél is helyesen jelennek meg.
-
17
Vásárlók
A rendelésekből, e-mail alapján összesítve; adatlap devizánként külön összesítve; a számító és a nem számító rendelések elkülönítve.
-
18
Gyorskeresés
Globális keresés (Ctrl/Cmd+K) rendelések, termékek és vásárlók között.
-
19
Felhasználók és napló
Egyéni fiókok, monogramos avatar vagy profilkép; minden módosító művelet naplózva, a végrehajtó nevével – a rendszer és az ember által indított szinkron is megkülönböztetve.
-
20
Biztonság
Jelszó-hash, aláírt munkamenet, opcionális reCAPTCHA a belépésnél, védett külső végpontok.
-
21
Sötét mód és mobil
Felhasználónként megjegyzett megjelenés; telepíthető alkalmazás (PWA) saját telepítési felajánlással, amely az élő adatot sosem tárolja gyorsítótárban.
-
22
Budapesti idő
A napi, havi határok, a „ma" és a diagramok a szerver időzónájától függetlenül helyesek, óraátállás napjain is.
Technológia
Mi fut a háttérben?
-
Next.js és TypeScript
A felület és a szerveroldal egy alkalmazásban.
-
Prisma és MySQL
Az adatmodell, migrációkkal, ellenőrzött sémafejlesztéssel.
-
WooCommerce REST API és webhookok
A rendelések és termékek szinkronja mindkét irányban.
-
KVIKK, DHL Express (MyDHL) és Számlázz.hu
Csomagfeladás és számlázás közvetlen API-kapcsolaton.
-
Tailwind CSS és shadcn/ui
Felület, világos és sötét módban.
-
Recharts és react-to-print
Diagramok és a nyomtatható nézetek.
-
AWS SES
Tranzakciós e-mailek.
-
Docker és Coolify
Telepítés, saját szerveren.
Hogyan közelítem
Amire az ilyen projekteknél figyelek
A devizák sosem keverednek
Minden összeg a saját devizájában jelenik meg; az összesített nézet külön, jelölt, napi árfolyamos kiegészítés.
Rendelést nem törlünk
Archiválás és automatikus archív státusz: a nyilvántartás teljes marad, a kimutatások mégis tiszták.
Csak az számít, ami számít
A vásárlói érték és minden kimutatás csak a számító rendelésekből (feldolgozás alatt, teljesítve, tartva) készül; a többi látható, de nem torzít.
Idősík-védelem a szinkronban
Egy elavult olvasás nem írja felül a frissebb állapotot, a sikertelen visszaírás pedig jelezve van, nem vész el csendben.
Ahol nincs visszavonás, ott ember dönt
A csomagfeladás és a számlázás kézi indítású, kivétel nélkül jóváhagyással; a lezárt rendelést nem írjuk át.
Amit nem kértek, azt nem küldjük
Az e-mail-sablonok alapból kikapcsoltak, bekapcsolás után csak új eseményekre reagálnak, és csak tényleges státuszváltásnál.
Csak ahol megbízható, ott írunk vissza
A cím, a tételek és az ár visszaíródik; a készlet, a kategóriák és a képek nem, mert egy hibás készlet-szinkron túlértékesítéshez vezetne.
Ellenőrizve a valós rendszeren
A WooCommerce viselkedését a forráskódból és élő adaton ellenőriztük, ahol a dokumentáció nem részletezi.
Budapesti idő mindenhol
A napi, havi határok és a „ma" a szerver időzónájától függetlenül helyesek.
Elszámoltathatóság jogosultsági rendszer helyett
Lapos jogosultsági modell, de minden módosítás nevesítve naplózva van.
Mobilon is
A felület telepíthető, de az élő rendelésadatot soha nem tárolja gyorsítótárban.
Eredmény
Mi lett belőle?
A rendszer a Woodestic központi rendeléskezelő felülete: hét aktív webshop rendelése egy helyen, a nyomtatástól a csomagfeladáson át a számlázásig. A Woodestic Finance Dashboard a bevételi adatait is innen kapja.
A rendszer nem a webshopok helyett, hanem azok fölött dolgozik: ahol a webshop a forrás, ott a webshopból tanul, ahol az OMS a forrás, ott nem ír vissza – és ez a határ mindig látható.
További esettanulmányok
-
Egyedi rendszer
Woodestic Finance Dashboard
Esettanulmány → -
Egyedi rendszer
Elállási Űrlap (WooCommerce)
Esettanulmány → -
Egyedi rendszer
WooCommerce Tiered Pricing
Esettanulmány → -
Egyedi rendszer
MailerLite Agent – BAGázs
Esettanulmány → -
Weboldal
Virtuális Akadémia
Esettanulmány → -
Webshop
Woodestic (HU)
Esettanulmány → -
Webshop
Woodestic (EN)
Esettanulmány → -
Webshop
Házhozsüti
Esettanulmány → -
Saját projekt
Kemencebolt
Esettanulmány → -
Saját projekt
Kemencebence
Esettanulmány →
Kapcsolat
Hasonlót szeretnél?
Írd meg két mondatban, mit szeretnél építeni vagy rendbe tenni. Megnézem, és őszintén megmondom, hogyan látom.
[email protected] +36 30 731 6893Kíváncsi vagy, mit építettem? Nézd meg a munkáimat →