Koristne informacije ...
Click and collect integracija: tehnični vodič za IT ekipe
Click and collect integracija: tehnični vodič za IT ekipe

Najbolj zanesljiva pot je uporaba API orkestracije prek middleware plasti z realnočasno sinhronizacijo zalog, ali neposredna custom API integracija, kadar potrebujete popoln nadzor nad podatkovnim tokom. Uspeh integracije stoji na treh temeljih: zanesljivi avtentikaciji proti prevozniku ali POS sistemu, sinhroni zalogi med kanali in jasnih obvestilih stranki ob vsakem statusu naročila. V naslednjih razdelkih si oglejmo arhitekturo, konkretne primere in korake, ki jih boste potrebovali za produkcijsko implementacijo.
Na kratko:
- Pri večkanalnih prodajnih okoljih je najbolj zanesljivo uporabljati middleware ali custom API integracijo za sinhronizacijo zalog in podatkov, saj zagotavljata popoln nadzor.
- Za odpiranje in prevzem naročil je nujno ustvariti unikatne časovno omejene prevzemne kode, ki jih je mogoče preveriti prek API klicev ob prevzemu.
- Povezava s prevoznikom potrebuje jasno določen REST vmesnik in pravilno nastavitev za preprečevanje kompresiranega odziva, kar je ključnega pomena za uspešno integracijo.
- Arhitektura mora pregledno ločiti preverjanje razpoložljivosti in rezervacijo zaloge, da se prepreči prodaja zadnjega izdelka več strankam hkrati.
- Pri izbiri integracije je pomembno razmišljati o prihodnjem obsegu kanalov, saj menjava arhitekture kasneje lahko povzroči znatne stroške.
Kazalo
- Osnovna arhitektura: od naročila do prevzema
- Plugini, headless API ali middleware: kako izbrati pravo pot
- Povezava s prevoznikom: praktičen primer Pošte Slovenije
- Sinhronizacija zalog in POS: zgled BOPIS arhitekture
- Checkout, obvestila in varen prevzem naročila
- Varnost, testiranje in pogoste napake pri integraciji
- Implementacijski checklist in časovnica projekta
- Kdaj se odločiti za custom integracijo pri zunanjem izvajalcu
- Scoped pregled vaše integracije z Moxy-web
- Viri
- Pogosta vprašanja
Osnovna arhitektura: od naročila do prevzema
Vsaka click and collect integracija sledi podobnemu vzorcu podatkovnega toka. Stranka v košarici izbere prevzemno mesto namesto dostave, sistem preveri razpoložljivost artikla in ustvari rezervacijo (hold) na zalogi. Naročilo nato potuje v sistem za upravljanje naročil ali neposredno v POS trgovine, kjer osebje pripravi izdelek in ga označi kot pripravljen za prevzem.

Ob tem koraku se običajno generira pickup token ali QR koda, ki se poveže z identifikatorjem naročila in služi kot dokazilo ob prevzemu. Ta token mora biti unikaten in časovno omejen, saj se izognete tveganju, da ga nekdo uporabi po zaključku transakcije.
Ključna tehnična odločitev je, ali sinhronizacija poteka v realnem času ali z zamikom (eventualna konsistenca). Realnočasna sinhronizacija je nujna, kadar imate omejeno zalogo v več trgovinah hkrati, medtem ko eventualna sinhronizacija z minutnim zamikom pogosto zadostuje za manjše trgovine z enim skladiščem.
Plugini, headless API ali middleware: kako izbrati pravo pot
Odločitev med tremi glavnimi pristopi je odvisna od kompleksnosti vašega prodajnega okolja in števila kanalov, ki jih morate povezati.
- Vtičniki za uveljavljene platforme ponujajo hitro postavitev in so smiselni za enostavne primere z eno trgovino in enim skladiščem.
- Custom API integracija daje popoln nadzor nad logiko rezervacij, statusov in obvestil, vendar zahteva več razvojnega časa.
- Middleware plast, na primer Azure Logic Apps ali sistem čakalnih vrst, deluje kot orkestrator med e-trgovino, POS sistemom in prevoznikom ter prevzame usklajevanje dogodkov.
Middleware pristop se izkaže za najbolj vzdržljivega v večkanalnih okoljih, kjer se naročila stekajo iz spletne trgovine, mobilne aplikacije in fizične trgovine hkrati.
Strokovni nasvet: pri izbiri arhitekture vedno preverite, koliko prodajnih kanalov boste povezovali v naslednjih dveh letih, saj menjava middleware plasti kasneje pomeni podvojen razvojni strošek.
Povezava s prevoznikom: praktičen primer Pošte Slovenije
Kadar click and collect vključuje tudi možnost odpošiljanja neprevzetega naročila ali vračila, boste potrebovali povezavo s prevoznikom. Pošta Slovenije ponuja REST vmesnik za oddajo pošiljk, ki zahteva predhodno registracijo komitenta in sledi jasno določenemu zaporedju klicev.
- Najprej pridobite GUID žeton prek metode R_GetGuid, ki deluje kot seja za nadaljnje klice.
- Podatke o pošiljki nato oddate z metodo C_PostData, status pa preverjate prek R_GetStatus.
- Dostop poteka prek BasicAuth avtentikacije, odgovori strežnika pa so komprimirani z GZip.
- Pri testiranju v orodjih kot je Postman morate nastaviti header Accept-Encoding: identity, sicer boste prejeli nečitljiv komprimiran niz.
Struktura pošiljke in polja CN23 so podrobno opisana v dokumentaciji eOddajaService JSON, kjer najdete tudi primere implementacije v PHP in C#. Priporočamo, da ločite testno in produkcijsko okolje že v fazi registracije komitenta, saj se poverilnice med njima razlikujejo.
Sinhronizacija zalog in POS: zgled BOPIS arhitekture
Osrednje tehnično vprašanje je, kako preprečiti, da bi dve stranki hkrati kupili zadnji kos istega izdelka. Rešitev leži v razlikovanju med preverjanjem razpoložljivosti (check availability) in dejansko rezervacijo zaloge (inventory hold), ki artikel takoj umakne iz prodaje na drugih kanalih.
Referenčna arhitektura za BOPIS pri Dynamics 365 Commerce opisuje ta življenjski cikel: sistem preveri zalogo ob checkoutu, ustvari naročilo v centralnem sistemu, obvesti trgovino za pripravo in posodobi status ob prevzemu. Model rezervacije ob oddaji naročila se izkaže za najbolj zanesljivega pri preprečevanju prodaje neobstoječe zaloge v večkanalnih okoljih.
Kadar zaloge dejansko ni dovolj, mora sistem sprožiti mehanizem za razveljavitev rezervacije in ponuditi stranki nadomestno rešitev, na primer dostavo iz drugega skladišča. Več o tem, kako preprečiti napačno prikazano zalogo, najdete v našem članku o upravljanju zaloge v spletni trgovini.

Checkout, obvestila in varen prevzem naročila
Uporabniška izkušnja pri prevzemu se začne že v checkoutu, kjer mora stranka jasno videti izbiro prevzemnega mesta in pričakovani čas priprave.
- V checkout dodajte izbor prevzemne lokacije in polje za telefonsko številko, ki je ključna za obveščanje.
- Ob statusu “pripravljeno za prevzem” generirajte QR kodo ali enkratno geslo (OTP) s časovno omejitvijo, na primer 48 ur.
- Pošljite obvestilo prek SMS ali e-pošte, pri čemer SMS zagotavlja hitrejši odziv za nujne prevzeme.
- Ob prevzemu preverite kodo prek istega API klica, ki je ustvaril rezervacijo, in status takoj posodobite v POS sistemu, pri čemer je priporočljivo uporabiti časovno omejeno kodo za varnost.
Podobno logiko obvestil in preverjanja pogosto potrebujete tudi pri plačilih, kar je opisano v članku o integraciji plačilnih sistemov.
Varnost, testiranje in pogoste napake pri integraciji
Vsaka povezava med e-trgovino, POS sistemom in prevoznikom mora potekati prek HTTPS, poverilnice pa se nikoli ne smejo hraniti v odprtem besedilu v kodi ali repozitoriju. Za BasicAuth poverilnice in žetone uporabite varno shrambo skrivnosti, ki jo ponuja vaše gostovalno okolje.
Pred zagonom izvedite integracijske teste, ki preverijo tudi robne primere: zavrnjeno avtentikacijo, časovno potekel GUID žeton in asinhrone spremembe statusa. Simulirajte tudi obremenitev ob konicah, na primer med prazničnimi akcijami.
Najpogostejša napaka pri povezavi s Pošto Slovenije je napačno nastavljen header Accept-Encoding, kar vrne komprimiran in nečitljiv odziv. Druga pogosta težava je neupoštevanje veljavnosti GUID žetona, kar povzroči zavrnjene klice sredi transakcije.
Implementacijski checklist in časovnica projekta
Projekt click and collect integracije praviloma poteka v petih fazah, vsaka z jasnim izhodom pred prehodom na naslednjo.
- Scoping: določite kanale, prevoznike in POS sisteme, ki jih je treba povezati.
- Arhitektura: izberete med vtičnikom, custom API in middleware pristopom glede na kompleksnost.
- Razvoj: implementirate rezervacijo zaloge, generiranje kod za prevzem in obvestila.
- Integracijski testi: preverite robne primere, avtentikacijo in obremenitev.
- Pilot in produkcija: zaženete na omejenem naboru izdelkov ali trgovin, preden razširite na celoten katalog.
Strokovni nasvet: fazni zagon na eni trgovini razkrije težave z zalogo in obvestili, preden jih ponovite na desetih lokacijah.
Podoben potek smo opisali tudi v primeru integracije spletne aplikacije z logistiko, kjer je faza pilota razkrila manjkajoč rollback mehanizem še pred polnim zagonom.
Kdaj se odločiti za custom integracijo pri zunanjem izvajalcu
Kadar imate več prodajnih kanalov, lastno POS okolje ali potrebo po povezavi z več prevozniki hkrati, se custom integracija običajno bolj obnese kot generičen vtičnik. Takrat je smiselno sodelovati z izvajalcem, ki razume tako e-trgovino kot logistične in ERP sisteme ter lahko prilagodi arhitekturo vašemu obsegu poslovanja, ne obratno.
— Ziga
Scoped pregled vaše integracije z Moxy-web
Moxy-web pripravi oceno obsega za vašo click and collect integracijo, ki vključuje analizo obstoječih sistemov, izbiro arhitekture in razvoj po meri, brez uporabe vnaprej pripravljenih platform. Ker kodo razvijamo sami, lahko rešitev prilagodimo vašemu POS sistemu, zalogi in izbranemu prevozniku brez tehničnih omejitev tuje platforme. Prvi korak je pogovor o obsegu projekta na Moxy-web, kjer dobite oceno dela in časovnice pred podpisom dogovora.
Viri
Za tehnične podrobnosti preverite dokumentacijo Pošte Slovenije o REST servisu, referenčno arhitekturo za BOPIS pri Dynamics 365 in pojasnila o DDV pri e-trgovini.
Pogosta vprašanja
Kaj pomeni click and collect integracija za spletno trgovino?
Gre za tehnično povezavo med spletno trgovino, sistemom zaloge in prodajnim mestom, ki stranki omogoča naročilo na spletu in prevzem v trgovini. Integracija zajema rezervacijo zaloge, obveščanje stranke in preverjanje ob prevzemu.
Ali naj uporabim vtičnik ali custom API za integracijo?
Vtičnik je smiseln pri enostavnem okolju z eno trgovino, custom API pa pri več kanalih ali lastnem POS sistemu. Middleware plast je najbolj vzdržljiva izbira, kadar povezujete tri ali več sistemov hkrati.
Zakaj moj klic na API Pošte Slovenije vrača nečitljiv odziv?
Odziv je najverjetneje komprimiran z GZip, kar se zgodi, kadar v testnem orodju ni nastavljen header Accept-Encoding: identity. Po nastavitvi tega headerja bi moral biti odziv strežnika berljiv v čistem JSON formatu.
Kako preprečim prodajo izdelka, ki ga ni na zalogi?
Rešitev je rezervacija zaloge ob oddaji naročila, ne le preverjanje razpoložljivosti ob prikazu izdelka. Ta pristop, opisan v referenčni arhitekturi BOPIS, takoj umakne rezervirano količino iz prodaje na drugih kanalih.
Koliko časa traja implementacija click and collect integracije?
Časovnica je odvisna od števila kanalov in izbrane arhitekture, projekt pa običajno poteka skozi scoping, razvoj, testiranje in pilotni zagon pred polno produkcijo. Za natančno oceno dela in rokov za vaš primer je najbolje pridobiti oceno obsega pri izvajalcu.
Priporočeno