Aktualizacja szablonu usunęła zmiany w PrestaShop: jak je odzyskać i zabezpieczyć na przyszłość
Gdy aktualizacja szablonu usunęła zmiany w PrestaShop, nowe pliki autora nadpisały twoje poprawki. Odzyskasz je z kopii plików sprzed aktualizacji: z hostingu, od developera albo ze starej paczki motywu. Potem przenieś je do motywu potomnego. Aktualizacja motywu nadrzędnego go nie dotyka, więc zmiany nie znikną drugi raz.
Autor: Sani. Sani buduje moduł TellMyShop i na co dzień pracuje z zapleczem sklepów PrestaShop.
Aktualizacja: · 4 min czytania
Jak to zwykle wygląda po aktualizacji?
Zaczyna się od drobiazgu, który ktoś zauważa po kilku dniach. Piątek, 22:05, klientka pisze, że nie widzi informacji o darmowej dostawie na karcie produktu. Ten tekst dodał developer rok temu, wprost w pliku motywu. W środę motyw dostał aktualizację od autora, z poprawkami błędów i nowym wyglądem koszyka.
Aktualizacja zrobiła to, co miała zrobić. Zastąpiła pliki motywu nowymi wersjami. Razem z nimi wróciły stare kolory przycisków, zniknął dopisek w stopce i tekst o dostawie. Nikt nie zapisał listy tych zmian, bo „przecież są w sklepie”.
Dlaczego aktualizacja nadpisuje zmiany w motywie?
Bo pliki motywu należą do jego autora, a aktualizacja wymienia je na nowe. Dotyczy to kupionych motywów i motywu Classic. Asystent aktualizacji PrestaShop ma osobną opcję aktualizacji motywu domyślnego, opisaną w instrukcji aktualizacji. Gdy jest włączona, Classic wraca do wersji z nowego wydania.
Na ten problem PrestaShop ma motyw potomny. To osobny motyw, który dziedziczy wszystko po nadrzędnym i nadpisuje tylko pliki, które w nim zmienisz. Mechanizm wyjaśnia dokumentacja motywów potomnych, a polski poradnik z przykładami przygotowało Biegun.Studio.
Skąd wziąć wersję sprzed aktualizacji?
Sprawdź po kolei miejsca, w których mogła zostać kopia.
| Źródło | Co zawiera | Na co uważać |
|---|---|---|
| Kopia zapasowa hostingu | pliki z dnia kopii | przywróć pojedyncze pliki do osobnego katalogu, nie cały sklep |
| Developer, który robił zmiany | jego wersje plików | może mieć listę zmian, o którą warto poprosić |
| Paczka starej wersji motywu | pliki autora bez twoich zmian | pozwala porównać i znaleźć różnice |
| Kopie plików z TellMyShop | pliki zmieniane przez Claude | tylko zmiany zrobione przez Claude |
| Archiwum strony w przeglądarce | wygląd, nie kod | pomaga odtworzyć teksty i układ |
Nie przywracaj całego sklepu z kopii, żeby odzyskać kilka linii w motywie. Stracisz zamówienia i zmiany w katalogu z ostatnich dni. Pliki motywu przywróć do osobnego katalogu i porównaj je z obecnymi.
Jak przenieść zmiany do motywu potomnego?
Kolejność ma znaczenie, bo motyw potomny włączasz dopiero na końcu.
- Spisz zmiany, które zniknęły: plik, miejsce i co tam było.
- Utwórz motyw potomny obecnego motywu.
- Do motywu potomnego skopiuj tylko te szablony, które zmieniasz, i wprowadź w nich poprawki.
- Własne style dopisz do pliku custom.css motywu potomnego.
- Zmiany wyglądu modułów zrób w kopiach ich szablonów w motywie potomnym.
- Włącz motyw potomny w Wygląd > Szablony.
- Wyczyść pamięć podręczną i sprawdź stronę główną, kartę produktu, koszyk i zamówienie. Sprawdź też kolejność bloków w Wygląd > Pozycje.
- Zapisz listę zmian w jednym miejscu, razem z nazwami plików.
Jeśli zmieniasz kolory, przeczytaj o tym, jak zmienić kolor przycisku przez custom.css. Szerzej o edycji szablonu pisze też icomSEO.
Co nie znika przy aktualizacji motywu?
Wszystko, co jest zapisane w bazie danych, a nie w plikach motywu. Tłumaczenia tekstów, ustawienia modułów, kolejność bloków na stronie głównej, treści stron informacyjnych i opisy produktów zostają. Dlatego część zmian lepiej robić tam, a nie w szablonie. Przykład: napis w stopce o PrestaShop często zmienisz w tłumaczeniach, bez edycji pliku.
Jak nie stracić zmian przy następnej aktualizacji?
Przed każdą aktualizacją motywu albo PrestaShop zrób kilka rzeczy.
- Pobierz kopię katalogu motywu na komputer albo poproś o nią hosting.
- Sprawdź, czy sklep działa na motywie potomnym. Jeśli nie, utwórz go przed aktualizacją, a nie po.
- Przeczytaj listę zmian od autora motywu. Jeśli zmienił plik, który nadpisujesz w motywie potomnym, twoja kopia może wymagać poprawki.
- Aktualizuj najpierw na kopii testowej sklepu, jeśli ją masz.
- Po aktualizacji przejdź listę swoich zmian i sprawdź każdą na stronie.
Jak zabezpieczyć zmiany z Claude?
Prosisz o motyw potomny, zanim cokolwiek zmienisz w wyglądzie. Claude sprawdza obecny motyw i tworzy motyw potomny. Gdy go włączysz, Claude zapisuje zmiany w nim, z kopią każdego pliku.
Po aktualizacji motywu zniknął tekst o darmowej dostawie na karcie produktu. Przywróć go tak, żeby nie zniknął przy kolejnej aktualizacji.
Aktywny motyw to Lumo 3.2, bez motywu potomnego. Proponuję najpierw utworzyć motyw potomny lumo-child. Nie włączę go sam, zrobisz to w Wygląd > Szablony.
Gdy go włączysz, dopiszę w nim tekst w szablonie karty produktu:
było: (brak tekstu pod ceną)
będzie: Darmowa dostawa od 200 zł
Przed zapisem zobaczysz różnicę w pliku, a plik dostanie kopię zapasową.
Do zmian w plikach motywu potrzebujesz wersji płatnej i bloku Wygląd. Claude dostaje się do nich wyłącznie połączeniem serwisowym z zaufanych adresów IP. Zmianę pliku cofniesz z kopii. Utworzenia motywu potomnego nie cofa historia zmian. Niepotrzebny motyw usuwasz w panelu. W darmowym Audycie Claude sprawdzi, jaki motyw jest aktywny.
Jak sformułować takie zadanie, pokazują zastosowania zabezpieczenie zmian w motywie przed aktualizacją i przywrócenie pliku motywu z kopii.
Pytania i odpowiedzi
Czy da się odzyskać zmiany po aktualizacji motywu?
Często tak, jeśli istnieje kopia plików sprzed aktualizacji. Szukaj jej w kopiach zapasowych hostingu, w plikach na komputerze osoby, która robiła zmiany, albo w paczce starej wersji motywu. Gdy kopii nie ma, zmiany trzeba odtworzyć na podstawie zrzutów ekranu, archiwum strony albo pamięci developera.
Dlaczego aktualizacja motywu kasuje moje zmiany?
Bo aktualizacja zastępuje pliki motywu nowymi wersjami od autora. Plik, który zmieniłeś, wraca do wersji autora razem z poprawkami błędów. Aktualizacja nie wie, które linie były twoje. Dlatego zmiany trzyma się w motywie potomnym, którego aktualizacja motywu nadrzędnego nie dotyka.
Czy motyw potomny spowolni sklep?
Nie powinien. Motyw potomny to mały katalog z plikiem konfiguracji i tylko tymi plikami, które zmieniasz. Resztę PrestaShop bierze z motywu nadrzędnego. Po włączeniu go sprawdź stronę główną, kartę produktu i koszyk, bo w ustawieniach sklepu to formalnie inny motyw.
Czy zmiany w modułach też znikają po aktualizacji?
Tak, jeśli były zrobione w plikach modułu. Aktualizacja modułu zastępuje jego pliki tak samo jak aktualizacja motywu. Wygląd modułu zmienia się bezpiecznie w kopii jego szablonu w motywie, najlepiej w motywie potomnym. PrestaShop używa wtedy kopii, a aktualizacja modułu jej nie rusza.
Czy Claude odzyska moje stare pliki?
Tylko te, które sam zmieniał. Przed każdym zapisem pliku Claude robi kopię. Kopie są trzymane 90 dni, a pięć najnowszych każdego pliku zostaje zawsze. Zmian zrobionych ręcznie przez FTP albo przez developera w tych kopiach nie ma. Wtedy potrzebna jest kopia z hostingu albo od osoby, która je robiła.
PrestaShop jest zastrzeżonym znakiem towarowym PrestaShop SA. Claude jest znakiem towarowym Anthropic. TellMyShop nie jest powiązany z żadną z tych firm.