@startuml scale 1500x1500 mainframe Автооформление заказов actor user as user participant SITE queue kafka participant Gateway participant workflow participant wtis participant CRM user -> SITE: Оформляет заказ SITE -> SITE: Сохраняет заказ в БД SITE --> kafka: Пишет заказ в kafka Gateway --> kafka: Забирает заказ Gateway -> workflow: CreateB2CAO workflow -> workflow: Проверяет условия АО workflow -> workflow: Проверяет тип доставки workflow -> wtis: синк заказа во втис через kafka alt Тип доставки "Курьером" workflow -> workflow: Устанавливает таймер на N минут alt Поступила оплата в заказ до истечения срока таймера workflow -> workflow: Заканчивает автооформление\nУстанавливает дату доставки\nзаказа workflow -> wtis: Синхронизирует заказ со WTIS else Не поступила оплата в заказ до истечения срока таймера workflow -> CRM: Ставится задача с типом 21 в CRM end else Тип доставки "Самовывоз" workflow -> workflow: Проверяет наличие\nкрупногабаритных товаров\nв заказе alt Крупногабаритных товаров в заказе нет workflow -> workflow: Заканчивает автооформление\nУстанавливает дату доставки\nзаказа workflow -> wtis: Синхронизирует заказ со WTIS else Крупногабаритные товары в заказе есть workflow -> workflow: Устанавливает таймер на N минут alt Поступила оплата в заказ до истечения срока таймера workflow -> workflow: Заканчивает автооформление\nУстанавливает дату доставки\nзаказа workflow -> wtis: Синхронизирует заказ со WTIS else Не поступила оплата в заказ до истечения срока таймера workflow -> CRM: Ставится задача с типом 21 в CRM end end end @enduml