Архивирование старых заказов

Сейчас точно не вспомню, но кажется в функции fn_delete_order закомментировал вызов функции fn_change_order_status (можно только на время удаления заказов, но так как я удалятю только старые заказы, то просто оставил это изменение насовсем), после этого заказа удаляются без изменения количества товаров, присутствующих в заказе.

1 лайк

Все что содержит session можно снести (всех разлогинит, потрутся корзины).

Остальное нужно, но для заказа много лишней информации в БД хранится, была тут где-то тема. Поэтому там как-то выборочно все надо чистить

1 лайк

Я периодически чищу order_details. Удаляю записи, относящиеся к старым заказам. Оставляю только о заказах за последние несколько месяцев. Ни разу еще эта удаленная информация не потребовалась. При необходимости можно сначала сделать резервную копию тех записей, которые будут удалены. В архиве копия будет мало места занимать. Но я даже копию не делаю. На целостность БД эта таблица не влияет, так как на нее нет отсылок в других таблицах.

1 лайк

Как-то так я думаю удалять (фрагмент) по крону

$db_save_time = time() - 86400 * 45; // 45 days  
$db_query1 = "DELETE FROM cscart_order_data WHERE EXISTS (SELECT * FROM cscart_orders WHERE cscart_order_data.order_id = cscart_orders.order_id AND cscart_orders.timestamp < " . $db_save_time . ");"; 
$db_query2 = "DELETE FROM cscart_order_details WHERE EXISTS (SELECT * FROM cscart_orders WHERE cscart_order_details.order_id = cscart_orders.order_id AND cscart_orders.timestamp < " . $db_save_time . ");"; 
1 лайк

А как-то можно почистить те лишние данные по ПВЗ, которые тянулись и с последнего обновления перестали?