Problem: ročno vnašanje izdelkov ni izvedljivo
Pri spletni trgovini s 500+ izdelki in 3+ dobavitelji ročno vnašanje ni le boleče, ampak operativno nemogoče. Vsak dobavitelj posodobi cene, slike, atribute v drugem ritmu. Brez avtomatskih uvozov se trgovina hitro pretvori v "trgovino z napačnimi podatki".
Format feedov – kaj srečamo v praksi
V naših 30+ izvedenih dobaviteljskih uvozih smo srečali:
- XML: najpogostejši, 70 % primerov. Različne sheme: nekateri po standardu GoogleShopping, drugi lastni format dobavitelja.
- CSV / TSV: 15 %. Pogosto z encoding težavami (windows-1250 namesto UTF-8).
- JSON: 10 %. Najnovejši trend, najlažji za parsing.
- Excel: 5 %. Najtežje, ker pogosto vsebuje merge cell-e, comment-e, format inconsistencies.
Tipičen workflow uvoza
1. Pridobitev feeda
Trije najpogostejši načini:
- HTTP / HTTPS URL (najpogostejši): cron job vsak dan / uro prenese feed.
- FTP / SFTP: dobavitelj naloži datoteko na svoj FTP, mi jo prenesemo.
- E-mail priloga: dobavitelj vsak teden pošlje XML kot prilogo (najslabši način, treba parsati IMAP).
2. Mapiranje
Vsak dobaviteljev format je drugačen. Lažje rečemo z primerom:
// Dobavitelj A
<product>
<sku>ABC-123</sku>
<name>Izdelek X</name>
<price>29.90</price>
</product>
// Dobavitelj B
<item id="123">
<title lang="sl">Izdelek Y</title>
<pricing>
<net>24.50</net>
<gross>29.89</gross>
</pricing>
</item>
V PHP-ju mapping naredimo z config arrayem ali XSL transformacijo.
3. Validacija
Pred uvozom preverimo:
- Manjkajoče obvezne podatke (SKU, cena)
- Podvojene SKU znotraj iste serije
- Sliko URL-jev: ali so dosegljivi (HEAD request)
- Encoding (UTF-8?)
- Numerične vrednosti: ali so res številke
4. Transformacija
Pretvorba enot (kg ↔ g), normalizacija atributov (rdeča ↔ rdec ↔ RED), AI kategorizacija (če dobavitelj nima kategorije).
5. Uvoz
Insert novih izdelkov, update obstoječih, soft-delete (ali deaktivacija) izdelkov, ki niso več v feedu.
6. Poročilo
E-mail po končanem uvozu z:
- Koliko izdelkov novih / posodobljenih / odstranjenih
- Seznam napak (manjkajoče slike, neveljavne cene)
- Čas uvoza
- Skupna vrednost zaloge
Najpogostejši izzivi v praksi
Slike na URL-jih, ki vrnejo 404
Dobavitelj feedih navaja URL slike, ki vrne 404 ali login page. Rešitev: fallback slika + log poročilo.
Različni encoding
CSV v windows-1250 namesto UTF-8 sproži šumnike kot �. Rešitev: detekcija s `mb_detect_encoding()` + konverzija.
Podvojene kode med dobavitelji
Dva dobavitelja imata isti SKU za drug izdelek. Rešitev: prefix po dobavitelju (`ACME-ABC123`, `BETA-ABC123`) ali interni ID.
AI obogatitev
Dobavitelj nima slovenskega opisa ali kategorije. AI (Gemini / GPT) predlaga, urednik le potrdi. Pri Akvonij.si tako napolnimo 80 % opisov.
Konkretni produkcijski primeri
- Shoppster.si / ideo.si: XML in XLS uvozi iz desetin dobaviteljev, SAP sinhronizacija, 15+ let vzdrževanja.
- Akvonij.si: 32 dobaviteljskih XML uvozov.
- Lontech.si: SIBO dobavitelj XML feed s kategorijami.
- Dreamwalk.si: Pantheon zaloga, XML izvozi za partnerje.
- Bevann.si: Excel uvoz, SAOP sinhronizacije.
Koliko stane uvoz
Postavitev enkratnega uvoza: 500–1.500 € (odvisno od kompleksnosti feeda). Vzdrževanje: 30–80 € mesečno (monitoring, popravki ob spremembah formata).
