PrestaShop czyszczenie testowych i przykładowych danych.

PrestaShop jest jednym z najpopularniejszych darmowych systemów dzięki któremu można w bardzo szybki sposób uruchomić własny sklep internetowy. Z uwagi na popularność tej platformy oraz możliwości jakie daje instalowanie wtyczek oraz wiele społeczności z nim związanych. Zaraz po ustawieniu i spersonalizowaniu PrestaShop do naszych wymagań i podjęciu decyzji o tym, że już czas oficjalnie uruchomić sklep, pojawia się problem, który z pozoru swojej prostoty wydaje się drobiazgiem, ale jednak nie tak łatwo jest się go rozwiązać. Problem polega na tym, że w czasie instalacji / uruchamiania a następnie podczas ustawiania oraz testowania powstało wiele informacji, zamówień i faktur które nie można usunąć.

Opis problemu

Pytając wujka google i przeszukując internet można znaleźć informację o wtyczkach które rzekomo pomogą usunąć niepotrzebne dane i wyczyścić sklep jakby był nowy. Jednak wszystkie jakie znalazłem działały w sposób nie do końca tak jak powinny ponieważ z widoku w panelu administracyjnym usuwały zamówienia, użytkowników i faktury, jednak w bazie danych pozostawały a to sprawiało problem chociażby w fakturowaniu ponieważ numeracja faktur nie była w spójna.

Rozwiązanie

Jedynym rozwiązanie jakie zadziała jest usunięcie danych bezpośrednio z bazy danych. Należy wykonać następujące zapytania:

TRUNCATE TABLE `ps_customer`;
TRUNCATE TABLE `ps_customer_group`;
TRUNCATE TABLE `ps_address`;
TRUNCATE TABLE `ps_orders`;
TRUNCATE TABLE `ps_order_detail`;
TRUNCATE TABLE `ps_order_detail_tax`;
TRUNCATE TABLE `ps_customer_message`;
TRUNCATE TABLE `ps_order_carrier`;
TRUNCATE TABLE `ps_order_history`;
TRUNCATE TABLE `ps_order_invoice`;
TRUNCATE TABLE `ps_order_return`;
TRUNCATE TABLE `ps_order_return_detail`;
TRUNCATE TABLE `ps_order_invoice_payment`;
TRUNCATE TABLE `ps_order_invoice_tax`;
TRUNCATE TABLE `ps_order_payment`;
TRUNCATE TABLE `ps_message`;
TRUNCATE TABLE `ps_cart`;
TRUNCATE TABLE `ps_cart_product`;
TRUNCATE TABLE `ps_customer_thread`;
TRUNCATE TABLE `ps_order_message_lang`;
TRUNCATE TABLE `ps_order_message`;

Należy szczególną uwagę zwrócić na zapytania gdzie są użyte TRUNCATE a nie DELETE ponieważ te pierwsze dodatkowo zerują wartości auto_increment.

Podsumowanie

Opisane w tym artykule rozwiązanie wykazuje z sklepu wszystkich zarejestrowanych użytkowników wraz z grupami do jakich należą i wszystkimi adresami, wszystkie zamówienia, historię zamówień, faktury, wiadomości przesyłane do klientów oraz wiadomości z zamówień, zapisane stany koszyków. Z uwagi, że po usunięciu tych informacji nie da się odzyskać jeśli nie miałeś wcześniej kopii bezpieczeństwa, dlatego używaj rozważnie, gdyż stosując ten sposób podejmujesz spore ryzyko na własną odpowiedzialność.
Powyższe wskazówki w moim przypadku zadziałały na PrestaShop w wersji 1.6.x i zadziałały właśnie tak jak powinny nie mając przy tym jakichkolwiek problemów. Nie jestem wstanie przewidzieć czy zastosujesz je w innej wersji czy modyfikacje przez które możesz wyrządzić nieodwracalne szkody dlatego zalecam dużą ostrożność.