История как я хотел обнулять склады в товаре по которым не пришли остатки
Предистория такая, на сайте с лицензией Бизнес где закончился срок обновлений работает обмен с 1С, но наступил момент когда остатки по складам, которых нет в обмене перестали обнуляться.
Было принято решение делать доработку на стороне сайта, писать обработчик, который будет принудительно обнулять склады в товаре по которым не пришли остатки
В итоге я проработал несколько вариантов, но ни один не решает задачу.
У битрикс есть события связанные с торговым каталогом, но проблема такая, что в событии изменения товара (во время обмена происходит изменение) нет данных о изменяемых складах, только общие остатки за весь товар, что не подходит.
При попытке работать с событием обновления склада столкнулся с тем, что данные в этом событии только по одному складу, нет данных по всем изменяемым складам.
В результате получается что в этом событии будут сбрасываться остатки всех складов товара кроме текущего изменяемого, соответственно если произошло изменение по нескольким складам то событие отработает несколько раз затирая остатки складов каждый раз кроме текущего склада.
По остальным событиям также не за что зацепиться. Получается, что на обработчиках битрикс нет возможности получать все изменяемые склады одного товара одновременно, из-за чего не получится обнулять остатки у складов, которых не было в обмене.
Единственный вариант я вижу при отсутсвии лицензии это чтобы 1С специалист выгружал либо в товар информацию по остаткам складов, включая нулевые, либо выгружал это файлом на сервер. Далее эти данные можно обработать и повесить на планировщик (крон) на хостинге и обновлять склады по расписанию, например каждые полчаса или чаще
Было принято решение делать доработку на стороне сайта, писать обработчик, который будет принудительно обнулять склады в товаре по которым не пришли остатки
В итоге я проработал несколько вариантов, но ни один не решает задачу.
У битрикс есть события связанные с торговым каталогом, но проблема такая, что в событии изменения товара (во время обмена происходит изменение) нет данных о изменяемых складах, только общие остатки за весь товар, что не подходит.
При попытке работать с событием обновления склада столкнулся с тем, что данные в этом событии только по одному складу, нет данных по всем изменяемым складам.
В результате получается что в этом событии будут сбрасываться остатки всех складов товара кроме текущего изменяемого, соответственно если произошло изменение по нескольким складам то событие отработает несколько раз затирая остатки складов каждый раз кроме текущего склада.
По остальным событиям также не за что зацепиться. Получается, что на обработчиках битрикс нет возможности получать все изменяемые склады одного товара одновременно, из-за чего не получится обнулять остатки у складов, которых не было в обмене.
Единственный вариант я вижу при отсутсвии лицензии это чтобы 1С специалист выгружал либо в товар информацию по остаткам складов, включая нулевые, либо выгружал это файлом на сервер. Далее эти данные можно обработать и повесить на планировщик (крон) на хостинге и обновлять склады по расписанию, например каждые полчаса или чаще
Ещё статьи:
08.11.2023
Прощай bitrix.xscan, не стало битрикс скан модуля
Сегодня увидел, что полезного модуля bitrix.xscan не стало на маркетплейсе.
ID: 464
26.07.2023
Сохренение ютм меток в сессию
Вариант сохренения ютм меток в сессию в афйле init.php
ID: 462
29.06.2023
Почему DNS есть, но ошибка "Не удалось получить записи с DNS серверов"
Проверка на VPS показывает, что DNS есть, но по факту ошибка "Не удалось получить записи с DNS серверов"
ID: 461