Prestashop: importowanie dużej ilości produktów
Prestashop to wygodne narzędzie do tworzenia różnego typu sklepów internetowych. Jednak jak każde narzędzie ma swoje słabe strony. Niewątpliwie obsługa duże ilość produktów jest jednym z mankamentów prestashop, nie mówiąc już o ich samym imporcie.
W moim przypadku należało zaimportować blisko 27tys. produktów! Oczywiście napisałem odpowiedni skrypt ładujący wszystko do bazy danych - wykorzystując modele prestashop (np. Product extend ObejctModel). Wyeksportowałem ze starej bazy dane i odpowiednio je przygotowałem. Import samych danych dotyczył produktu (nazwa, opis, cena, zdjęcie i od 3 do 6 cech) i miniatur. Całość trwała kilkanaście godzin! Waga samego skryptu wzrosła do 3.4GB, a baza danych rozrosła się do blisko 4 mln. rekordów.
Import takiej ilości danych nie jest rzeczą łatwą i radzę zdać sobię z tego sprawę jeszcze przed realizacją zadania.
Należy pamiętać, że prestashop często narzuca ograniczenia dotyczące nazewnictwa niektórych elemntów np. nazw produktów czy cech więc warto z niezwykłą uwagą przygotowaywać dane do importu ponieważ przerwanie skyryptu po 8h pracy może doprowadzić do niepotrzebnego wrzenia krwi w żyłach ;)
Uwagę również należy wzrócić na indeks wyszukiwania, który należy wykonać przy imporcie. Inaczej wyszukiwarka w prestashop nie będzie działać. Indeks jest tworzony na podstawie pól teksotwych (np. tytul, opis, cechy itp.). Nadmienię, że 27tys. produktów (przy nieumiejętnym imporcie możemy zwiększyć tą wartość kilkukrotnie podczas tworzenia rekordów dla jęzków, których nie używamy) i połączeniu ich JOIN-em z cechami (ps_features) daje pokażną sumkę. Dodatkowo dane te są dzielone na słowa i nadawane są im wagi, co daje sporą ilość obliczeń i operacji na bazie - to też musi trwać.
To tyle słowem wstępu na temat importu. Mam nadzieję, że przynajmniej jakoś Was nakierowałem na odpowiednią drogę ;)














