Gauti pasiūlymą

Kaip automatiškai importuoti tiekėjų XML prekes į PrestaShop

Marius, PHP programuotojas · Paskelbta 2026-10-19

Jeigu prekes gaunate iš tiekėjų, jų katalogą greičiausiai turite XML, CSV ar API pavidalu. Įkelti kelias dešimtis prekių ranka dar įmanoma, tačiau kai tiekėjas turi tūkstančius prekių, o kainos ir likučiai keičiasi kasdien, rankinis darbas tampa nuolatiniu klaidų šaltiniu. Šiame straipsnyje paaiškinu, kaip veikia automatinis tiekėjų XML prekių importas į PrestaShop, į ką verta atkreipti dėmesį ir kokias problemas dažniausiai tenka spręsti. Rašau iš savo patirties: PrestaShop ir OpenCart prekių importavimo modulius kuriu jau daug metų, šiuo metu turiu paruoštus modulius 114 skirtingų tiekėjų.

Kodėl verta automatizuoti prekių importą

Automatinis importas sprendžia tris dalykus: laiką, tikslumą ir duomenų aktualumą.

  • Laikas. Naujos prekės sukuriamos be kopijavimo – pavadinimai, aprašymai, nuotraukos ir savybės paimami iš tiekėjo duomenų.

  • Tikslumas. Kaina ir likutis parduotuvėje atitinka tiekėjo duomenis, todėl mažiau užsakymų prekėms, kurių jau nėra.

  • Aktualumas. Duomenys atnaujinami pagal grafiką, pavyzdžiui, kelis kartus per dieną, ir nereikia prisiminti to padaryti.

Be to, automatizuotas importas leidžia lengviau plėsti asortimentą: naujo tiekėjo prekes galima pridėti nekeičiant viso darbo proceso.

Ką paprastai turi tiekėjo XML ar CSV failas

Kiekvienas tiekėjas duomenis pateikia savaip, tačiau dažniausiai faile ar API atsakyme rasite:

  • prekės kodą (SKU), gamintojo kodą ir dažnai EAN brūkšninį kodą;

  • pavadinimą ir aprašymą, kartais keliomis kalbomis;

  • tiekėjo kategoriją ar kategorijų medį;

  • gamintoją (prekės ženklą);

  • didmeninę kainą, kartais ir rekomenduojamą mažmeninę kainą;

  • likutį ar prieinamumo būseną;

  • nuotraukų nuorodas;

  • techninius parametrus ir pasirinkimus – dydį, spalvą, talpą ir pan.;

  • svorį, matmenis ar kitą papildomą informaciją.

Duomenys gali būti viename dideliame XML faile, keliuose atskiruose failuose (pvz., atskirai prekės ir likučiai) arba pasiekiami per API su prisijungimu. Prieš kuriant importą svarbu išsiaiškinti, kur yra kiekvienas reikalingas laukas ir kaip dažnai tiekėjas jį atnaujina.

Kategorijų, atributų ir nuotraukų susiejimas

Tiekėjo duomenų struktūra beveik niekada nesutampa su Jūsų parduotuvės struktūra, todėl svarbiausia importo dalis yra susiejimas (angl. mapping).

Kategorijos

Galimi du keliai: importuoti tiekėjo kategorijas tokias, kokios jos yra, arba susieti tiekėjo kategorijas su Jūsų sukurtomis kategorijomis. Antrasis variantas paprastai geresnis – parduotuvės meniu lieka tvarkingas, o kelių tiekėjų panašios prekės patenka į tą pačią kategoriją. Taip pat galima importuoti tik pasirinktų kategorijų ar gamintojų prekes, o kitas praleisti.

Atributai ir pasirinkimai

Techniniai parametrai PrestaShop sistemoje dažniausiai tampa savybėmis (features), o dydžiai ar spalvos – pasirinkimais (combinations). Svarbu, kad tos pačios reikšmės nesikartotų skirtingais užrašais, pvz., „XL“ ir „xl“, nes tada filtrai parduotuvėje veikia prastai.

Nuotraukos

Nuotraukos parsisiunčiamos iš tiekėjo serverio ir priskiriamos prekei. Kad importas būtų greitas, nuotraukas verta parsisiųsti tik naujoms prekėms arba tik tada, kai jos pasikeitė, o ne kiekvieną kartą iš naujo.

Kainų ir antkainių taisyklės

Tiekėjas dažniausiai pateikia didmeninę kainą, o parduotuvėje reikia mažmeninės. Todėl importe nustatomos kainodaros taisyklės, pavyzdžiui:

  • procentinis antkainis visoms prekėms;

  • skirtingi antkainiai skirtinguose kainų rėžiuose – pigesnėms prekėms didesnis, brangesnėms mažesnis;

  • fiksuotas antkainis, pridedamas prie procentinio;

  • atskiri antkainiai pagal kategoriją ar gamintoją;

  • kainos daugiklis ir mokesčių (PVM) taisyklė.

Taip pat galima importuoti tik tas prekes, kurių tiekėjo kaina patenka į nurodytą rėžį, arba tik tas, kurių likutis didesnis už nustatytą ribą.

Likučių ir kainų atnaujinimas per cron

Kai prekės jau sukurtos, dažniausiai keičiasi tik kaina, likutis ir būsena. Todėl importas paprastai turi kelis režimus: pilną importą, kuris kuria naujas prekes ir atnaujina esamas, ir atnaujinimų režimą, kuris naujų prekių nekuria, o tik atnaujina esamas.

Atnaujinimas paleidžiamas automatiškai per serverio cron užduotį – per HTTP adresą arba per komandinę eilutę (CLI, SSH). Kaip dažnai jį leisti, priklauso nuo tiekėjo: vieni duomenis atnaujina kartą per parą, kiti – kas valandą. Importuoti dažniau, nei tiekėjas atnaujina savo failą, nėra prasmės.

Svarbu nuspręsti, kas nutinka prekei, kuri dingo iš tiekėjo sąrašo: ji gali būti išjungta, jos kiekis nustatomas 0 arba ji ištrinama. Išparduotas prekes galima išjungti ir vėl automatiškai įjungti, kai jos atsiranda.

Keli tiekėjai vienoje parduotuvėje

Daugelis parduotuvių dirba su keliais tiekėjais. Tada kiekvienas tiekėjas turi savo importą su savo nustatymais, bet visi jie dirba toje pačioje PrestaShop parduotuvėje kartu su ranka įkeltomis prekėmis. Svarbiausia, kad vienas importas neliestų kito tiekėjo ar ranka sukurtų prekių – tam kiekviena prekė pažymima, iš kurio šaltinio ji atėjo.

Jei ta pati prekė yra pas kelis tiekėjus, reikia aiškios taisyklės, kurio tiekėjo kaina ir likutis naudojami. Dažniausiai tokios prekės atpažįstamos pagal EAN ar gamintojo kodą.

Dažniausios problemos ir kaip jų išvengti

Prekių dublikatai

Dublikatai atsiranda, kai prekė atpažįstama ne pagal pastovų kodą, o, pavyzdžiui, pagal pavadinimą, arba kai tiekėjas pakeičia prekės kodą. Sprendimas – susieti prekes pagal unikalų tiekėjo kodą ar EAN ir nekurti naujos prekės, jei tokia jau yra.

Nuotraukų klaidos

Tiekėjų nuotraukų nuorodos kartais neveikia, nuotraukos būna labai didelės arba keičiasi jų adresai. Importas turi praleisti neveikiančias nuorodas nesustodamas ir nesiųsti tų pačių nuotraukų kiekvieną kartą.

Koduotė ir neteisingi simboliai

Jeigu vietoje lietuviškų raidžių matote keistus simbolius, dažniausiai kalta neteisinga koduotė (pvz., Windows-1257 vietoje UTF-8) arba netvarkingas HTML aprašymuose. Duomenis reikia konvertuoti ir išvalyti prieš įrašant į parduotuvę.

Laiko limitai (timeouts)

Didelis XML failas su dešimtimis tūkstančių prekių gali nespėti susiimportuoti per serverio leidžiamą laiką, ypač kai importas paleidžiamas per naršyklę. Padeda importas dalimis, paleidimas per CLI ir atskiras greitas kainų bei likučių atnaujinimas.

Ranka atlikti pakeitimai

Jeigu pataisote prekės pavadinimą ar aprašymą, kitas importas neturėtų jo perrašyti. Todėl įprasta atnaujinti tik kainą, kiekį, būseną ir pasirinkimus, o konkrečias prekes prireikus visai atjungti nuo atnaujinimų.

Kaip tai sprendžia mano importo moduliai

Mano PrestaShop prekių importavimo moduliai kuriami ant to paties, ilgus metus tobulinamo importo branduolio, o kiekvienam tiekėjui pritaikoma jo duomenų struktūra. Priklausomai nuo modulio ir tiekėjo, galimos šios funkcijos:

  • pasirinktų tiekėjo kategorijų ir gamintojų importas į Jūsų kategorijas arba kartu su tiekėjo kategorijomis;

  • keli importo režimai: standartinis, atnaujinimų ir pilnas;

  • kainos daugiklis, fiksuoti ir procentiniai antkainiai pagal kainų rėžius, kategorijas ir gamintojus (ne visuose moduliuose);

  • iš tiekėjo sąrašo dingusių prekių išjungimas, ištrynimas arba kiekio nustatymas į 0;

  • importas pagal minimalų kiekį ir kainų rėžius;

  • galimybė atjungti konkrečias prekes nuo kainos, kiekio ar būsenos atnaujinimo;

  • paleidimas per naršyklę arba CLI, todėl tinka cron užduotims;

  • darbas kartu su kitais importo moduliais ir ranka įkeltomis prekėmis.

Iki šiol sukūriau 167 skirtingus modulius, parduotos 538 licencijos, o importo moduliai paruošti 114 skirtingų tiekėjų. Modulius išbandau realioje prekyboje. Tiekėjų modulių pavyzdžiai: ALSO, ABC Data, TD Baltic, Asbis / IT4profit ir Deltaco Baltic. Visas sąrašas – PrestaShop prekių importavimo moduliai, o kaip modulis veikia – kaip veikia PrestaShop prekių importavimo modulis. Apie importą PrestaShop ir OpenCart parduotuvėms – automatizuotas prekių importas.

Jeigu Jūsų tiekėjo sąraše nėra, modulį sukursiu pagal jo XML, CSV ar API duomenų struktūrą.

Dažniausiai užduodami klausimai

Ar galima importuoti prekes iš kelių tiekėjų į vieną parduotuvę?

Taip. Kiekvienas tiekėjas turi atskirą importą su savo nustatymais, o visi jie dirba toje pačioje parduotuvėje kartu su ranka įkeltomis prekėmis.

Ar importas perrašys mano pataisytus aprašymus?

Įprastai ne. Po pirmo importo atnaujinama tik kaina, kiekis, būsena ir pasirinkimai, todėl pavadinimus ir aprašymus galite redaguoti laisvai.

Kaip dažnai atnaujinami likučiai?

Taip dažnai, kaip nustatyta cron užduotyje ir kaip dažnai duomenis atnaujina tiekėjas – pavyzdžiui, kas valandą ar kelis kartus per dieną.

Ar tai tinka OpenCart parduotuvei?

Taip, tokius pačius importo modulius kuriu ir OpenCart – žr. OpenCart prekių importavimo moduliai.

Reikia automatinio importo Jūsų tiekėjui?

Parašykite, su kuriuo tiekėju dirbate ir kokia Jūsų PrestaShop versija. Jei turite tiekėjo XML nuorodą ar API dokumentaciją – pridėkite ją. Atsakau per vieną darbo dieną.

Gauti pasiūlymą

← Visi straipsniai

Susisiekite!

Turite klausimų dėl PrestaShop ar OpenCart modulių, prekių importo sprendimų, SilverStripe ar unikalių PHP programavimo darbų.

Parašykite man - atsakysiu ir padėsiu rasti geriausią sprendimą Jūsų verslui.

Kontaktinė informacija

MB „Optimalus kodas“ Įmonės kodas: 303225585
Telefonas 0 672 08 286
Banko rekvizitai A.s.: LT427044060007941508
AB SEB bankas
SWIFT: CBVILT2X

Parašykite man

Šią svetainę saugo reCAPTCHA, taikoma Google privatumo politika ir paslaugų teikimo sąlygos. Daugiau: Privatumo politika.