Press "Enter" to skip to content

Usuwanie zamówienia o określonym ID lub wszystkich zamówień [Presta Shop 1.5 i 1.6]

Admin 1

Możemy w tym celu użyć wielu darmowych modułów. Jednak możemy też to wykonać bez instalowania dodatkowego oprogramowania po prostu poprzez odpowiednie zapytanie. Np. wywołane w PhpMyAdmin.

Przed wykonaniem tych modyfikacji najlepiej wykonać kopię bezpieczeństwa sklepu. Poprzez zakładkę:

Zaawansowane » Kopia zapasowa DB

Co potrzebujemy?

Znajdujemy ID naszego zamówienia. Jest to numer (cyfra) w pierwszej kolumnie na liście zamówień w zapleczu sklepu. W naszych komendach zamiast tej liczby wpiszemy „XXXXX”

Następnie logujemy się do PhpMyAdmin i wchodzimy w zakładkę SQL. Dane do zalogowania do tego programu znajdują się w pliku:

config/settings.inc.php

A link do PhpMyAdmin na naszym serwerze powinien dostarczyć provider lub administrator.

Komendy

Uruchamiamy serię komend:

DELETE a,b FROM ps_order_return AS a LEFT JOIN ps_order_return_detail AS b ON a.id_order_return = b.id_order_return WHERE id_order=XXXX;
DELETE a,b FROM ps_order_slip AS a LEFT JOIN ps_order_slip_detail AS b ON a.id_order_slip = b.id_order_slip WHERE id_order=XXXX;
DELETE FROM ps_order_history WHERE id_order=XXXX;
DELETE FROM ps_order_detail WHERE id_order=XXXX;
DELETE FROM ps_orders WHERE id_order=XXXX;

Usuwanie kilku zamówień jednocześnie

Usuwanie poprzez powyższe komendy dużej ilości zamówień może być dość kłopotliwe. Jeśli chcemy usunąć kilka zamówień (np. o numerach ID1, ID2, ID3) za jednym razem zamiast fragmentu kodu w powyższych komendach:

id_order=XXXX

Użyć należy:

id_order IN (ID1,ID2,ID3)

W wylistowaniu wszystkich potrzebnych ID (gdy jest ich np. kilkadziesiąt) może być pomocny np. arkusz kalkulacyjny. Możemy tam zamienić poszczególne komórki na oddzielone przecinkami liczby.

Usuwanie wszystkich zamówień

Chyba nie trzeba zaznaczać, że operacja (o ile nie ma kopii bezpieczeństwa bazy danych) jest nie odwracalna 🙂

DELETE a,b FROM ps_order_return AS a LEFT JOIN ps_order_return_detail AS b ON a.id_order_return = b.id_order_return WHERE id_order IN (SELECT id_order FROM `ps_orders`);
DELETE a,b FROM ps_order_slip AS a LEFT JOIN ps_order_slip_detail AS b ON a.id_order_slip = b.id_order_slip WHERE id_order IN (SELECT id_order FROM `ps_orders`);
DELETE FROM ps_order_history WHERE id_order IN (SELECT id_order FROM `ps_orders`);
DELETE FROM ps_order_detail WHERE id_order IN (SELECT id_order FROM `ps_orders`);
DELETE FROM ps_order_carrier WHERE id_order IN (SELECT id_order FROM `ps_orders`);
DELETE FROM ps_order_cart_rule WHERE id_order IN (SELECT id_order FROM `ps_orders`);
DELETE FROM ps_order_invoice WHERE id_order IN (SELECT id_order FROM `ps_orders`);

TRUNCATE ps_order_invoice_payment;
TRUNCATE ps_order_payment;
TRUNCATE ps_order_detail_tax;
TRUNCATE ps_orders;

Możemy też w tym celu posłużyć się modułem do kasowania testowych danych ze sklepu. Opisywaliśmy to w tym artykule:

Usunięcie testowych danych ze sklepu, wyczyszczenie sklepu z testowego asortymentu

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.

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

Zobacz także !
Wprowadzenie. Z racji, że taka wydawać by się mogło prosta…