Удалил старые заказы - появились старые товары!

Я бы архитектурно пересмотрел схему работы и сделал бы синхронизацию складских остатков из учётной системы (1С), как это делают взрослые люди, а не вести учёт в CMS. Настроить синхронизацию раз в 1 час, например (если база большая), или чаще, если база маленькая.
Тогда даже если кратковременно остатки появятся из-за удаления старых заказов, то потом быстренько по расписанию из 1С подтянутся правильные.
Ну или если не хочется чтобы даже час висели неправильные остатки, то можно взять за регламент, что после удаления заказов сразу вручную запустить синхронизацию из 1С.

P.S. я тут подумал: надеюсь у вас не возникнет аналогичного желания и вы не решите “уменьшить размер БД в 1С” и для этого удалить реализации старше 3-х лет? :slight_smile: В таком случае, вы получите аналогичный эффект и моё решение вам не поможет))

Вот это самое идеальное решение. Я когда-то делал “по взрослому”, выгрузку остатков из 1с по расписанию. Но. Заказ на последнем единицу создан - заказ в 1с ещё не выгружен, а остатки загружает на сайт из 1с. Получаем +1 товара, который уже закончился. Плюс это ещё с сайта и на маркетплейсы уходит. Беда. Поэтому сайт нормально сам учёт ведёт. И только если пошли какие-то списания или переучёт в 1с - вручную выгружать на сайт. Теперь все чётко по количеству.

Тогда для этого делается ещё и синхронизация заказов из cs-cart в 1С. Штатный модуль commerceml в принципе при некоторой настройке и изысканиях в принципе это умеет. Тогда если заказ создался в cs-cart, то через некоторое время попадает в 1С и там резервирует товар и тогда в обеих системах одинаковое количество.
Конечно, есть нюансы при реализации, настройке и внедрении всего этого, но если хочется по-взрослому, то это всё можно сделать (проверено мной).

Для начала просто удалить все заказы старше определенной даты. Синхронизации с 1С нет., и не предвидится.

сделайте перед чисткой экспорт с количеством, после чистки заказов импортируйте остатки (с галочкой Уменьшить количество товаров до нуля)

а что делать с оповещением людей которые подписаны на товары? =}

на время чистки отключить отправку уведомлений)

:slight_smile:
и да, при этом удалении функциz update_product_amount не отрабатывает и поэтому никакие уведомления не уходят.