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

Друзья, но этот же вопрос давно назрел. Требуется какое-то грамотное решение по резервированию старых заказов.

Я совершенно не понимаю, как вынуждены решать этот вопрос хотя бы средние магазины, работающие на CS-Cart. Мы мелкие, но у нас с этим большие проблемы.

У нас несколько тысяч заказов. Резервное копирование, бекапы, а что еще более важно, обновления превращаются в муку! У нас нормальный сервак - VPS SSD 2 GB 4 CPU, но резервирование таблицы c заказами длится около 10 минут. И у нас из-за этого сломалось обновление с 4.10.3 на 4.10.4 из-за слишком долгого резервного копирования таблиц (время выполнения скриптов при обновлении превысило 10 или 15 минут). Тогда мы этот вопрос решили. Но это лишь отсрочка на время.

Безусловно, история заказов нужна. Мы, например, собираем статистику внутри CS-Cart по числу заказов, общей сумме. Но вот точный состав заказов с возможностью редактирования, которым более 1 или 2 лет, нам особо не нужен. А кому-нибудь он нужен?

Мне кажется, если был бы настраиваемый инструмент по архивированию, который оставлял от заказов лишь слепок с важной информацией и PDF файл в папке с возможностью глянуть на него из админки, было бы хорошим решением этой проблемы.

Есть у вас какие-то мысли не этот счет? @imac

4 лайка

30 с лишним тысяч заказов в базе, бэкап меньше минуты… А если бэкап через supex dumper - секунды

Бекап на 3 тысячи заказов(только что попробовал) делается несколькоу секунд, думаю нужно более детальное изучение проблемы у вас. Вообще ни разу не замечал чтобы они чем-то мешали.

Поделитесь как вам удалось настроить сервер для таких магических результатов?

У нас аналогичная ситуация

Ну так, одна витрина, и самый большой объем - это не количество заказов, таблица логов действий - растет очень быстро, если оставить настройки по умолчанию (абсолютно все галки включены). Поэтому там я оставил пару-тройку галок на критичные события (ошибки и удаления), и кроме того периодически очищаю этот лог.
Ну и конечно, физический сервер, не виртуальный

Скорее всего бэкап виснет из-за таблицы cscart_order_data . Если я правильно понял в ней хранится информация о доставке, оплате и всякие данные от модулей доставки. Попробуйте в ней удалить данные для заказов, которые хотите отправить в архив.

У нас было ровно так же, как вы описали. Заказов было в районе 12к и делать бэкап через админку CS-Cart занимало около 20 минут ) Висло именно на этапе обработки базы данных. Почистили эту таблицу (удалили данные примерно для 85% заказов) и время создания бэкапа уменьшилось до минуты.

2 лайка

Но тогда мы потеряем статистику!

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

1 лайк

Это точно и непонятно мне, сохраняется не расшифровка по выбранным способам доставки и оплаты, а полный массив всех способов доставки . Если их у вас много, таблица разрастается катастрофически!

1 лайк

Добрый день.

Подскажете, каким способом удалили эти данные?

Я удаляю теперь изредка SQL запросом в phpmyadmin.
У меня запрос типа такого:

DELETE FROM cscart_order_data WHERE cscart_order_data.order_id < 10000;

Где cscart_order_data - название вашей таблицы (может отличаться)
10000 - номер заказа, до которого удалить эти данные (я оставляю какое-то количество из последних)

Ну и потом не помешает:

OPTIMIZE TABLE cscart_order_data

4 лайка

При этом заказ остается отображаться в админке, но без детального содержимого?

Останется в админке.
Будет его детальное содержание.
Будет указан способ доставки.
Будет статус.

Но не будет указан трек-номер, не будет виден выбранный ПВЗ (СДЭК, например). Для старых заказов это не очень актуально.

После этих действий размер файла бекапа уменьшился в 2,5-3 раза. А время его создания в 5 раз.

3 лайка

Здравствуйте.
Хочу переехать на VPS с хостинга.
Не могу импортировать базу данных.
Перенёс таблицы частями. Выяснил что проблема в таблице cscart_order_data
phpMyAdmin пишет:

phpMyAdmin - Ошибка
Incorrect format parameter

Месяц назад пробовал делать импорт. Всё пролетало на ура! Причём не частями, а сразу целиком файл экспорта или бэкапа. Сейчас не получается текущий файл импортировать.
Пока возился с настройками нового сервера, что то поломалось.
CS-CART работает, ошибок не замечено. Экспорт происходит нормально. Всё вроде экспортируется.
Но не импортируется только эта таблица.

Подскажите, может можно как то поправить её?

в php.ini
upload_max_filesize=150M
post_max_size=150M

сжатый файл базы 107М

Так пока не стал делать.
Заказов то всего около 2000, а таблица уже 650М.

Попробовал на одном заказе.
Не будет, всё потёрлось.

Какой-то более цивилизованный метод удаления этих избыточных данных имеется, кроме чистки руками? Как обстоят дела в последних версиях?

Коллеги, привет. Появилось ли какое-то решение уменьшить БД? У нас она уже 3 гб при лимите 4 гб на хостинге.

1 лайк

Проверьте какие таблицы занимают много места, после уже принимать решения. Да и если у вас ограничения в 4 гига, можно же его увеличить.

Вот самые жирные таблицы.

image

Тоже хочу заняться чисткой. Старые заказы волочатся за несколько лет… Можно ли заказы удалить, чтобы товары не вернулись в наличие?

Чистится по расписанию:
cscart_order_data
Оптимизируются:
cscart_user_session_products
cscart_sessions
cscart_stored_sessions

Хорошо бы разработчики написали, в каких таблицах можно удалять строки без потери целостности БД.
А ещё лучше разработать какой-то механизм удаления старых данных до указанной даты, например.