Удаление старых заказов (avp_del_old_orders)
Версия 1.3.3 · для CS-Cart 4.x · русский, английский, немецкий
О модуле
Со временем таблица заказов в магазине растёт до сотен тысяч записей: архивы, тестовые покупки, отработанные за прошлые годы сделки. Это раздувает базу данных и замедляет админку, выгрузки и отчёты. Модуль позволяет безопасно освобождать базу от устаревших заказов прямо из панели администрирования — с контролем объёма, наглядным прогрессом и полным журналом каждой операции.
Возможности
Запуск из меню «Заказы». Пункт «Удалить старые заказы» встроен в штатное меню раздела «Заказы» — функционал находится там, где его логично искать.
Страница запуска с предпросмотром. Перед удалением модуль показывает, сколько заказов подходит под условие и сколько из них будет удалено за один запуск (по лимиту из настроек). Удаление необратимо, поэтому страница честно предупреждает об этом и рекомендует предварительно сделать резервную копию базы данных.
Плавный прогрессбар. Используется штатный механизм полосы прогресса CS-Cart: всплывающее окно показывает общее количество заказов, и по мере удаления полоса заполняется шаг за шагом. После завершения полоса закрывается сама, а на странице появляется уведомление.
Настройка лимита на запуск. Количество заказов, удаляемых за один запуск, задаётся в настройках модуля. Если подходящих заказов больше лимита, за раз удалится только лимитированная порция — остальные можно удалить следующими запусками. Это позволяет мягко расчищать большие базы без длительной блокировки процесса.
Уведомление со ссылкой на журнал. После запуска уведомление показывает, сколько заказов удалено, и содержит ссылку на журнал именно этого запуска. Ссылка открывает стандартное поп-ап окно CS-Cart, поверх всего контента; текст журнала подгружается по требованию — только в момент открытия, без лишних запросов.
Отдельный журнал на каждый запуск. Каждый запуск пишется в собственный файл вида avp_del_old_orders_ГГГГ-ММ-ДД_ЧЧ-ММ-СС.log в папке var/addons/avp/: строка старта с параметрами, найденное количество, по строке на каждый удалённый заказ, итог. По журналу всегда можно восстановить, что именно и когда было удалено.
Крон-режим для автоматизации. Помимо ручного запуска, модуль поддерживает режим cron — как через CLI, так и по защищённому паролю. Настройте периодическое выполнение, и старые заказы будут удаляться автоматически небольшими порциями, каждый запуск — со своим журналом.
Безопасность
- Ограничение доступа по настройке. В настройках есть чекбокс «Удаление заказов доступно только главному администратору»: при включённой опции пункт меню скрывается от остальных администраторов, а контроллер дополнительно проверяет права — даже прямой заход по известному адресу не даст запустить удаление.
- Защита от подделки запросов. Страница запуска выдаёт одноразовый токен, и контроллер проверяет его перед удалением — ajax-ссылку нельзя дёрнуть со стороны.
- Защита журналов от обхода. Имя файла журнала в запросе проверяется строгим шаблоном: подстановка путей исключена.
- Подтверждение перед удалением. Запуск требует подтверждения во всплывающем окне.






