Uvoz artikala (CSV)
Ako već negdje vodiš dućan (na WooCommerceu, Shopifyju ili u vlastitoj tablici), cijeli katalog ne moraš prepisivati ručno u WebShopHR. Artikle uvoziš iz CSV datoteke koju izvezeš iz postojeće platforme, jednim uploadom.
Uvoz kroz CMS
U izborniku s lijeve strane otvori Uvoz. Na vrhu ekrana nalaze se upute o podržanim formatima, kolonama koje se čitaju i kvoti. Klikni "Odaberi CSV datoteku", izaberi CSV izvezen iz svoje platforme (do 5 MB), provjeri prikazano ime i veličinu datoteke te zatim klikni "Uvezi".


| Izvor | Kako se prepoznaje | Stupci koji se čitaju |
|---|---|---|
| WooCommerce | header sadrži Name i Regular price |
Name, Description, Regular price, Stock, SKU |
| Shopify | header sadrži Handle i Title |
Title, Body (HTML), Variant Price, Variant Inventory Qty, Handle |
| WebShopHR (generički) | header sadrži name i price_eur |
name, description, price_eur, stock, slug |
Sve ostale stupce iz WooCommerce/Shopify exporta (težina, porezni razred, tagovi, dobavljač…) tiho preskačemo. Uvozimo samo ono što WebShopHR treba za artikl. Ako header ne odgovara nijednom od tri oblika, uvoz staje s porukom da format nije prepoznat i ništa se ne mijenja.
Što se mapira u artikl
Iz svakog retka nastaje jedan artikl s ovim poljima:
- Naziv: obavezan. Redak bez naziva se preskače
- Opis: kod Shopifyja se
Body (HTML)očisti od HTML oznaka u čisti tekst (naslovi, liste i podebljano ostaju kao tekst, tagovi nestaju) - Cijena: usklađeno s CMS formom i podržava i engleski zapis iz
Shopifyja/WooCommercea. Pravila:
- Kad broj sadrži i točku i zarez, zadnji od njih je decimalni
separator, a drugi je tisućica. Tako i hrvatski (
1.250,56) i engleski (1,250.00) prolaze. - Kad je prisutan samo jedan znak, postupa se simetrično: 1–2 znamenke iza
separatora su decimalni dio (
12.50→ 12,50 €,12,50→ 12,50 €), a točno 3 znamenke su tisućica (1.250→ 1.250,00 €,1,250→ 1.250,00 €). - Miješane grupe (
1.234.56,1,234,56) i druge dvosmislenosti se odbijaju. Redak s cijenom 0 ili neispravnom cijenom se preskače
- Kad broj sadrži i točku i zarez, zadnji od njih je decimalni
separator, a drugi je tisućica. Tako i hrvatski (
- Zaliha: broj komada (ako izvor nema zalihu, uzima se 0)
- Slug (dio URL-a): iz SKU-a (Woo), Handlea (Shopify) ili stupca
slug(WebShopHR). Ako ga nema, gradi se iz naziva
Delimiter (zarez ili točka-zarez) prepoznaje se automatski, a UTF-8 BOM koji Excel voli dodati na početak datoteke se ignorira. CSV čitamo kao UTF-8: hrvatski znakovi (č, ć, š, ž, đ) ostaju ispravni.
Varijante kod Shopifyja
Shopify u exportu ponavlja isti Handle za svaku varijantu proizvoda. U ovoj
verziji uvoza svaki redak postaje zaseban artikl. Varijante se ne
spajaju natrag u jedan proizvod s podvarijantama. Retke koji su samo nastavak
varijante (bez Title) preskačemo. Ako želiš prave varijante (veličina/boja
pod jednim artiklom), posloži ih nakon uvoza na artiklu (vidi
Artikli).
Slike i kategorije se ne uvoze
Uvoz donosi naziv, opis, cijenu, zalihu i slug, ne i slike ni dodjelu kategorijama. Svaki uvezeni artikl privremeno pripada sistemskoj kategoriji Ostalo, dok ga ne premjestiš. Slike WooCommerce/Shopify čuvaju na svojim serverima pa ih ne povlačimo. Fotografije i kategorije posložiš nakon uvoza. Time izbjegavamo i da ti katalog ovisi o tuđem hostingu slika.
Kvota i sigurnost uvoza
Uvoz preskače retke koji nemaju naziv ili imaju neispravnu cijenu (npr. 0). Takvi retci ne idu u katalog. Na kraju vidiš koliko je redaka uvezeno, a koliko preskočeno, uz nekoliko primjera zašto. Jedan loš redak zato ne ruši ostatak uvoza.
Uvoz je „sve-ili-ništa" samo u dva slučaja:
- Ako bi valjane stavke iz CSV-a premašile ograničenje broja artikala tvog paketa (Free paket: do 10 artikala, a neograničeno ako je trgovina povezana s Arges ERP-om ili na Pro/Enterprise paketu), ništa se ne uvozi i dobiješ poruku koliko artikala stane, a koliko ih CSV donosi. Tako ne završiš s pola uvezenog kataloga.
- Svi valjani retci se uvode zajedno, u jednoj operaciji. Ako dođe do neočekivane greške, poništi se cijeli taj skup, a ne samo dio njega.
Ako se slug novog artikla poklopi s postojećim, automatski se dodaje sufiks
(-2, -3…) da URL ostane jedinstven. To vrijedi i ako isti CSV uvezeš
dvaput: uvoz ne prepoznaje već uvezene artikle nego uvijek stvara nove, pa
dobiješ duplikate koje ručno deaktiviraš u Artiklima. Po
završetku uvoza dobiješ broj uvezenih i preskočenih artikala (uz
nekoliko primjera zašto je redak preskočen), a katalog se osvježi u
tražilici dućana automatski.
API za razvojne inženjere
Ekran "Uvoz" u pozadini zove WebShopHR API, koji možeš koristiti i izravno (npr. za skriptirani prijenos):
POST /api/v1/items/import
Datoteku šalješ na dva načina: kao upload datoteke (multipart form polje
csv) ili kao sirovo text/csv tijelo zahtjeva. Gornja granica je 5 MB
po datoteci (CSV je običan tekst, pa je to i za nekoliko tisuća artikala više
nego dovoljno).
Uspješan odgovor (200) je JSON s brojem uvezenih i preskočenih artikala te
do 10 primjera preskočenih redaka:
{ "imported": 3, "skipped": 0, "errors": [] }
Greške dolaze kao {"error": "..."}: 400 ako datoteka nedostaje, a
422 ako format nije prepoznat, ako nema nijednog valjanog retka ili ako bi
uvoz prekoračio kvotu paketa (u tom slučaju se, kao i u CMS-u, ništa ne
uvozi).
Povezane stranice


