Egy XML-fájl szabályos megnyitása csak azt jelzi, hogy a feldolgozó értelmezni tudja a szerkezetét. A termékadatok ettől még tartalmazhatnak duplikált azonosítót, rossz pénznemet vagy elavult árat. A feed ellenőrzését ezért szerkezeti és üzleti adatszintre érdemes bontani.
Az XML-formázó a szerkezet áttekintésében segít. A befogadó szolgáltatás saját mezőneveit és szabályait külön kell követni. Az alábbi termékek és mezőnevek semleges példák, nem egy konkrét hirdetési rendszer teljes feedspecifikációja.
Először a jól formáltság
Az XML-elemek megfelelő nyitó és záró jelölést, következetes egymásba ágyazást és helyes karakterkezelést igényelnek. A szövegben szereplő & karaktert például megfelelő entitással kell reprezentálni, amikor XML-szövegcsomópontba kerül.
A megjelenített terméknév lehet „Kék & zöld”, miközben a sorosított XML-ben a speciális karakter kódolt alakja szerepel. Kétszeres kódolásnál a vásárló már az entitás szövegét láthatja. A formázás és a karaktertartalom visszaolvasása ezért két külön ellenőrzés.
A névterek és mezősémák kezelése a konkrét szabványhoz tartozik. Egy általános XML-formázó nem adhat automatikusan olyan igazolást, hogy a feed minden külső rendszer üzleti feltételének megfelel.
Azonosítók és duplikációk
Tegyük fel, hogy az export 1000 terméksort tartalmaz, de csak 997 különböző azonosítót. Ez három többletelőfordulás, nem feltétlenül három külön hibás azonosító. Lehet egy négyszer szereplő termék, de három kétszer szereplő azonosító is.
A javításhoz az azonosítóhoz tartozó teljes sorokat kell csoportosítani. Két azonos kulcsú sor eltérő ár vagy készlet mellett nem egyértelműen összevonható. Előbb döntsd el, melyik adat a hiteles és miért keletkezett a kettősség.
Az azonosítót szövegként kezeld, ha az elején álló nullák jelentéssel bírnak. A „00125” és „125” adatbázisodban lehet két eltérő kód, vagy ugyanannak eltérő formája. A normalizálást a saját kulcsszerződésed alapján végezd, találgatás nélkül.
Ár és pénznem együtt
Egy termék ára legyen 12 490 HUF. A forrásban esetleg „12 490”, „12490,00” vagy „12490.00” szöveg szerepel. A célformátumba alakítás előtt egyértelműen meg kell határozni a tizedes- és ezreselválasztót.
Ha egy általános szövegtisztítás a vesszőt egyszerűen eltávolítja, a „12490,00” értékből 1 249 000 is lehet. A helyes számhoz ezért típusellenőrzés és ismert formátumú átalakítás kell. A pénznemet külön ellenőrizd: a hibás EUR jelölés a szám változatlansága mellett is más üzleti állítást jelent.
A nulla ár, a hiányzó ár és a nem elérhető ár külön állapot. A hiányt automatikusan nullára cserélni olyan ajánlatot hozhat létre, amelyet a kereskedő soha nem akart megadni.
Darabszám-mérleg az exportban
Képzeletbeli készletedben 1050 termék van. Ebből 30 tudatosan kizárt, 20 még hiányos adatokkal szerkesztés alatt áll, ezért a várható export 1000 sor. Ha a kész feedben 970 sor jelenik meg, harminc tétel útját meg kell keresni.
A CSV–JSON átalakító segíthet ellenőrzési listák készítésében, de az átalakítás során azonosítók és pontos szövegmezők megőrzését is vizsgáld. A sorok száma mellett a konkrét azonosítóhalmazt is hasonlítsd össze, mert egy hiányzó és egy duplikált sor ugyanazt a darabszámot adhatja.
Biztonságos frissítési próba
Először kis, ellenőrzött adathalmazon készíts exportot. Olvasd vissza, és hasonlítsd össze az árat, pénznemet, készletállapotot és hivatkozást az eredeti termékadattal. Nagyobb exportnál ugyanezek a szabályok automatikusan is ellenőrizhetők.
Az elfogadási naplóban külön szerepeljen a jól formált XML, a sémaellenőrzés és az üzleti adatellenőrzés eredménye. Egyik sikerét se írd át a másik helyett „hibátlan feed” minősítésre.
Gyakori kérdések
A böngészőben megnyitható fájl biztosan importálható?
A böngésző szerkezeti megjelenítése nem bizonyítja a befogadó rendszer összes követelményének teljesülését.
Azonos darabszámnál egyezik az export?
Az azonosítókat és a fontos mezőket is össze kell vetni. Ugyanannyi sor eltérő termékeket takarhat.
Törölhetem az összes duplikált sort?
Először a hiteles rekordot és a duplikáció okát kell meghatározni. Az automatikus törlés értékes adatot is eltávolíthat.