Критическая ошибка складского учета Принято
Всем привет!
Примерно пол года назад переключил интернет-магазин в режим работы "по складам". Создал 1 склад. На данный момент у меня всего один склад. Сразу начались проблемы..
Первое, с чем я столкнулся: были заказы которые висели в обработке (еще не были проданы, но были списаны со склада), при попытке отредактировать и сохранить такой заказ вылетала ошибка с просьбой выбрать склад под каждым товаром, т к на момент принятия заказа в Обработку данные товары были вне складов. Если же я выбирал склад то происходило повторное списание товара со склада. В моем случае, товары, которых было 0 на складе, ушли в минус и стали -1.
Я обратился с данной проблемой в службу поддержки Вебасист, так как заказов таких было много и это могло привести к полному сбою в системе учета товаров с необходимостью последующей инвентаризации (проект рабочий, и учет ведется без 1с).
Службой поддержки было предложено решение SQL запросом обновить информацию в БД для товаров которые были приняты в обработку, что бы избежать конфликта при редактировании других заказов.
Этим SQL запросом я решил проблему:
UPDATE shop_order_items SET stock_id = ( SELECT id FROM shop_stock LIMIT 1 ) WHERE stock_id IS NULL
На этом проблема временно была решена, а служба поддержки обещала исправить этот баг в следующих обновлениях.
Спустя некоторое время проблема проявила себя повторно.
Когда мы создаем новый товар, то несмотря на то, что в настройках включен режим "По складам", в карточке товара по умолчанию предлагается внести количество товара вне складов.
Так же можно нажать на ссылку "по складам" и тогда товар переключается в режим складского учета.
Иногда менеджеры забывают переключить товар в режим "По складам" и создают товар. Если в таком режиме какой либо заказ был принят в обработку, а затем товар переключили в режим "По складам", то при попытке отредактировать заказ ранее принятый в обработку возникает ошибка. Система видит что тот склад с которого был списал товар уже не существует и списывает товар повторно.
Я вижу решение данной проблемы следующим: При редактировании товара (изменении режима склада), система должна обновить информацию в таблице shop_order_items, если редактируемый товар есть в каком либо заказе "вне складов" то необходимо прописать ему склад.
Как съинициировать ошибку?
Создаем карточку товара, указываем количество на складе равным 1, при этом не переключая товар в режим "По складам", сохраняем товар. Далее оформляем заказ и добавляем в него 1 единицу только что созданного товара, сохраняем заказ.
Теперь снова заходим в карточку товара и переключаем его в режим "по складам", сохраняем товар.
Снова заходим в заказ, нажимаем "Редактировать заказ" и тут же пытаемся его сохранить без внесения изменений. Вылетает ошибка с требованием выбрать склад (т е товар уже переключен в режим "по складам").
Выбираем один из складов и теперь система дает сохранить заказ.
Теперь заходим в товары и обнаруживаем сбой в системе учета товаров. Общая сумма единиц товара на всех складах будет неверной. В нашем случае равным -1. Т е в ЬД в таблице shop_product поле count не будет соответствовать фактической сумме остатков на складах.
Мои тикеты в службу поддержки на эту тему 1493956, 1498314. Первый раз сообщал об ошибке еще в феврале 2020 года.
1 комментарий
да вообще склады - это больная тема shop-script они очень легко уходят в минус https://support.webasyst.ru/forum/21700/spisanie-so-skladov---interesnye-nansy/