Jak przejść na Prestashop 1.7 ze starszych wersji ?

Jak przejść na Prestashop 1.7 ze starszych wersji ?

jak uaktualnić prestashop
jak uaktualnić prestashop

Jak przejść na Prestashop 1.7 ze starszych wersji ?

 

Aktualizacja/migracja/update/upgrade/migracja  sklepu Prestashop 1.4.x, 1.5.x, 1.6.x do najnowszej wersji Prestashop 1.7

 

Ręczna migracja – szczegóły procesu

Wykorzystamy proces ETL (Extract – Transform – Load) do zakończenia migracji, koncepcji zwykle stosowanej w hurtowniach danych.

Struktura bazy danych może się zmieniać wraz z każdą nową wersją PrestaShop, ale główne wersje mogą również oznaczać wymianę funkcji, uniemożliwiając w niektórych przypadkach płynną aktualizację sklepu. W przypadku tych sklepów migracja jest rozwiązaniem umożliwiającym nadążanie za nowymi wydaniami.

W tym rozdziale omówimy 3 główne kroki:

  • Wyodrębnij dane do przesłania
  • W razie potrzeby dodaj / zmodyfikuj / usuń niektóre wartości
  • Importuj dane do nowego sklepu

Eksportowanie danych ze źródła

W przeciwieństwie do aktualizacji, nie będziemy modyfikować bezpośrednio bazy danych. Najpierw musimy wyeksportować dane. Używamy tutaj plików CSV, najbardziej zgodnego i ogólnego formatu.

Można wyeksportować dane

  • Poprzez panel administracyjny PrestaShop,
  • Za pomocą klienta MySQL.

W zależności od sposobu eksportowania danych nie otrzymasz takiej samej ilości danych w eksporcie.

Światło – przez panel administracyjny

Eksportowanie danych jest dość proste. Na każdym kontrolerze dedykowanym dla danych, które chcesz wyeksportować, znajdziesz przyciski akcji w prawym górnym rogu strony:

Przycisk eksportu na pasku akcji

Na przykład dla Twoich produktów w PrestaShop 1.7:

Lokalizacja paska akcji

Kliknięcie przycisku „Eksportuj” spowoduje, że Twoja przeglądarka pobierze plik CSV, który zawiera pełną listę produktów wraz z kolumnami wyświetlanymi na stronie.

W tym samym procesie możesz wyeksportować następujące dane:

  • Adresy (marki)
  • Adresy (klientów)
  • (Cechy produktu
  • Marki
  • Wózki
  • Kategorie
  • Klienci
  • (Cechy produktu
  • Zamówienia
  • Dyby
  • Dostawcy

Ekstrakcja będzie zawierać wartości dla bieżącego języka. Jeśli Twój sklep jest wielojęzyczny, musisz zmienić język w konfiguracji pracownika (dostępnej w prawym górnym rogu strony) i powtórzyć wyodrębnianie.

Ta metoda jest ograniczona do wyświetlanych szczegółów (= tego, co widzisz na stole), dlatego może nie być wyczerpująca. Jeśli chcesz mieć więcej lub wszystkie kolumny, możesz preferować ręczne wykonanie własnego klienta SQL.

Kompletna – za pośrednictwem klienta MySQL

Zaawansowani użytkownicy mogą używać własnego klienta do wyodrębniania danych w formacie CSV. Ta opcja daje pełną kontrolę nad danymi do eksportu.

Wybranie ekstrakcji w formacie CSV umożliwi łatwe wprowadzanie zmian za pomocą edytora arkuszy kalkulacyjnych, takiego jak Microsoft Excel lub LibreOffice Calc.

phpMyAdmin

W phpMyAdmin eksport do CSV można wykonać na tej samej stronie, co klasyczny zrzut SQL.

Szybki i pełny eksport (zalecane)

Ten krok można łatwo wykonać, eksportując wszystkie tabele w jednym wywołaniu. Kliknij swoją bazę danych, a następnie przycisk „Eksportuj”, aby rozpocząć:

Zauważ, że menu nawigacyjne w nagłówku powie Ci, czy jesteś w bazie danych, czy w kontekście tabeli. Jeśli przez pomyłkę kliknąłeś ten przycisk będąc na stole, zakończysz eksport konkretnego stołu, jak pokazano na tym zrzucie ekranu:

Cokolwiek wybierzesz pomiędzy eksportowaniem całej bazy danych w jednym wywołaniu lub eksportowaniem tabel jeden po drugim, musisz wybrać eksport w formacie „CSV” lub „CSV for MS Excel”.

Dostępne opcje zostaną zaktualizowane:

Jeśli chcesz wyeksportować kilka tabel jednocześnie, możesz to zrobić, wybierając je z listy. Tabele wyświetlane w Twoim sklepie zaczynają się od przedrostka podanego w konfiguracji Twojego sklepu (domyślnie ps_). Jeśli jeden z nich nie zaczyna się tym prefiksem, migracja jest mało prawdopodobny i można go zignorować.

Te tabele można również zignorować:

  • dostęp : Jak wspomniano, uprawnienia zostały przerobione i należy je zresetować.
  • konfiguracja . Twój nowy sklep ma już nową konfigurację i nadpisanie jej treścią ze starego sklepu to zły pomysł.
  • waluta : jego zawartość zostanie wygenerowana przez w kolejnym kroku.
  • lang : Jego zawartość zostanie wygenerowana przez w innym kroku.
  • module_access : Struktura została przerobiona z nowym systemem uprawnień. Ponieważ nie można ich łatwo przenieść, zalecamy zmianę ich konfiguracji ręcznie.
  • tab : Ta tabela zawiera kontrolery administracyjne dostępne w Twoim backoffice. Ponieważ jego wartościami zarządza głównie PrestaShop, nie zmieniaj zawartości nowego sklepu.
  • tab_lang : powiązane zi już zarządzana przez PrestaShop.

Aby uniknąć zwracania jednego pliku CSV ze wszystkimi tabelami, zaznacz opcję „Eksportuj tabele jako oddzielne pliki”. Zamiast tego otrzymasz plik Zip, zawierający jeden plik CSV dla każdej tabeli.

Na koniec radzimy zaznaczyć opcję „Umieść nazwy kolumn w pierwszym wierszu”. Będzie to przydatne w następnym kroku, gdy dane będą musiały zostać zmodyfikowane.

Spersonalizowany eksport z niestandardowych żądań SQL

Wyjaśniliśmy, jak wyeksportować wszystkie tabele, aby zachować jak najwięcej danych.

Jeśli otrzymujesz dane z innego CMS lub wolisz skorzystać z własnej metody, możesz uruchomić niestandardowe zapytanie SQL, aby uzyskać wszystkie potrzebne informacje. Ta opcja jest przydatna, jeśli planujesz importować dane za pomocą funkcji importu PrestaShop.

Jako przykład podajemy zapytanie SQL, aby uzyskać szczegółowe informacje o produkcie wraz z tekstami odpowiadającymi pierwszemu językowi pierwszego sklepu:

SELECT p.*, pl.* FROM `ps_product` p JOIN `ps_product_lang` pl ON p.id_product = pl.id_product AND pl.id_lang = 1 AND pl.id_shop = 1 GROUP BY pl.id_product

Jeśli wynik odpowiada Twoim potrzebom, możesz go wyeksportować za pomocą przycisku „Eksportuj” znajdującego się na dole strony.

mysqldump

Jeśli korzystałeś mysqldumpz kopii zapasowych, istnieje również opcja wyodrębniania danych w plikach CSV, jak opisano wdokumentacja. Jednak nasze testy wykazały, że metoda nie jest łatwa.

Przykład eksportu tabeli ps_product:

mysqldump -h127.0.0.1 -P3307 -uroot -p -T/var/lib/mysql-files –fields-enclosed-by=\” –fields-terminated-by=\; prestashop16 ps_product

Kilka uwag na temat mysqldumpplików CSV:

  • Upewnij się, że ustawiłeś opcję –fields-terminated-byz odpowiednimi separatorami
  • W pliku .txt brakuje nagłówka zawierającego nazwy kolumn i należy go wstawić ręcznie

Oto wyciąg z tabeli produktów wraz z danymi demonstracyjnymi. Obecne są tylko dane i musimy dodać nazwy kolumn.

CSV z mysqldump bez nagłówka

Spójrz na plik SQL dostarczony z plikiem TXT lub uruchom OPIS tabeli.

mysql> DESCRIBE prestashop16.ps_product;

Przed przejściem do następnej tabeli należy spodziewać się następującego wyniku:

CSV z mysqldump z nagłówkiem

  • Możesz zmienić nazwę wygenerowanych plików .txt na rozszerzenie .csv, aby uniknąć nieporozumień.
  • Jeśli jesteś podłączony do zdalnego serwera MySQL: włączenie eksportu CSV spowoduje zapis w zdalnym systemie plików, a nie na klienckim. Dlatego pisanie w nieistniejącym lub niedozwolonym folderze może wywołać ten błąd:

mysqldump: Got error: 1290: The MySQL server is running with the –secure-file-priv option so it cannot execute this statement when executing 'SELECT INTO OUTFILE'

Jeśli chcesz wiedzieć, do którego folderu możesz wyeksportować pliki, uruchom żądanie SQL:

mysql> SHOW VARIABLES LIKE „secure_file_priv”;

Aktualizacja danych

Uzyskaj zmiany między źródłową i docelową bazą danych

Po pobraniu danych ze sklepu produkcyjnego musisz dostosować je do nowej struktury przed umieszczeniem ich w nowej bazie danych.

Skutecznym sposobem uzyskania zmian jest uzyskanie różnic w strukturze bazy danych między dwoma działającymi sklepami. MySQL udostępnia inne narzędzie do tego o nazwiemysqldiff.

Pamiętaj, że to narzędzie może nie być natychmiast dostępne w Twoim środowisku, nawet jeśli masz zainstalowanego klienta mysql. Na przykład w systemie Ubuntu należy zainstalować dodatkowy pakiet:

apt install mysql-utilities

To narzędzie można uruchomić w dowolnym miejscu, o ile masz dostęp zarówno do serwerów, jak i baz danych. Podstawowe użycie tego polecenia wymaga następujących parametrów:

mysqldiff –server1=user:pass@host:port:socket –server2=user:pass@host:port:socket db3:db4

Musisz podać poświadczenia do swoich serwerów MySQL. Jeśli źródłowa i docelowa baza danych znajdują się na tym samym serwerze, –server2parametr można pominąć. db3i db4są odpowiednio źródłową i docelową bazą danych Twoich danych.

Uzyskanie różnicy struktury będzie wymagało dodatkowych opcji, jak podano w tym przykładzie:

mysqldiff –server1=root:xxxx@127.0.0.1:3307 –changes-for=server1 –skip-table-options –force prestashop16:prestashop

  • Wszystkie nasze bazy danych znajdują się na tym samym serwerze, dlatego –server1udostępniamy tylko ,
  • Chcemy wiedzieć, jakie zmiany zostaną wprowadzone w wersji 1.6, aby dopasować ją do struktury 1.7, więc potrzebujemy –changes-for=server1
  • Potrzebujemy tylko zmian strukturalnych. –skip-table-optionsusuwa różnice dotyczące autoinkrementacji itp.
  • Domyślnie mysqldiffpowie tylko, że bazy danych nie są takie same i natychmiast powrócą. Podanie –forcespowoduje, że narzędzie wydrukuje szczegółowe informacje o znalezionych różnicach.

 

Zmiany są pobierane ze struktury różnic między bazą danych PrestaShop 1.6.1.18 a inną w PrestaShop 1.7.3.2.

Wygląda na to, że struktura PrestaShop nie zmieniła się drastycznie od wersji 1.6, chociaż niektóre typy kolumn ewoluowały. Przygotowanie danych do PrestaShop 1.7 nie powinno wymagać zbyt wielu zmian w plikach CSV.

Stosowanie zmiany struktury

Ten krok należy odtworzyć tyle razy, ile masz tabel oczekujących na migrację. Etap importu będzie łatwiejszy, jeśli upewnisz się, że przesyłane dane odpowiadają strukturze docelowej. Ten rozdział pomoże zidentyfikować zmiany, które należy zastosować w zależności od różnicy utworzonej w poprzednim kroku.

Kilka uwag:

  • Nie wszystkie różnice wymagają zmiany Twoich danych,
  • Podstawowe zmiany można wykonać za pomocą edytora arkuszy kalkulacyjnych,
  • Złożone modyfikacje będą wymagały pracy ręcznej.

Nowa kolumna

Każda nowa kolumna dodana do bazy danych wymaga tej samej pracy na pliku CSV. Sprawdź w nowym sklepie, jaka domyślna wartość dotyczy nowej kolumny, sprawdzając w następującej kolejności:

  • Schemat bazy danych,
  • ObjectModel (klasy folderów PrestaShop),
  • Jednostka (folder src / PrestaShopBundle / Entity).

Przykład z wózkiem stołowym:

— `prestashop16`.`ps_cart`

+++ `prestashop`.`ps_cart`

@@ -18,6 +18,7 @@

`allow_seperated_package` tinyint(1) unsigned NOT NULL DEFAULT '0′,

`date_add` datetime NOT NULL,

`date_upd` datetime NOT NULL,

+  `checkout_session_data` mediumtext,

[…]

Przed:

CSV przed dodaniem kolumny

Po:

CSV z nową kolumną

W tym przykładzie nowa kolumna checkout_session_datanie ma wartości domyślnej, a istniejące dane w naszym PrestaShop wyświetlają pustą kolumnę. Ponieważ kolumna dopuszcza wartości null, wszystkie wiersze są puste.

Kolumna jest tego samego typu, ale nie tej samej wielkości

Przykład z adresem:

– `lastname` varchar(32) NOT NULL,

+ `lastname` varchar(255) NOT NULL,

Jeśli kolumna zachowuje swój typ, ale tylko zwiększa swój rozmiar, nie wymaga żadnych zmian z Twojej strony. Nowa wersja zapewnia więcej miejsca na tekst, zanim zostanie obcięty.

Prawdopodobnie zauważysz tę samą zmianę w klawiszach tabeli:

– `id_attribute_group` int(10) unsigned NOT NULL,

+ `id_attribute_group` int(11) NOT NULL,

Ta zmiana nie oznacza niczego po twojej stronie. To jest wstępna praca do budowania relacji między naszymi stołami.

Kolumna usunięta

Ten rodzaj zmiany jest łatwiejszy niż dodanie kolumny.

–  `scenes` tinyint(1) NOT NULL DEFAULT '1′,

Otwórz powiązany plik CSV, usuń kolumnę i zapisz.

Należy jednak pamiętać, że w niektórych przypadkach kolumna mogła zostać przeniesiona do innej tabeli. Jeśli tak się stanie, będziesz musiał przenieść zawartość swojej kolumny do innego pliku CSV.

Przykład jest dostępny dla tabeli sklep , niektóre kolumny zostały przeniesione do tabelistore_lang, aby umożliwić użycie zlokalizowanych danych. Dane muszą zostać przeniesione do nowego pliku CSV i powielane tyle razy, ile masz zainstalowanych języków w swoim sklepie.

Wartość domyślna zniknęła

– `position` int(10) unsigned NOT NULL DEFAULT '0′,

+ `position` int(11) NOT NULL,

Tutaj znowu nie ma się czym martwić, ponieważ nie ma potrzeby zmiany danych. Wartość domyślna jest teraz zarządzana przez ORM. Jeśli jednak poprzednia wersja nie została wyświetlona NOT NULL, może to wymagać dodania wartości domyślnej w pustych wierszach.

Aktualizacje klucza podstawowego / unikatowego indeksu

Jeśli klucz podstawowy lub jeden unikatowy klucz w tabeli ewoluuje / jest dodawany, import istniejących danych może się nie powieść, jeśli nie są zgodne z nowymi regułami unikalności.

–  PRIMARY KEY (`id_feature`,`id_product`),

+  PRIMARY KEY (`id_feature`,`id_product`,`id_feature_value`),

+  UNIQUE KEY `name_UNIQUE` (`name`),

Jeśli widzisz ten rodzaj różnicy, sprawdź, czy nie masz tej samej grupy wartości więcej niż raz. Jest bardziej prawdopodobne, jeśli kolumna zostanie usunięta z grupy kolumn lub jeśli zostanie dodany klucz.

Przekierowanie dla wyłączonych produktów

Ta zmiana jest specyficzna dla produktu stołowego.

– `redirect_type` enum(”,’404′,’301′,’302′) NOT NULL DEFAULT ”,

– `id_product_redirected` int(10) unsigned NOT NULL DEFAULT '0′,

+ `redirect_type` enum(”,’404′,’301-product',’302-product',’301-category',’302-category') NOT NULL DEFAULT ”,

+ `id_type_redirected` int(10) unsigned NOT NULL DEFAULT '0′,

Gdy produkt jest wyłączony, sprzedawca może wybrać, do której innej strony zostaną przekierowani klienci, jeśli spróbują uzyskać do niego dostęp. W PrestaShop 1.7 liczba opcji wzrosła, a przekierowanie do strony kategorii jest teraz możliwe.

W przypadku danych pochodzących z PrestaShop 1.6 istniejące przekierowania muszą zostać zaktualizowane.

  • Kolumna redirect_type:
Stara wartość Nowa wartość
301 301-produkt
302 302-produkt
  • Kolumna id_product_redirected: teraz nazwaid_type_redirected

Jeśli wyeksportowałeś swoje dane w formacie CSV, dokonanie tej zmiany będzie łatwe dzięki edytorowi arkuszy kalkulacyjnych, takim jak Microsoft Excel lub LibreOffice Calc. Pamiętaj tylko, aby zachować to samo rozszerzenie pliku podczas zapisywania.

Oto przykład przed i po żądanej aktualizacji (zmiany pojawiają się na zielono).

Przed (stan pierwotny):

Po:

Szczegóły sklepu

Zauważysz, że w tabeli sklepu kolumna id_themezostała zastąpiona przez theme_name. PrestaShop nie przechowuje już danych o motywie w dedykowanych tabelach. Jedyną pozostałą informacją jest nazwa motywu używanego przez każdy sklep.

Ponieważ migracja do PrestaShop 1.7 oznacza utratę motywu używanego w sklepie podczas produkcji, po prostu wpisz „klasyczny” w tej kolumnie dla każdego sklepu.

Przed:

Po:

Identyfikatory w plikach CSV

Zakładamy, że będziesz chciał zastąpić dane demonstracyjne danymi wyeksportowanymi ze starego sklepu. Pozostawienie nienaruszonych identyfikatorów spowoduje zastąpienie wszelkich istniejących danych tym samym identyfikatorem.

Jeśli chcesz dodać wyodrębnione dane bez nadpisywania istniejących rekordów w nowym sklepie, powinieneś zadbać o usunięcie identyfikatorów z plików CSV lub zignorować je podczas importu.

Przygotowanie sklepu docelowego

Czyste dane demo

PrestaShop jest instalowany z danymi demonstracyjnymi, w tym produktami, klientami, zamówieniami itp. Można je usunąć, aby zrobić miejsce na własne dane.

Czyszczenie sklepu z tych danych demonstracyjnych należy przeprowadzić przed rozpoczęciem importu danych. Darmowy modułPrestaShop cleaner” może sobie z tym poradzić za pomocą kilku kliknięć.

W sklepie docelowym wyszukaj modułPrestaShop cleaner” lub „pscleaner” lub pobierz i zainstaluj najnowsza wersja z GitHub.

Ważne: upewnij się, że uruchamiasz to narzędzie w nowym sklepie , a nie w produkcji.

Karta czyszczenia PrestaShop w katalogu modułów

Po zainstalowaniu przejdź do strony konfiguracji modułu, klikając przycisk konfiguracji. Znajdziesz różne dostępne akcje. Pierwsza połowa jest odpowiedzialna za wykasowanie części zawartości Twojego sklepu (katalog produktów, zamówienia, klienci itp.), Druga zaś sprawdza, usuwa i optymalizuje zawartość Twojej bazy danych.

Strona konfiguracji czyszczenia PrestaShop

Zainstaluj języki

Jeśli sprzedajesz w kilku krajach, w nowym sklepie należy ponownie zainstalować dodatkowe języki. Można to zrobić w menu Międzynarodowe> Lokalizacja> Importuj pakiet lokalizacyjny.

Upewnij się również, że identyfikatory Twoich języków są zgodne w sklepie źródłowym.

Sprawdzanie identyfikatorów zainstalowanych języków w sklepie

To jest przykład sklepu czekającego na migrację. Jak widać, w identyfikatorach języków występuje nieciągłość. Aby odtworzyć te luki, możesz dodać niepotrzebne języki, które usuniesz po raz drugi.

Importowanie danych

W przeciwieństwie do przywracania, tutaj będziemy importować tylko zawartość, żadna struktura tabeli nie zostanie zmodyfikowana. Podczas migracji zaimportowane dane muszą pasować do nowej struktury, a nie do starej.

Za pośrednictwem klienta MySQL

PHPMyAdmin

PHPMyAdmin zapewnia również narzędzie do importowania danych, które wcześniej zmodyfikowałeś do swoich tabel.

W przeciwieństwie do etapu eksportowania zalecamy wykonywanie kolejnych tabel.

Zakładamy, że chcesz pozbyć się danych demonstracyjnych sklepu docelowego, co również sprawia, że ​​import jest mniej ryzykowny ze względu na potencjalne zduplikowane identyfikatory.

  • Opróżnianie danych demonstracyjnych

Najpierw wyczyść tabelę z jej zawartości za pomocą akcji TRUNCATE. Ponieważ PHPMyAdmin nie zezwala na ten krok przed zaimportowaniem danych, musisz wykonać go ręcznie. Przejdź do panelu operacyjnego swojego stołu.

U dołu strony znajdziesz dostępne krytyczne operacje. Ponieważ są destrukcyjne dla istniejących danych, nie można ich łatwo znaleźć i są napisane na czerwono.

Jeśli PHPMyAdmin sugeruje sprawdzenie kluczy obcych, możesz to wyłączyć. Ponieważ nie zaimportujesz wszystkich swoich tabel w jednym wywołaniu, oczywiście nie możesz zapewnić, że Twoje relacje będą w porządku podczas tego procesu.

  • Importowanie danych

Po wyczyszczeniu tabeli z treści demonstracyjnych możesz zaimportować dane ze starego sklepu. Przejdź do karty Importuj ze swojej tabeli.

Pojawi się formularz umożliwiający dostosowanie importu. Domyślna konfiguracja oczekuje uruchomienia pliku SQL, więc będziemy mieli kilka opcji do zmiany, jak pokazano na zrzucie ekranu.

  • Zacznij od wybrania pliku CSV.
  • Drugą opcją do modyfikacji będzie format. Wybierz „CSV” lub „CSV dla MS Excel”.
  • Pomiń pierwszą linię pliku. W pierwszej linii mieliśmy nazwy kolumn, aby ułatwić edycję pliku, ale nie chcemy importować go do bazy danych.
  • Wyłącz sprawdzanie klucza obcego. Wiemy, że niektóre relacje jeszcze nie istnieją, ponieważ nie zostaną zaimportowane w tym samym czasie.
  • Dokładnie sprawdź ustawienia CSV (separatory). Zła wartość uniemożliwi analizę pliku CSV.

Na koniec kliknij „Go”. Jeśli wszystko pójdzie dobrze, pojawi się następująca strona z potwierdzeniem:

Jeśli nie, sprawdź komunikat o błędzie. Błąd dotyczący zawartości CSV można naprawić za pomocą innych ustawień importu, podczas gdy błąd SQL będzie wymagał naprawy danych.

Powtórz ten proces tyle razy, ile masz plików CSV.

Poprzez funkcję importu PrestaShop

Zaimportowanie danych można również wykonać poprzez panel administracyjny PrestaShop.

To rozwiązanie jest najlepsze, gdy Twoje dane nie pochodzą z innego PrestaShop lub jeśli otrzymałeś dane z niestandardowych żądań SQL.

Jest wygodny dzięki interfejsowi i zarządzaniu niedostarczonymi kolumnami. W przeciwieństwie do importu z klientem MySQL, funkcja importu PrestaShop zawsze będzie w stanie zastosować domyślne wartości dla brakujących informacji.

W nowym sklepie przejdź do kontrolera Parametry zaawansowane> Import.

Ten kontroler pozwoli Ci zaimportować następujące dane:

  • Kategorie
  • Produkty
  • Kombinacje
  • Klienci
  • Adresy
  • Marki
  • Dostawcy
  • Alias
  • Przechowuj kontakty

Jeśli to możliwe, staraj się mieć tylko jeden plik CSV na kategorię danych gotowych do zaimportowania. Zależy to od rozmiaru pliku i rozmiaru wysyłania dozwolonego w konfiguracji serwera. Jeśli przesłanie pojedynczego pliku CSV jest niemożliwe, podziel go na pół i spróbuj ponownie.

Musisz przejść przez konfigurację dla każdego importu, co w niektórych przypadkach może być uciążliwe. Na przykład, jeśli podane kolumny nie pasują do domyślnego schematu.

Uwaga : Podobnie jak w przypadku eksportu, każda kategoria danych musi być importowana kilka razy, jeśli Twój sklep jest wielojęzyczny – raz na język. Wymuszenie identyfikatorów dostarczonych w pliku CSV pomoże Ci połączyć zlokalizowane dane z oryginalnymi.

Importuj główną konfigurację

Aby zaimportować dane, zacznij od przesłania pliku CSV. Zostanie to zrobione automatycznie, gdy wybierzesz plik z systemu plików.

Przed wyborem lub przesłaniem pliku CSV:

Niektóre ostrzeżenia mogą być wyświetlane w zależności od typu danych do zaimportowania. Mogą udzielić przydatnych porad dotyczących zakazanych lub dozwolonych zasad.

Po wybraniu pliku CSV:

Dokładnie sprawdź pola i opcje wielu wartości dla struktury CSV. Wartości domyślne powinny działać w większości przypadków, ale nieprawidłowe wartości spowodują niepowodzenie importu.

Zaznaczenie opcji „Usuń wszystkie <dane> przed importem” (patrz powyższy zrzut ekranu) może być przydatne do wyczyszczenia zawartości demonstracyjnej ze sklepu przed zaimportowaniem danych. Ale jeśli wyeksportujesz kilka plików CSV tego samego typu danych, wyłącz go przed przejściem do drugiego i kolejnych plików.

Przypisanie kolumny

Drugi krok umożliwia połączenie starych kolumn z nowymi.

W przypadku, gdy kolumna z CSV nie powinna być brana pod uwagę, możesz poprosić PrestaShop o jej pominięcie, wybierając pierwszą opcję z listy: „Ignoruj ​​tę kolumnę”.

Kiedy będziesz gotowy, kliknij „Importuj”.

Postęp importu

Od tego momentu możesz po prostu poczekać, aż proces się zakończy. Czas, jaki zajmie, zależy od liczby linii do zaimportowania i wybranych opcji.

Aby uniknąć osiągnięcia maksymalnego czasu realizacji żądania, proces podzieli Twoje dane na kilka fragmentów, które będą przetwarzane w oddzielnych żądaniach HTTP.

Proces importu rozpocznie się od sprawdzenia czasu potrzebnego do przetworzenia jednej porcji. W zależności od wyniku, mniej lub więcej obiektów zostanie obsłużonych podczas następnych żądań HTTP. Zapewnia to dobrą równowagę między wydajnością a stabilnością.

Zdjęcia

W zależności od sposobu migracji danych (tj. Bez funkcji importu PrestaShop), w nowym sklepie może brakować Twoich zdjęć. Jeśli ich nie ma, możesz je odzyskać ze starych.

Obrazy są przechowywane w systemie plików, a ich łącze do produktu jest przechowywane w bazie danych. Przywrócenie ich zależy od sposobu migracji danych:

  • Zachowałeś te same identyfikatory podczas importowania produktów

Jeśli identyfikatory są dokładnie takie same między dwoma sklepami, skopiowanie folderu `/ img / p` wystarczy, aby uzyskać obrazy.

Należy również przesłać dane tabel <PREFIX> images / <PREFIX> images_lang / <PREFIX> images_shop, w których przechowywane jest łącze między obrazami a identyfikatorami produktów.

  • Identyfikatory produktów zmieniły się w bazie danych

Obrazy można również odzyskać, ale będzie to wymagało pewnych zmian.

Najpierw skopiuj folder `/ img / p`, aby pobrać obrazy w nowym systemie plików sklepu.

Następnie będziesz musiał przenieść i dostosować dane z tabel <PREFIX> images_lang / <PREFIX> images / <PREFIX> images_shop .

Tabele <PREFIX> image i <PREFIX> image_shop zawierają kolumnę, która jest odniesieniem do identyfikatorów produktów. Ponieważ zmieniły się w nowym sklepie, musisz zaktualizować te identyfikatory, aby pasowały do ​​nowych wartości.

Ta praca może być żmudna, dlatego zalecamy migrację danych w nowym sklepie poprzez jednoczesne usunięcie istniejących danych.

  • Generuj miniatury

Miniatury zdjęć produktów muszą zostać wygenerowane ponownie, aby były poprawnie wyświetlane na stronie produktu, lejku do kasy itp.

Idź do Projekt> Ustawienia obrazu> Regeneruj miniatury, aby ponownie wygenerować wszystkie brakujące rozmiary.

Załączniki

Podobnie jak obrazy, te foldery należy skopiować na nowy serwer:

  • / download (zawiera załączniki do produktów)
  • / upload (zawiera przesłane przez klientów)

Podobnie jak w przypadku obrazów, będziesz musiał dostosować niektóre treści w swojej bazie danych, jeśli nie możesz zachować oryginalnych identyfikatorów produktów.

  • <PREFIX> załącznik_produktu
  • Dostosowywanie <PREFIX>
  • <PREFIX> customization_data

Wygeneruj indeks wyszukiwania

Importowane produkty nie są natychmiast dostępne do wyszukiwania dla Twoich klientów. Musisz odświeżyć indeks wyszukiwania, aby były dostępne.

Przejdź do Parametry sklepu> Szukaj> Indeksowanie i kliknij „Dodaj brakujący produkt do indeksu”.

Inne opcje migracji dla programistów

Ręczny proces wyjaśniający eksport i import danych z plikami CSV z bazy danych. Jeśli jesteś programistą i chcesz zbudować własne narzędzia do migracji, istnieją inne sposoby uzyskiwania danych biznesowych.

Poniższe interfejsy sprawią, że Twoje narzędzia będą bardziej wydajne i stabilne niż zwykła ekstrakcja CSV. Możesz dodawać wartości przechowywane w innym miejscu niż w bazie danych, obsługiwać własny format i obsługiwać znacznie więcej obiektów ze sklepu źródłowego.

Modele obiektów

Object Model to interfejs w bazie kodu PHP używany przez programistów PrestaShop do żądania bazy danych.

Można to wykorzystać podczas tworzenia modułu odpowiedzialnego za eksport i / lub import obiektów z / do bazy danych.

Więcej informacji można znaleźć na stronie poświęconej ObjectModels

Usługa internetowa (API)

Interfejs API usługi sieciowej to kolejny sposób pobierania lub przechowywania danych w PrestaShop.

Aby było dostępne, musi być włączone z panelu administracyjnego. Zobacz dokument, aby uzyskać więcej informacji: https://doc.prestashop.com/display/PS17/Webservice

Po przygotowaniu interfejs API będzie dostępny dla wszystkich zasobów włączonych dla Twojego klucza. Zasadniczo usługa internetowa w innym interfejsie dla modeli obiektowych, które same łączą się z bazą danych.

Możesz go użyć do pobrania wszystkich swoich produktów, kategorii itp. Z pierwszego sklepu i ponownego wstawienia ich do drugiego sklepu bez wielu zmian.

Ta opcja jest interesująca dla osób, które chcą, aby proces był automatyczny, ponieważ:

  • usługa internetowa prawie się nie zmieniła od czasu PrestaShop 1.5,
  • otrzymujesz wszystkie właściwości danego obiektu,
  • jeśli właściwość jest wielojęzyczna, otrzymasz wartość lub link do innego zasobu dla każdego języka,
  • możesz pobrać adres URL obrazu zasobu (np. produktu), podczas gdy nie możesz znaleźć go bezpośrednio z kolumny bazy danych,
  • pobieranie zasobu lub wstawianie go odbywa się poprzez manipulowanie plikami XML.

Moduły i usługi migracji

Moduł społeczności

Chociaż to rozwiązanie nie jest stworzone przez PrestaShop, jest zgodne z przedstawioną tutaj koncepcją eksportu / importu i było wielokrotnie rekomendowane na platformach dyskusyjnych, takich jak forum.

 

Zawiera dwa różne moduły do ​​zainstalowania w starym i nowym sklepie, odpowiedzialne odpowiednio za eksport i import danych biznesowych. Wykorzystuje modele obiektów do interakcji z bazą danych.

Usługa wsparcia

Oprócz aktualizacji możesz również poprosić nasz zespół pomocy technicznej o przeprowadzenie migracji za Ciebie.

Twoje dane zostaną zmigrowane, a kompatybilne moduły zostaną przeniesione. Ponieważ motyw zostanie utracony, zamiast tego otrzymasz zniżkę na motywy dostępne w Marketplace. Ta opcja jest przydatna dla sprzedawców, którzy zdecydowali się użyć istniejącego motywu zamiast rozwijać własny.

 

Możesz tez zamówić usługę aktualizacji w naszej firmie: napisz do nas biuro@prestaguru.pl a nasz technik skontaktuje się z Toba i ustali szczegóły oraz wyceni cały proces