Naziv, znamka in opis
Določite jezik, dovoljeno dolžino, uporabo HTML-ja, prazne vrednosti in polja, ki jih sme prejemnik vsebinsko spreminjati.
XML · CSV · podatkovna specifikacija
Dober podatkovni feed ni samo datoteka, ki jo je mogoče odpreti. Prejemnik mora vsak izdelek enolično prepoznati, pravilno razumeti pomen polj, varno obdelati spremembe in ugotoviti, ali je bil prenos popoln.
Osnova vsake posodobitve
Prejemnik mora vedeti, ali je vrstica nov izdelek ali posodobitev obstoječega. Zato feed potrebuje ID, ki se po objavi ne spreminja. SKU je pogosto dobra izbira, če je zares enoličen in stabilen. EAN je uporaben podatek, vendar ni vedno prisoten in ni vedno primeren kot edini tehnični ključ.
Pri izdelkih z različicami je treba ločiti ID osnovnega izdelka in ID različice. Barva ali velikost ne smeta biti skriti samo v nazivu. Če ima vsaka različica svojo zalogo, ceno ali EAN, mora imeti tudi svoj zapis oziroma jasno gnezdeno strukturo. V specifikaciji zapišemo, katera raven predstavlja izdelek in katera prodajno različico.
Izginotje zapisa iz datoteke ni dovolj jasen signal za izbris. Dogovorite se, ali manjka zaradi napake, filtra ali dejanske ukinitve.
Podatkovni slovar
Ime stolpca PRICE ne pove, ali je cena z DDV-jem, brez DDV-ja, priporočena, akcijska ali nabavna. Enako velja za zalogo, kjer mora biti jasno, ali gre za fizično, razpoložljivo ali prodajno količino ter za katero skladišče. Podatkovni slovar zato vsebuje ime polja, opis, tip, primer, obveznost in pravilo ob manjkajoči vrednosti.
Besedila naj bodo v določenem jeziku ali opremljena z oznako jezika. Kategorije naj uporabljajo stabilne ID-je, ne samo besedilne poti. Slike naj imajo absolutne HTTPS povezave, podprto vrsto datoteke in dogovorjen vrstni red. Pri dimenzijah, teži in količinah vedno navedemo mersko enoto.
Določite jezik, dovoljeno dolžino, uporabo HTML-ja, prazne vrednosti in polja, ki jih sme prejemnik vsebinsko spreminjati.
Zapišite valuto, davčno obravnavo, decimalno ločilo, vrsto cene, veljavnost akcije, vrsto zaloge in skladišče.
Uporabite stabilne kategorijske ID-je, ime lastnosti, vrednost in enoto ter neposredne povezave do slik brez prijavne strani.
Izbira formata
XML naravno predstavi izdelek z več slikami, različicami, kategorijami in lastnostmi. Omogoča tudi formalno validacijo strukture, če je pripravljena shema. Slabost je večja datoteka in zahtevnejše ročno pregledovanje. XML elementov ne poimenujemo po trenutnem prejemniku, temveč po poslovnem pomenu podatka.
CSV je pregleden in učinkovit za en zapis na vrstico. Pri večvrednostnih poljih hitro nastanejo nejasni ločilni znaki ali več povezanih datotek. Zato morajo biti vnaprej določeni ločilo stolpcev, znak za besedilo, kodiranje, vrstica z imeni polj in način zapisa preloma vrstice v opisu. UTF-8 je običajno najvarnejša skupna izbira, vseeno pa ga zapišemo v specifikaciji.
Prenos datoteke
Datoteko lahko prejemnik prevzame prek zaščitenega HTTPS naslova, SFTP strežnika, objektne shrambe ali drugega dogovorjenega kanala. Povezava naj ne vsebuje trajnega gesla v javnem URL-ju. Dostopne podatke izmenjamo varno, omejimo pravice in določimo, kdo jih zamenja ob poteku ali incidentu.
Pri večji datoteki jo najprej izdelamo pod začasnim imenom in šele po zaključku objavimo kot končno. Tako prejemnik ne prevzame napol zapisane datoteke. Koristni so čas izdelave, število zapisov, velikost in kontrolna vsota. Dogovorimo tudi urnik, časovno okno ter ravnanje, če je nova datoteka prazna ali bistveno manjša od običajne.
Feed z osebnimi ali zaupnimi poslovnimi podatki ne sme biti javno dostopen in indeksiran. Način zaščite je del tehnične specifikacije.
Pred uvozom
Integracija pred obdelavo preveri, ali je datoteka dosegljiva, pravilno kodirana in strukturno veljavna. Nato preveri podvojene ID-je, manjkajoča obvezna polja, števila, datume, dovoljene vrednosti, povezave med izdelkom in različicami ter osnovno smiselnost cen in zaloge.
Pravila morajo razlikovati med opozorilom in napako. Manjkajoča dodatna slika je lahko opozorilo, manjkajoč ID pa razlog za zavrnitev zapisa. Rezultat se zabeleži: koliko zapisov je bilo prebranih, sprejetih, preskočenih in zavrnjenih. Pri nenavadnem padcu števila izdelkov se uvoz lahko varno ustavi in pošlje opozorilo.
Preverimo format, kodiranje, glavo, zapiranje XML elementov in prisotnost pričakovanih stolpcev.
Preverimo identifikatorje, obvezna polja, dovoljene vrednosti, tipe in povezane zapise.
Odkrijemo nenaden padec števila zapisov, podvojitve in druge odklone od običajnega obsega.
Pred prvim polnim uvozom obdelamo omejen vzorec in rezultat preverimo v ciljnem sistemu.
Življenjski cikel feeda
Dodano neobvezno polje je običajno združljiva sprememba, preimenovanje polja, sprememba pomena ali odstranitev vrednosti pa lahko prekine uvoz. Zato dobavitelj spremembo najavi, pripravi nov vzorec in dokumentira razliko. Pri večji spremembi nekaj časa zagotavlja staro in novo različico ali dogovorjen datum preklopa.
Dokumentacijo hranimo ob implementaciji: opis polj, primer datoteke, kontakt, urnik, način dostopa in zgodovino sprememb. Tako poznejša napaka ni odvisna od spomina ene osebe. Ko prejemnik spremembo potrdi, posodobimo validacijo, preslikave in prevzemne teste.
Pogosta vprašanja
Možnosti vedno preverimo na konkretnih sistemih, licencah, dostopih in vzorčnih podatkih.
XML je priročen za gnezdene podatke, kot so različice, slike in lastnosti. CSV je učinkovit za ravne tabele. Pomembnejši od formata so stabilni ID-ji, dokumentirana polja in zanesljiva dostava.
Ne vedno. EAN lahko manjka, se spremeni ali ni enoličen za vse vrste zapisov. Priporočljiv je stabilen interni ID oziroma SKU, EAN pa ostane dodatna poslovna oznaka.
Najvarneje z jasnim statusom ali ločenim seznamom izbrisov. Samo odsotnost iz nove datoteke je dvoumna, ker jo lahko povzroči napaka ali začasen filter.
Glede na poslovno potrebo in zmogljivost sistema. Zaloga in cena se lahko osvežujeta pogosteje, katalog redkeje. Urnik, dovoljen zamik in obnašanje ob napaki zapišemo v specifikaciji.
Da, če so v izvoru na voljo potrebni podatki in je ciljni format jasno določen. Pretvorba ne more zanesljivo ustvariti podatka, ki ga izvor ne vsebuje.