Vaš spletni administrator mora pripraviti skripte (npr. PHP), katere služijo kot vmesni člen med spletno trgovino in programom DPS. Template PHP skripte lahko prenesete tukaj. Ponavadi se pripravita dve skripti (ena za delo z artikli in druga za delo s spletnimi naročili)
Stranka nato v modulu za spletno trgovino s klikom na gumb “Posodobi spletno trgovino” ali “Prenesi spletna naročila” sproži sinhronizacijo, katera kliče skripte za sihnronizacijo.
Integracija omogoča:
Prenos spletnih naročil
- Možno obračanje naziva za fizične osebe in dodajanje kode države poštni številki
- Možen prenos primarnega kontakta v podjetju
Posodabljanje artiklov
- Podatki za sinhronizacijo: Šifra, Naziv, spletni opis, merska enota, cena artikla (redna cena + spletna cena), teža artikla,zaloga artikla (v primeru blaga), slike artikla, kategorije, garancija, rok dobave, 5 dodatnih polj za podatke po meri
Osveževanje zalog artiklov
Povezovalne tabele:
- Povezovalne tabele služijo temu, da se pri prenosu spletni naročil pravilno nastavi vrsta dostave in vrsta plačila.
- Vsako od povezovalnih tabel izpolnite tako, da na levi strani (stolpec “Naziv – spletna trgovina”) vpišete vrste dostave oziroma vrste plačil, ki jih ponujate na vaši spletni trgovini. Pri tem se morajo nazivi točno ujemati z nazivi na spletni trgovini!
- Pri vrstah plačila lahko dodatno izberete opcije za davčno potrjevanje ali samodejno spremembo statusa plačila predračuna glede na vrsto plačila.
SINHRONIZACIJA ARTIKLOV
Prenese in kreira ali popravi podatke artiklov. Podatki se prenašajo IZ POSLOVANJA V SPLETNO TRGOVINO
Korak 1 ( Action=Upload )
Na strani poslovanja, se pripravijo podatki o artiklih za objavo v spletni trgovini v JSON formatu. Ti podatki se pošljejo v spletno trgovino preko HTTPPOST protokola.
Kliče se skripta za delo z artikli, podatki o artiklih se pošljejo POST field-u “Artikli” v sledečem JSON formatu:
{
“ID”:*ID artikla* (ID artikla se navezuje na Poslovanje),
“Sifra”:Base64Encode ( *šifra artikla* ),
“Naziv”:Base64Encode ( *naziv artikla* ),
“Opis”:Base64Encode ( *spletni opis artikla* ),
“MerskaEnota”:*merska enota artikla*,
“SlikeSync”:1/0 (če je 1, sledijo podatki o slikah),
“Slika”:Base64Encode ( *osnovna slika artikla* ),
“Slika1”:Base64Encode ( *dodatna slika 1* ),
“Slika2”:Base64Encode ( *dodatna slika 2* ),
“Pdf”:Base64Encode ( *pdf* ),
“Teza”:*teža artikla*,
“CenaBrezDavka”:*redna cena artikla (brez DDV)*,
“SpletnaCenaBrezDavka”:*spletna cena artikla (brez DDV)*,
“StopnjaDDV”:*stopnja DDV*,
“Kategorije”:Base64Encode ( *Kategorije artikla (kot so zapisane v Poslovanju)* ),
“Garancija”:*garancijski rok artikla*,
“RokDobave”:*rok dobave artikla*,
“Izpostavi”:*izpostavi artikel (1 ali NULL)*,
“Akcija”:*artikel v akciji (1 ali NULL)*,
“Novo”:*nov artikel (1 ali NULL)*,
“Zaloga”:*trenutna zaloga artikla*,
“KategorijeBolha”:Base64Encode ( *kategorije-bolha* ),
“DodatnoPolje1”:Base64Encode ( *naziv dodatnega polja 1*^|^*vsebina dodatnega polja 1* ),
“DodatnoPolje2”:Base64Encode ( *naziv dodatnega polja 2*^|^*vsebina dodatnega polja 2* ),
“DodatnoPolje3”:Base64Encode ( *naziv dodatnega polja 3*^|^*vsebina dodatnega polja 3* ),
“DodatnoPolje4”:Base64Encode ( *naziv dodatnega polja 4*^|^*vsebina dodatnega polja 4* ),
“DodatnoPolje5”:Base64Encode ( *naziv dodatnega polja 5*^|^*vsebina dodatnega polja 5* ),
“PovezaniArtikli”:*seznam ID-jev povezanih artiklov (posamezni ID-ji so med seboj ločeni z nizom “^|^”)*,
“MatricniArtikel”:*Stanje matričnega artikla (Parent ali Child ali 0)*,
“MatricniParentID”:*ID glavnega matričnega artikla (samo v primeru, ko je MatricniArtikel=Child)*,
“Lastnosti”:*Lastnosti matričnega artikla (v primeru MatricniArtikel=Parent – vsebuje nazive lastnosti; v primeru MatricniArtikel=Child vsebuje dejanske lastnosti artikla; v primeru MatricniArtikel=0, NULL)*
}
Primer podatkov o artiklih:
{ "Artikli": [ { "ID":"1005", "Sifra":"MTAwMDU=", "Naziv":"Vm9ka2EgS2F1ZmZtYW4gU29mdA==", "Opis":"VnNlYmluYSBzdGVrbGVua...va3Vzb20gbWV0ZS4=",API vrne niz “OK“, če pri shranjevanju artiklov ne pride do napak; v nasprotnem primeru API vrne niz “#ERROR! – *sporočilo o napaki*”
"MerskaEnota":"KOM", "SlikeSync":"1", "Slika":"/9j/4AAQSkZJRgA...CiiigD/9k=", "Slika1":"/9j/4AAQSkZJRg...ooooAKKKKAP/Z", "Slika2":"/9j/4AAQSkZRgA...AUUUUAFFFFAH/2Q==", "Pdf":"", "Teza":"0", "CenaBrezDavka":"70", "SpletnaCenaBrezDavka":"50", "StopnjaDDV":"0", "Kategorije":"SHJhbmEsIFBpamHEjWU=", "Garancija":"", "RokDobave":"", "Izpostavi":"0", "Akcija":"0", "Novo":"", "Zaloga":"95", "KategorijeBolha":"", "DodatnoPolje1":"UG9samUgMTpefF5hYWE=", "DodatnoPolje2":"UG9samUgMjpefF5iYmI=", "DodatnoPolje3":"UG9samUgMzpefF5jY2M=", "DodatnoPolje4":"UG9samUgNDpefF5kZGQ=", "DodatnoPolje5":"Xnxe", "PovezaniArtikli":"", "MatricniArtikel":"0" }, { "ID":"1005", "Sifra":"MTAwMDU=", "Naziv":"a25qaWdh=", "Opis":"emVsbyB6YW5pbWl2YSBrbmppZ2E=",
"MerskaEnota":"KOM", "SlikeSync":"0", "Teza":"0", "CenaBrezDavka":"34,36", "SpletnaCenaBrezDavka":"30,12", "StopnjaDDV":"22", "Kategorije":"S25qaWdl", "Garancija":"", "RokDobave":"", "Izpostavi":"0", "Akcija":"1", "Novo":"", "Zaloga":"25", "KategorijeBolha":"", "DodatnoPolje1":"", "DodatnoPolje2":"", "DodatnoPolje3":"", "DodatnoPolje4":"", "DodatnoPolje5":"", "PovezaniArtikli":"", "MatricniArtikel":"Parent", "Lastnosti":"jRFbmNvZGUgKCBBcnRpa2xpOj...pBcnRpa2VsX0xhc3Rub3N0MSAmIC" }, { "ID":"1017", "Sifra":"MTAwMDUMTAw", "Naziv":"a25qaWdh=", "Opis":"emVsbyB6YW5pbWl2YSBrbmppZ2E=",
"MerskaEnota":"KOM", "SlikeSync":"0", "Teza":"0", "CenaBrezDavka":"34,36", "SpletnaCenaBrezDavka":"30,12", "StopnjaDDV":"22", "Kategorije":"S25qaWdl", "Garancija":"", "RokDobave":"", "Izpostavi":"0", "Akcija":"1", "Novo":"", "Zaloga":"25", "KategorijeBolha":"", "DodatnoPolje1":"", "DodatnoPolje2":"", "DodatnoPolje3":"", "DodatnoPolje4":"", "DodatnoPolje5":"", "PovezaniArtikli":"", "MatricniArtikel":"Child", "MatricniParentID":"1005", "Lastnosti":"zdG9zb3RvYWtzamZ4b3drZGxh...8XnxefF58XmJybG9hbHNqZg==" } ] }
Korak 2 ( Action=Verify ):
Poleg POST field-a Action, se pošlje še polje “ValidItems”, ki vsebuje ID-je artiklov (v Base64-encoded JSON formatu), ki so v modulu za spletno trgovino označeni za objavo.
Skripta primerja ta seznam ID-jev z ID-ji artiklov objavljenih v spletni trgovini in po potrebi pobriše artikle, ki več niso mišljeni za objavo v spletni trgovini.
Primer podatkov za potrditev objavljenih artiklov:
{"valid items":["1005","1007","1009"]}
API vrne niz “OK”
Alternativni korak ( Action=DeleteAll ):
Če POST field Action vsebuje niz “DeleteAll”to pomeni, da v modulu za spletno trgovino ni noben artikel označen za objavo. V tem primeru je potrebno tudi na spletni trgovini pobrisati vse objavljene artikle.
API vrne niz “OK”
Alternativni korak ( Action=StockRefresh ):
Če POST field Action vsebuje niz “StockRefresh”, gre za osveževanje zaloge vseh artiklov, ki so objavljeni v spletni trgovini. V POST field-u “StockList” se pošlje seznam razpoložjivih zalog za vse artikle, ki so trenutno objavljeni v spletni trgovini (v Base64-encoded JSON formatu). Pošlje se ID artikla in številčni podatek o razpoložljivi zalogi.
Primer podatkov za osveževanje zalog objavljenih artiklov:
{"zaloge artiklov":[ { "sifra artikla":"10005", "razpolozljiva zaloga":"95" }, { "sifra artikla":"12825", "razpolozljiva zaloga":"1992" }, itd... ]}API vrne niz “OK“
SINHRONIZIRANJE POSLOVNIH PARTNERJEV IN SPLETNIH NAROČIL
Korak 1 ( Action=BusinessPartnersDownload ):
Prenese nove/popravljene poslovne partnerje oz. kupce v program DPS.
Skripta vrne podatke o poslovnih partnerjih v JSON formatu.
Podatki se izpišejo kot grobi (raw) tekst (npr. Funkcija echo v PHP) v naslednjem formatu:
{
“id”:”poslovni_partner_id”, (ID se navezuje na ST)
“naziv”:”poslovni_partner_name”,
“ulica”:”poslovni_partner_address”,
“postna st”:”poslovni_partner_post_num”,
“mesto”:”poslovni_partner_post_name”,
“drzava”:”poslovni_partner_country”,
“davcna”:”poslovni_partner_ddv_id”,
“telefon”:”poslovni_partner_phone”,
“email”:”poslovni_partner_email” (Po tem polju se dela matching v Poslovanju)
}
Primer podatkov o poslovnih partnerjih:
{ "partnerji": [ { "id":"123", "naziv":"Naziv1", "ulica":"Naslov1", "postna st":"1000", "mesto":"Ljubljana", "drzava":"Slovenija", "davcna":"SI12345678", "telefon":"123-45-67", "email":"[email protected]" }, { "id":"124", "naziv":"Naziv2", "ulica":"Naslov2", "postna st":"3000", "mesto":"Celje", "drzava":"Slovenija", "davcna":"", "telefon":"041-123-456", "email":"[email protected]" } ] }V primeru, da ni nobenega partnerja za sinhronizacijo, mora API vrniti niz “#NO_NEW_PARTNERS”
Korak 2 ( Action=BusinessPartnersConfirm ):
Poleg POST field-a Action, se pošlje še polje “ValidItems”, ki vsebuje ID-je poslovnih partnerjev (v Base64-encoded JSON formatu), ki so bili uspešno prenešeni v DPS.
Skripta označi poslovne partnerje s temi ID-ji kot sinhronizirane (zopet se nastavijo kot nesinhronizirani, če pride do spremembe podatkov).
Primer podatkov za potrditev prenosa poslovnih partnerjev:
{"valid items": ["12345","12346","12347","12348","12349","12350",itd...]}
API vrne niz “OK”
Korak 3 ( Action=WebOrdersDownload ):
Prenese podatke novih spletnih naročil v program Poslovanje
Funkcija vrne podatke o spletnih naročilih in njihovih postavkah v JSON formatu.
Podatki se izpišejo kot grobi (raw) tekst (npr. Funkcija echo v PHP) v naslednjem formatu:
{
“id”:”1000123″, (id se navezuje na spletno trgovino)
“partner id”:”123″,
"kupec naziv": "Naziv k1",
"kupec davcna": "12345678",
"kupec ulica": "Naslov k1",
"kupec postna st": "3000",
"kupec mesto": "Celje",
"kupec drzava": "Slovenija",
"kupec telefon": "041-123-456",
"kupec email": "[email protected]",
“datum”:”4.4.2018″,
“stevilka”:”123-2018″,
"sklic": "001232018",
“vrsta dostave”:”dostava na dom”,
“dostavna sluzba”:”DHL”,
“vrsta placila”:”mastercard”,
“davcno potrjevanje”:”1″,
“znesek dostave”:”5,93″,
“stopnja DDV dostave”:”22″,
“dostava naziv”:”Naziv 1″,
“dostava ulica”:”Naslov 1″,
“dostava postna st”:”1000″,
“dostava mesto”:”Ljubljana”,
“dostava drzava”:”Slovenija”,
“dostava telefon”:”123-45-67″,
“dostava email”:”[email protected]”,
"vrsta prodaje": "SLO",
“opombe”:”Opombe naročila”,
“postavke”: [
{
“sifra artikla”:”ABC123″, (šifra artikla pride iz poslovanja pri sinhronizaciji artiklov)
“kolicina”:”5″,
“cena”:”12,89″, (prenaša se cena z DDV za eno enoto)
“stopnja DDV”:”22″,
“znesek popusta”:”6,44″ (prenaša se skupna vrednost vseh popustov na postavki)
}
] }
V primeru, ko ni nobenega naročila za sinhronizacijo, mora API vrniti niz “#NO_NEW_ORDERS”
Primer podatkov o spletnem naročilu:
{ "narocila": [ { "id":"1000123", "partner id":"123",Če je naročilo opravljeno brez registracije (Guest) je partner id = 0 in kot kupec se doda privzeti partner za Goste
"kupec naziv": "Naziv k1",
"kupec davcna": "12345678",
"kupec ulica": "Naslov k1",
"kupec postna st": "3000",
"kupec mesto": "Celje",
"kupec drzava": "Slovenija",
"kupec telefon": "041-123-456",
"kupec email": "[email protected]", "datum":"4.4.2018", "stevilka":"123-2018",
"sklic": "001232018", "vrsta dostave":"dostava na dom", "dostavna sluzba":"DHL", "vrsta placila":"mastercard", "davcno potrjevanje":"1", "znesek dostave":"5,93",
"stopnja DDV dostave":"22", "dostava naziv":"Naziv 1", "dostava ulica":"Naslov 1", "dostava postna st":"1000", "dostava mesto":"Ljubljana", "dostava drzava":"Slovenija", "dostava telefon":"123-45-67", "dostava email":"[email protected]",
"vrsta prodaje": "SLO", "opombe":"Opombe naročila", "postavke": [ { "sifra artikla":"ABC123", "kolicina":"5", "cena":"12,89",
"stopnja DDV":"22",
"znesek popusta":"6,44" }, { "sifra artikla":"DEF100", "kolicina":"2", "cena":"3,7",
"stopnja DDV":"9,5",
"znesek popusta":"0" } ] }, { "id":"1000124", "partner id":"12348",
"kupec naziv": "Naziv k2",
"kupec davcna": "23456789",
"kupec ulica": "Naslov k2",
"kupec postna st": "3000",
"kupec mesto": "Celje",
"kupec drzava": "Slovenija",
"kupec telefon": "041-123-456",
"kupec email": "[email protected]", "datum":"4.3.2018", "stevilka":"120-2018",
"sklic": "001202018", "vrsta dostave":"dostava na dom", "dostavna sluzba":"DHL", "vrsta placila":"PayPal", "davcno potrjevanje":"", "znesek dostave":"7,16",
"stopnja DDV dostave":"22", "dostava naziv":"Naziv 2", "dostava ulica":"Naslov 2", "dostava postna st":"3000", "dostava mesto":"Celje", "dostava drzava":"Slovenija", "dostava telefon":"041-123-456", "dostava email":"[email protected]",
"vrsta prodaje": "EU", "opombe":"morebitne dodatne opombe", "postavke": [ { "sifra artikla":"KLM123", "kolicina":"1", "cena":"7,89",
"stopnja DDV":"0",
"znesek popusta":"0,79" }, { "sifra artikla":"OPR100", "kolicina":"10", "cena":"8,21",
"stopnja DDV":"22",
"znesek popusta":"8,21" } ] } ] }
Korak 4 ( Action=WebOrdersConfirm ):
Poleg POST field-a Action, se pošlje še polje “ValidItems”, ki vsebuje ID-je spletnih naročil (v Base64-encoded JSON formatu), ki so bila uspešno prenešena v Poslovanje.
Skripta označi naročila s temi ID-ji kot sinhronizirana.
Primer podatkov za potrditev prenosa spletnih naročil:
{"valid items": ["1000123","1000124",itd...]}
API vrne niz “OK”.
UVOZ SPLETNIH NAROČIL IZ EXCELA
V kolikor imate manjšo spletno trgovino in ne potrebujete popolne programske izmenjave podatkov med programom DPS in vašo spletno trgovino, lahko uporabite možnost uzvoza spletnih naročil iz Excel formata (.xlsx).
Za delovanje je na strani vaše spletne trgovine potrebno pripraviti izvoz naročil v format .xlsx s sledečo strukturo stolpcev:
A: Naziv kupca
B: Naslov kupca
C: Poštna številka kupca
D: Kraj kupca
E: Država kupca
F: Telefon kupca
G: E-mail kupca
H: Davčna številka kupca
I: Datum naročila
J: Številka naročila
K: Vrsta plačila
L: Strošek dostave
M: Vrsta dostave
N: Dostavna služba
O: Številka paketa
P: Davčno potrjevanje (1/0)
Q: Šifra artikla
R: Količina
S: Prodajna cena brez davka
T: Stopnja DDV
Ko izvozite Excelovo datoteko jo v programu uvozite s pomočjo funkcije “Uvoz naročil iz Excela”, ki jo najdete v glavnem menuju programa pod “Moduli”, “Dodatne funkcije”.
Po uvozu se vam bo na ekranu pokazal seznam uvoženih naroči.