Процесс оформления доставок добавляет трек номер после обработки заказа в системе менеджером. В связи с этим, в одном триггере не должны использоваться одновременно условия, связанные с трек номером:
- Добавление
- Изменение
- Удаление
И изменением заказа:
- Изменение статуса заказа
- Изменение статуса оплаты
- Изменение любого поля заказа и др.
Если использовать эти условия в одном триггере, он не будет срабатывать так, как вы ожидаете.
Рекомендации по настройке триггера для отправки трек-номера
При настройке триггеров для отправки уведомлений с трек-номером важно учитывать, что он может добавляться в заказ не одновременно с изменением статуса. Триггер, основанный на смене статуса, может сработать до того, как система успеет присвоить трек-номер. В этом случае клиент получит уведомление без него.
Чтобы гарантировать отправку корректных данных, рекомендуется строить условие триггера на факте появления трек-номера в заказе.
Некорректный пример (может не сработать)
Условие проверяет только переход заказа в определённый статус. В момент выполнения этого условия трек-номер в заказе может еще отсутствовать.
changeSet.hasChangedField("status") and changeSet.getNewValue("status").getCode() == "send-to-delivery"
Корректный пример
Условие проверяет непосредственно факт появления трек-номера в заказе. Триггер сработает именно в тот момент, когда трек-номер будет добавлен.
changeSet.hasChangedField("integration_delivery_data.track_number") and order.integrationDeliveryData.trackNumber != null