Перейти к основному содержимому

События связанные с отгрузками

к сведению

Событие сопоставления позиций отгрузки МС с корзиной БУС при импорте отгрузок — [OnBeforeFindBasketItemFromPosition] — описано в разделе События связанные с корзиной.

[OnAfterBuildDemandPushData] Событие после подготовки данных отгрузки для отправки в МС​

Событие вызывается при выгрузке отгрузок из БУС в МС, когда модуль уже собрал данные документа отгрузки (demand) для конкретной отгрузки БУС и ещё не отправил их в МС. Работает только в режиме полного обмена отгрузками: вкладка «Отгрузки», «Тип обмена документами отгрузок» — «Полное соответствие отгрузок БУС-МС», обмен включён в направлении из БУС в МС.

Событие срабатывает:

  • при сохранении отгрузки в БУС;
  • при выгрузке всех отгрузок заказа — в агентах модуля (после создания заказа в МС и при повторной отправке изменений заказа) и после импорта нового заказа из МС по веб-хуку.

Если отгрузка уже есть в МС (найдена по внешнему коду), модуль готовит данные для её обновления, иначе — для создания новой отгрузки. Системные отгрузки БУС не выгружаются, и для них событие не вызывается.

Параметры события

ПараметрТипОписание
order\Bitrix\Sale\OrderОбъект заказа БУС
orderMsobjectОбъект заказа МойСклад, к которому относится отгрузка
shipment\Bitrix\Sale\ShipmentОбъект отгрузки БУС, для которой подготовлены данные
resultarrayПодготовленный массив данных отгрузки МС. Для существующей отгрузки содержит ключ meta — ссылку на неё в МС (по нему МС поймёт, что документ нужно обновить, а не создать)

Возвращаемое значение

Верните EventResult::SUCCESS с модифицированным массивом. Массив заменит result перед отправкой в МС.

return new \Bitrix\Main\EventResult(\Bitrix\Main\EventResult::SUCCESS, $result);

Если вернуть пустой массив, отгрузка не будет отправлена в МС. Возвращаемое значение обязательно должно быть массивом.