Kosz Produktów: kompletny przewodnik
Zainstaluj, skonfiguruj i wykorzystaj kosz produktów: automatyczna kopia przed usunięciem, przywracanie w identycznej postaci z pierwotnym ID, kopiowanie plików obrazów, automatyczna retencja i dobre praktyki dla PrestaShop 8 i 9.
Prezentacja
Moduł Kosz Produktów zamienia każde usunięcie produktu w odwracalną kopię zapasową. Tuż przed skasowaniem produktu, niezależnie od tego, czy dzieje się to ręcznie, przez usuwanie grupowe, przez import czy przez skrypt, moduł tworzy jego pełny zrzut i umieszcza go w koszu. Możesz później przywrócić produkt w identycznej postaci jednym kliknięciem, wraz z jego pierwotnym ID, co zachowuje adresy URL i pozycjonowanie.
Zrzut obejmuje dane w bazie (kartę, tłumaczenia, warianty, ceny, stany magazynowe, kategorie, cechy i tak dalej) oraz pliki obrazów na dysku. Moduł jest zgodny z PrestaShop 8 i 9, zarówno w trybie jednego sklepu, jak i multisklepu, i obsługuje wiele języków.
Instalacja
- W panelu administracyjnym otwórz Moduły > Menedżer modułów.
- Kliknij Wgraj moduł i przeciągnij archiwum ZIP modułu.
- Po zakończeniu instalacji kliknij Konfiguruj.
Podczas instalacji moduł tworzy dedykowaną tabelę kopii zapasowych, chroniony katalog kopii dla obrazów oraz nową zakładkę Kosz produktów w menu Katalog. Nadzór nad usunięciami jest aktywny natychmiast, bez wcześniejszej konfiguracji.
Dostęp do kosza
Kosz jest dostępny na dwa sposoby: przez menu Katalog > Kosz produktów albo przyciskiem Otwórz kosz na stronie konfiguracji modułu. Lista pokazuje produkty zapisane i jeszcze nieprzywrócone, wraz z ich pierwotnym ID produktu, nazwą, referencją, liczbą zapisanych obrazów, autorem usunięcia i datą.
Jak działa kopia zapasowa
Moduł podpina się do hooka actionObjectProductDeleteBefore, wyzwalanego przez PrestaShop tuż przed skasowaniem produktu, w momencie gdy wszystkie jego dane są jeszcze obecne w bazie. Z tego hooka korzysta zarówno stara strona produktu, jak i nowa strona Symfony w PrestaShop 8 i 9, a także usuwanie grupowe. Każdy usuwany produkt jest więc zapisywany indywidualnie.
Przechwycony zrzut obejmuje:
- kartę produktu, jej wersje dla poszczególnych sklepów i tłumaczenia dla wszystkich języków;
- warianty, ich atrybuty oraz wersje dla poszczególnych sklepów;
- ceny specyficzne, stany magazynowe i powiązania z kategoriami;
- cechy, tagi, dostawców i przewoźników;
- załączniki, produkty powiązane, zestawy i wirtualne produkty do pobrania;
- pola personalizacji i ich tłumaczenia;
- pliki obrazów, we wszystkich wygenerowanych rozmiarach, kopiowane do chronionego katalogu kopii zapasowych.
Przechwytywanie jest ciche i nigdy nie blokuje usunięcia. Jeśli któryś etap kopii zapasowej z jakiegokolwiek powodu się nie powiedzie, PrestaShop kontynuuje usuwanie normalnie: moduł nie zakłóca działania sklepu.
Przywracanie produktu
- Otwórz Katalog > Kosz produktów.
- Odszukaj produkt do przywrócenia na liście (możesz filtrować i sortować kolumny).
- Kliknij zielony przycisk Przywróć i potwierdź.
Moduł ponownie wstawia wszystkie powiązane tabele w jednej transakcji, zachowując pierwotne identyfikatory, kopiuje pliki obrazów dokładnie w te same miejsca, a następnie uruchamia ponowną indeksację wyszukiwarki. Produkt pojawia się w katalogu w takiej postaci, w jakiej był przed usunięciem, a jego wpis znika z kosza. Kod HTML opisów jest zachowany co do znaku.
Ochrona przed konfliktem. Przywracanie najpierw sprawdza, czy ID produktu jest wolne. Jeśli inny produkt ma już ten identyfikator, przywracanie zostaje anulowane, a komunikat o tym informuje, tak aby nigdy nie nadpisać istniejącej karty. W praktyce PrestaShop nie używa ponownie usuniętych identyfikatorów, więc taki przypadek jest rzadki.
Usuwanie trwałe i opróżnianie kosza
Aby zwolnić miejsce, możesz trwale usunąć pojedynczą kopię czerwonym przyciskiem w kolumnie Akcje. Ta operacja kasuje zrzut i powiązane pliki obrazów, jest nieodwracalna.
Przycisk Opróżnij kosz, na górze listy, trwale usuwa wszystkie nieprzywrócone kopie w jednej operacji.
Konfiguracja
Zapisuj pliki obrazów
Gdy ta opcja jest włączona (domyślnie), moduł kopiuje pliki obrazów we wszystkich rozmiarach przy usunięciu i przywraca je na miejsce przy odtworzeniu. Wyłącz ją, jeśli chcesz zapisywać wyłącznie dane i oszczędzić miejsce na dysku. W takim przypadku wiersze obrazów pozostają w zrzucie, ale pliki nie są przywracane.
Retencja (dni)
Określ liczbę dni, po której kopie są automatycznie czyszczone. Wartość 0 zachowuje kopie bez ograniczenia czasowego. Czyszczenie wykonuje się przy okazji kolejnych usunięć.
Multisklep i wielojęzyczność
Zrzut przechwytuje wszystkie języki i wszystkie sklepy powiązane z produktem, a przywracanie odtwarza je w całości. Moduł działa zarówno na pojedynczym sklepie, jak i w multisklepie PrestaShop.
Dobre praktyki i przypadki szczególne
- Duże katalogi: każde usunięcie tworzy kopię. Ustaw odpowiednią retencję, aby uniknąć zbędnego gromadzenia danych, jeśli często usuwasz wiele produktów (na przykład przy importach zastępujących katalog).
- Katalog kopii: jest chroniony plikami
.htaccessiindex.php, nie jest więc publicznie dostępny. Musi pozostać zapisywalny przez serwer. - Importy: import, który usuwa, a następnie odtwarza produkty, zapełnia kosz usuniętymi wersjami. Jest to zamierzone i przydatne przy nieudanym imporcie. Pamiętaj, aby opróżnić kosz po zatwierdzeniu importu.
Deinstalacja
Odinstalowanie modułu usuwa tabelę kopii zapasowych, zakładkę w menu oraz cały katalog kopii (zrzuty i pliki obrazów). Produkty już przywrócone i obecne w katalogu nie są naruszane.
FAQ
Czy kosz działa przy usuwaniu grupowym i na nowej stronie produktu?
Tak. Przechwytywanie opiera się na hooku, z którego korzysta stara strona produktu, nowa strona Symfony w PrestaShop 8 i 9 oraz usuwanie grupowe. Każdy usuwany produkt jest zapisywany indywidualnie.
Czy przywracanie zachowuje to samo ID produktu?
Tak. Produkt jest przywracany z pierwotnym identyfikatorem, co zachowuje jego adresy URL, przekierowania i pozycjonowanie. Jeśli identyfikator jest już zajęty, przywracanie zostaje zablokowane.
Czy obrazy są przywracane wraz z plikami?
Tak, o ile opcja zapisu obrazów jest włączona. Pliki we wszystkich rozmiarach są kopiowane przy usunięciu i przywracane na miejsce przy odtworzeniu, po czym wyszukiwarka jest ponownie indeksowana.
Czy moduł jest zgodny z PrestaShop 9?
Tak, moduł jest zgodny z PrestaShop 8.x i 9.x, zarówno w trybie jednego sklepu, jak i multisklepu.