Дано
Клиент занимается доставкой воды. Все заказы обрабатывает в МойСклад.
Нашел мобильное приложение для приема заказов aqua-delivery.com
На базе этого решения сделал удобное приложение для клиентов.

Требуется
Перебрасывать новые заказы из Aqua Delivery в МойСклад.
Решение
У Aqua Delivery есть API.
После создания заказа в Aqua Delivery прилетает в Нодуль вебхук со всеми параметрами заказа.
Сценарий обработки
Выглядит монструозно.

Сейчас станет все понятно.
Подготовка
Прописываем для карточки товара, контрагента и заказа покупателя доп. поля "ID dqua delivery"

В эти поля будут заносится ID соответствующих сущностей из сервиса.
Часть 1
Прописываем параметры для МойСклад и Aqua Delivery.
На какую организацию создавать заказ, ID доп. полей и прочее.

Часть 2
В цикле обрабатываем каждую позицию заказа

Из Aqua Delivery приходит ID товара. Мы ищем в МойСклад товар, у которого в доп. поле "ID aqua delivery" прописан этот код.
Также отрабатываем все нестандартные операции:
- API МойСклад вернуло ошибку
- В МС найдено более одного товара с таким ID
- Или в МС не найден товар с таким ID
Если что-то идет не так, то в комментарии к заказу это отобразится в виде текста.
Часть 3
Следующий этап отвечает за контрагента.

Клиент инициализируется с трех попыток.
- Поиск по доп. полю "ID aqua delivery"
- Поиск по номеру телефона
- Создание нового
Если попытка завершается успехом, то дальнейшие изыскания останавливаются.
Если на каком-то этапе происходит ошибка - скрипт останавливается.

Часть 4
Создание заказа в МоемСкладе

Подготовка тела запроса в формате JSON

и создание заказа в МоемСкладе

Успех
В истории для каждого запуска сценария можно быстро наглядно убедиться, по какому пути выполнялся скрипт.

В МойСклад заказ выглядит так

Заключение
Как видим, через Нодуль к МойСклад можно подключить любой сервис, у которого есть API.
И настроить любую логику поведения. И наслаждаться автоматизацией.
Спасибо, что дочитали до конца! 🙏