Press "Enter" to skip to content

Migracja danych ze sklepu PrestaShop 1.4 do PrestaShop 1.7. Czy to możliwe? TAK!

Admin 3

Dziś pokażemy jak z grubsza przenieść dane w PrestaShop o całe 3 wersje do przodu. Czyli zupelnie pomijamy 1.5 i 1.6 🙂 Zadanie wydaje się dość karkołomne, ale jest do wykonania:)

Poradnik dotyczy dokładnie migracji z wersji PS 1.4.6.2 do PS 1.7.6.1. Zatem miej na uwadze, że struktura tabel w innych wersjach może się nieznacznie różnić.

Ustawienie prefixów tabel w MySQL

Przede wszystkim będziemy kopiować tabele po stronie MySQL. Pozwoli nam to na migrację nawet gigtantycznej ilości danych (kilkadziesiąt tys. produtków i wiecej). Po za prostotą – zapytania nie obciążają tak serwera i są nieprównywalnie szybsze niż import przez CSV..

W tym celu przyjmujemy podstawową zasadę:

  1. Prefix tabel MySQL w sklepie PS17 będzie mial postać: pr_
  2. Prefix tabel MySQL w sklepie PS14 będzie mial postać: ps_

Prefix – czyli „wstawka” którą zaczynają się nazwy tabel.

To kluczowe, ponieważ pozwoli nam na umieszczenie zrzutów baz z obu sklepów w 1 bazie danych MySQL i operowanie pomiędzy tabelami.

Dlatego w instalacji nowego sklepu PS17 zmień te prefixy w programie PhpMyAdmin, następnie uwzględnij tą zmianę w pliku:

Jeśli stary sklep PS14 nie ma prefixu ps_ tylko jakiś inny – odpowiednio go zmodyfikuj albo uwzględniaj to w poniższych zapytaniach.

Program PhpMyAdmin umożliwia łatwą podmianę prefixów:

Podmiana prefix tabel MySQL w PhpMyAdmin

Po tak przygotowanych prefixach, umieść zrzut starej bazy w bazie danych nowego sklepu. Poprzez zakładkę „Import” w PhpMyAdmin. Finalnie baza nowego sklepu musi mieć „swoje” tabele zaczynające się od „pr_” i „doklejone” tabele starego sklepu zaczynające się od „ps_”.

OK, zdaje się że jest to już jasne i możemy przystąpić do działania 🙂

Przygotowanie instalacji nowego sklepu.

Dobrze aby nowy sklep poza odp. ustawieniem prefixów – miał możliwość wyczyszczenia danych. Tzn. niech będzie to najlepiej czysta instalacja PS.

Uwaga ! Poniższe zapytania będą bezpowrotnie czyścić dane w nowym sklepie i miej to na uwadze 🙂

Języki

Dane będą powielane ze starego sklepu. Zatem, jeśli sklep posiada kilka języków – muszą one na nowym sklepie być założone z tymi samymi ID. Ewentualnie potem w zaimportowanych tabelach trzeba będzie odpowiednio te ID przestawić. NIestety ta druga opcja mimo, że trudniejsza w wykonaniu jest mniej pozbawiona błędów.

Przybliża to artykuł: https://pskrk.com/przeniesienie-kombinacji-produktow-ze-sklepu-w-wersji-1-4-do-najnowszej-1-6-1-2/#Przyklad_z_innymi_ID_jezykow

Import kont klientów i ich adresów.

Importujemy adresy:

Jak widać na początku zapytań czyścimy tabele nowego sklepu poprzez polecenie TRUNCATE.

Import kont klientów:

Jeśli zapytanie zwróci błąd np. przez brak domyślnego języka dla klienta odp. zmodyfikuj strukturę tabeli i ustaw domyślną wartość. Np. dla języka będzie to:

Strukturę (domyślne dane dla kolumn) mozna łatwo modyfikować poprzez PhpMyAdmin

Przeniesienie haseł klientów

Tutaj dochodzi kwestia haseł. Jak widać w zapytaniu importu wyżej – dokładnie kopiujemy wartość hash haseł klientów. Możesz spróbować dodać ten sam „cookie_key” w pliku:

Co „_COOKIE_KEY_” w pliku:

Może to pozwolić na zachowanie tych samych haseł klientów. Jednak nie jest to pewne i całkiem możliwe że będą musieli oni sobie ustwić nowe hasła. Kwestia do sprawdzenia.

Ustawienie grupy klienta.

Większość klientów będzie w grupie „Klient”. W PS17 id tej grupy to 3. Aby to przypisać użyj:

Dodatkowo wypełnij tebelę:

W ten sposób wszyscy klienci będą klientami 🙂

Jeśli chcesz to rozgraniczyć na „gości” (w PS id tej grupy to domyślnie 2) to musisz odp. zmodyfikować te zapytania wg Twoich danych.

Przeniesienie kategorii

Ok jedziemy z asortymentem. To tak naprawdę podstawowe dane do przeniesienia.

Główna tabela kategorii:

Grupy kategorii

Tabele językowe kategorii:

Tabela kategorii dla multistore.

Podobnie jak w przypadku produktów – patrz niżej po prostu ją sklonujemy narzucająć ID = 1 dla ID sklepu.

Przeniesienie produktów.

Podstawowa tabela produktowa:

Tabela bliźniacza produktowa (w zależnośc od ID sklepu) dla multistore:

W PS14 nikt nawet nie marzył o multistore więc po prostu ją sklonujemy z ID sklepu = 1. 🙂

Tabela opisowa dla produktów:

Powiązanie produktów z kategoriami:

Przeniesienie cech produktów

Tutaj pomocny może być artykuł:

Przeniesienie cech produktów ze sklepu PrestaShop w wersji 1.4.x do 1.6.x lub 1.7.x

Tabele ze zdjęciami produktów – import

Przeniesienie grup atrybutów.

Jest to najbardziej problematyczny element, jednak do zrobienia. Prosimy o zapoznanie się najpierw z artykułem gdzie to bardziej przybliżyliśmy:

przeniesienie kombinacji produktów ze sklepu w wersji 1.3-1.4 do 1.6.x [AKTUALIZACJA]

Należy tutaj uważać, ponieważ w wersji PS14 dane są nieco odmiennie składowane i często można natrafić na problemy. Szczególnie z duplikatami kluczy.

W każdym razie spróbuj zrealizować te polecenia celem importu danych.

Tabela łącząca produkty z atrybutami:

Przed importem jest konieczna modyfikacja struktury starej tabeli:

Import:

Tabela kombinacji atrybutów:

Tabela łącząca kombinacje z odp. zdjęciem:

Tabela multistore dla atrybutów:

Uzupełnienie ilości.

Operuje tym tabela pr_stock_available (domyślnie ps_stock_available). Prezentujemy tutaj podstawowe wypełnienie tej tabeli.

Jednak konieczny jest skrypt PHP który poprawi spójność danych w tej tabeli. Tzn. samo zapisanie produktu w adminie to wykonuje, jednak tylko dla konkretnego produktu. Nasz skrypt – wykonuje to masowo:) Aby go użyć zapraszamy do artykułu:

Skrypt PHP to akutalizacji i przebudowy tabeli ps_stock_available [PrestaShop 1.7] [PrestaShop 1.6]

W razie problemów z którymś zapytaniem zapraszamy do kontaktu albo komentarzy.

W przypadku problemów z tym zagadnieniem zapraszamy do zapozniania się z ofertą:

grafika:wallpaperflare.com

  1. Łukasz Łukasz

    Z bazy danych PS1.6 przeniosłem wszystkie kategorie do bazy PS1.7

    Następnie zrobiłem to samo z produktami. Na stronie sklepu mam produkty dostępne natomiast nie są one widoczne w backoffice.

    Dodatkowo klikając „dodaj nowy produkt” przekierowuje mnie do głównej strony panelu administracyjnego.

    Co zrobiłem źle?

    • Admin Admin

      Najlepiej zakutalizuj PS16 do takiej samej wersji jak ten PS17 i przenieś wszystkie tabele produktowe ps_produkt* oraz te co łączą produkty z kategoriami. Dochodzi jeszcze tabela ps_stock_available. Ogólnie nie jest to łatwe zadanie..

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.

Zobacz także !
Właśnie zmagasz się z formularzem kontaktowym, który nie działa w PrestaShop…