Logo GRVision - Strony i sklepy internetowe
Darmowa konsultacja 881 932 088 kontakt@grvision.pl

Import produktów przerywa się w połowie

Publikacja: · Grzegorz Rapczyński

Import rusza, przechodzi kilkaset wierszy i staje. Czasem z błędem, czasem po prostu wraca na początek, jakby nic się nie działo. Zaimportowana jest połowa, w katalogu bałagan, a plik trzeba puścić jeszcze raz. Mowa o wbudowanym imporcie PrestaShop i o pliku CSV przygotowanym ręcznie albo wyeksportowanym z hurtowni.

Pierwsza informacja, której potrzebujesz: czy przerywa się zawsze w tym samym miejscu, czy za każdym razem gdzie indziej. To dzieli przyczyny na dwie zupełnie różne grupy.

Zawsze w tym samym momencie

Jeśli import zatrzymuje się po mniej więcej tej samej liczbie wierszy albo po tym samym czasie, przyczyna jest po stronie limitów serwera. Sklep nie robi nic złego - serwer przerywa mu pracę.

  • Maksymalny czas wykonania. Najczęstsza przyczyna. Import to jedna długa operacja i limit liczony w sekundach kończy ją w połowie.
  • Limit pamięci. Objawia się zwykle przy imporcie z dużą liczbą kolumn albo przy generowaniu miniatur ze zdjęć wskazanych w pliku.
  • Zapełniony dysk. Zdjęcia pobierane w trakcie importu potrafią zająć więcej, niż ktokolwiek zakładał.

Rozwiązanie doraźne i skuteczne: podziel plik na mniejsze części, po kilkaset wierszy. To brzmi jak obejście i nim jest, ale działa, nie wymaga niczyjej zgody i pozwala kontrolować, co weszło.

Rozwiązanie docelowe to podniesienie limitów na serwerze. Przy sklepie z dużym katalogiem to i tak będzie potrzebne przy innych operacjach - regeneracji miniatur, aktualizacjach, eksportach. Napisałem o tym więcej przy okazji wymagań hostingu pod PrestaShop.

Za każdym razem gdzie indziej

Wtedy to nie limit, tylko konkretny wiersz w pliku, na którym import się wykłada. Zwykle chodzi o:

  • Uszkodzone kodowanie. Plik zapisany w złym standardzie ma w środku bajty, których import nie potrafi przeczytać. Zapisuj zawsze jako CSV w kodowaniu UTF-8.
  • Nieoczekiwany separator w treści. Przecinek albo średnik w opisie, bez cudzysłowów wokół pola, rozjeżdża cały wiersz i wszystko, co po nim.
  • Znak końca linii w środku pola. Opis skopiowany z dokumentu potrafi zawierać twarde końce linii, które import traktuje jako koniec wiersza.
  • Adres zdjęcia, którego nie da się pobrać. Jeśli import ściąga obrazki po adresach, jeden nieodpowiadający serwer potrafi zawiesić całość na długo.

Sposób na znalezienie winnego wiersza: sprawdź, ile produktów weszło, i otwórz plik na tej pozycji. Problem będzie w tym wierszu albo w następnym.

Co zrobić z połową zaimportowanego katalogu

To jest moment, w którym łatwo zrobić więcej szkody niż pożytku. Kolejność:

  1. Nie puszczaj tego samego pliku od nowa, dopóki nie wiesz, jak import zachowa się przy istniejących produktach. Jeśli dopisuje zamiast aktualizować, dostaniesz duplikaty całego katalogu.
  2. Sprawdź ustawienie aktualizacji po referencji. Przy poprawnie ustawionej unikalnej referencji ponowny import po prostu nadpisze to, co już jest - i wtedy powtórzenie całości jest bezpieczne.
  3. Jeśli powstały duplikaty, wyfiltruj produkty po dacie dodania i usuń partię z nieudanego importu, zanim zaczniesz od nowa.
  4. Kopia bazy przed każdym kolejnym podejściem. Import to jedna z niewielu operacji, które potrafią nieodwracalnie namieszać w całym katalogu.

Jak importować, żeby się nie przerywało

  • Zawsze najpierw dwadzieścia wierszy. Sprawdzasz, czy dane trafiają tam, gdzie powinny, i dopiero wtedy puszczasz resztę. Ta zasada oszczędza więcej czasu niż wszystkie pozostałe razem.
  • Partie po kilkaset wierszy, nawet gdy limity pozwalają na więcej. Łatwiej wtedy ustalić, co weszło.
  • Zdjęcia osobno. Import danych i import obrazków to dwie różne operacje o zupełnie innym koszcie. Łączenie ich jest najczęstszą przyczyną przerwania.
  • Import poza godzinami szczytu. Operacja obciąża sklep, a klienci w tym czasie odczuwają to jako spowolnienie.

Jak przygotować sam plik, żeby nie sprawiał problemów, opisałem osobno w tekście o pliku z produktami do importu.

Jeśli import pochodzi z hurtowni i ma chodzić cyklicznie, to nie jest już zadanie dla wbudowanego importu - opisałem, co ustalić przed wdrożeniem, przy integracji z hurtownią.

Najczęstsze pytania

Czy import może uszkodzić istniejące produkty?

Tak, jeśli plik ma te same referencje co produkty w sklepie, a import jest ustawiony na aktualizację. Dlatego przed większym importem robi się kopię bazy.

Ile wierszy naraz jest bezpieczne?

Na typowym wspólnym hostingu kilkaset. Przy własnym serwerze z podniesionymi limitami kilka tysięcy. Nie ma uniwersalnej liczby - trzeba to sprawdzić na konkretnym sklepie.

Import kończy się bez błędu, ale produktów nie ma. Dlaczego?

Najczęściej dlatego, że produkty weszły jako wyłączone albo bez kategorii domyślnej. Sprawdź listę produktów z filtrem statusu, zanim uznasz import za nieudany.

Duży katalog do wprowadzenia

Jeśli masz do zaimportowania kilka tysięcy produktów i nie chcesz spędzić na tym weekendu, wyślij plik - przejrzę go i powiem, co poprawić, zanim cokolwiek ruszy. Formularz kontaktowy, 881 932 088 lub kontakt@grvision.pl.