Суть проблемы: *Чтобы уменьшить размер БД решил удалить старые заказы трехлетней давности. В админке штатно сделал поиск по датам. Отметил галочками заказы. Удалил.
В результате менеджера хватил инфаркт от того, что в стоке появились старые, давно проданные товары, и изменилось количество всего того, что есть сейчас. То есть, заказы удалились, а товары из них снова оказались в продаже. То есть сейчас придется вручную проверять все товары в магазине и на складе!!!
Вообще, в CS-cart давно есть проблема внезапно появляющихся в наличии товаров. Почему такое происходит - отследить не удается. Но, замечали неоднократно: товара нет в наличии очень долго, а потом рраз- и откуда-то появляется единица, которую успевают купить.
К сожалению, бэкапа нет, так как сделать его не удалось по причине раздутой БД.*
А у вас статусы верно стояли финальный со значением увеличивать остатки на складе? Скорее всего дело в этом, а не в ошибке cs-cart. Можете сами просто провести маленький тест у себя или на демо, чтобы проверить.
У нас статус заказа для завершенного (означает оплаченного и отправленного) заказа - Выполнен (С). Расчет товара на складе - Уменьшение.
Пять лет так работаем.
Удаление заказа равносилен его отмене. Значит списание товара было ошибочным, значит его нужно вернуть. Логика примерно такая, и не сказать что в этом вообще нет смысла
Удаление удалением, а отмена отменой. Если нужно отменить заказ то делается отмена (статусом) с возвратом товара на склад. Таким образом кому нужно отменить заказы удалением тот может изменить статус заказа на отменен (вернув товары на склад) и далее удалить. Но это скорее всего пожелания как улучшить CS-Cart. Как и в случае если функционал удаления заказов не менять то желательно выводить сообщение о том какие действия будут проведены и какие последствия.
Улучшить cs-cart это перестать хранить информацию о всех ПВЗ которые были при расчетах в заказе, так как они никакого смысла не имеют, есть скрипт который вычищает базу и для Москвы она худеет с 8 гб до 2 гб. И это исключительно зачистка лишней информации по доставке.
Давно плюнул пытаться улучшить этот движок проблем куча и с обновлением начинаешь ждать что нового вывалиться … Старые заказы сказочно раздувают базу и всякие решения “скрипты” ещё нужно заказать и проверить тоже гемор еще тот. Удаляю заказы по простой схеме импорт товаров в наличии закрываю магазин удаляю заказы, восстанавливаю количество товаров. База худеет в разы. А разработчикам если они есть в природе что проще сделать галочку при удалении пересчитать количество товаров да-нет и выпустить грандиозное (причем платное) обновление с ВОЗМОЖНОСТЬЮ УДАЛЕНИЯ ЗАКАЗОВ.
На днях удалили заказы за 2024-й год. И в базе появилось куча старых товаров. Менеджер в истерике - “меня взломали”. В логах ничего нет. Пришлось проверять остатки ручками. Работа магазина парализована.
Вопрос остается - как удалить из базы заказы, чтобы это было корректно и не вызывало прибавление давно проданных товаров?
Модулем, скриптом, временной правкой ядра, комментарий 1 строки, потом вернуть на место. Логика работы то верная в плане удалили заказ вернули товар, если до этого он был списан.
а так, чтобы девочка-менеджер, не особо богатая интеллектом, могла справиться? Не, я бэкап развернул. Восстановить несколько заказов проще, чем пять сотен товаров проверять по остаткам. Но на будущее - если можете, подскажите решение.
Никак, заказ перед удаление переводиться в статус незавершенный, из-за этого если статус заказа был Выполнен (минус товар), то при незавершенном будет возврат товара в наличие, а если удалять Аннулированный заказ (плюс товар), то при незавершенном кол-во не измениться.
p.s. ну вообще опасно менеджерам доверять удалять заказы за целый год, такое бы тока главному админу оставить