R50 07e8e55842131ced568184067bdf4c34
Разработка / Тимлид

Интегрировать платформ онлайн школы: Tilda, AmoCrm, Getcours

Добавлено 09 сен 2021 в 20:17
Компания занимается онлайн образованием, бизнес процессы построены на 3-х платформах. Входная точка для клиента - Tilda, Crm для менеджеров построена на Amo, непосредственно сами онлайн-курсы реализуются на Getcourse.

Задачи:

1.1. При оплате курса клиентом необходимо передать информацию о сделке в Amo и завести учетную запись для клиента в Getcourse

1.2. Необходимо сделать адаптер между курсами как товарами на Сайте и Getcourse, тк у них разная логика каталогов.

1.3. Amo должна содержать информацию о результате добавления клиента в Getcourse

2.1. Необходимо реализовать программное ядро реферальной системы (вышеуказанные платформы не имеют готового решения)

2.2. Amo должна знать о приведенных клиентах, чтобы менеджеры могли начислять вознаграждение.

2.3. Участники реферальной программы должны иметь личный кабинет для контроля приведенных ими сделок.

Технологии к-е я использовал для решения: Python, Rest API, Json, Flask.

Все требуемые процессы я реализовал посредством связи API трех платформ, тщательно обработал все предаваемые данные между платформами для адаптации их под разные интерфейсы и с точки зрения безопасности и отказоустойчивости.

В качестве БД я использовал сущности AMO (изначально реализовал на MySQL), но заказчик попросил хранение в одном месте.

В качестве frontend использовал Flask (дизайна и верстку не касаюсь).

Краткий тезисы по проекту из отчета заказчику:

  • Теперь алгоритм смотрит только последние оплаченные сделки.
  • Именно оплата сделки - тригер внесения в getcourse. Если пользователь уже был внесен в getcourse ранее, но появилась новая сделка, то обновляются его Учебные группы в Getcourse из новой сделки.
  • Тк пароль теряет свой смысл в силу авторизации на геткурсе через подтверждение емайла, то в поле getcousre в amo crm Теперь хранится id пользователя в getcourse (для быстрого поиска и взаимосвязи).
  • Если в сделке в amo пользователь оплачивает сразу несколько товаров(курсов) то при внесении в getcourse пользователю добавляются Все эти курсы.
  • Все запросы в api «подстрахованы», те если сервер занят скрипт не прекращает работу а делает паузу и повторный запрос.
  • Происходит очистка результатов запросов от мусора и проверка их на целостность, чтобы не допустить внесение пользователей с ошибками.
  • Учитывается и обрабатывается специфика наименования пользователя, поступающего в amo (в его имени содержаться ссылки и пр.)
  • Настроено автоматическое обновление токена amo crm по их новой версии авторизации (токен устаревает раз в сутки, алгоритм автоматически его обновляет и сохраняет в файл).
  • Протестированы след хостинги: Beget, Reg.ru, Timeweb, coder.com, c9.io, heroku, sprinthost. На каждом запрошен тестовый аккаунт и развернута виртуальная среда скрипта.
  • В форме оплаты на marksteam.ru/shop теперь есть новое, необязательное поле «Реферальный промокод» - это 8-значное число, являющееся кодом уже существующего в AMO клиента.
  • «Робот» реферальной системы отслеживает новые оплаченные сделки, поступающие в АМО, считывает из них если есть реферальный промокод (так же помечает сделку как обработанную реферальным роботом). Сохраняет этот факт, как отдельную сущность в базе АМО. Одновременно с этим новый клиент из свежей сделки автоматически уведомляется электронным письмом – о том, что он так же становится участником реферальной программы, с ссылкой на его личный кабинет.
  • Для менеджера в АМО создан новый список- «Рефералы», который строится на БД реферальной системы (на сущностях АМО). В котором менеджер может видеть кто кого привел, на какой Товар и на какую сумму. Так же в списке есть checkbox «Выплата вознаграждения», которое менеджер должен отметить если рефералу вознаграждение было начислено.
  • По ссылке, которая приходит каждому новому клиенту в АМО, пользователи могут видеть кто воспользовался их промокодом и начислено ли им за этот факт вознаграждение.
  • Все процессы обменов данными (передача промокода, id клиента, данные сделки и тп) проверяются и очищаются на предмет ошибок, пропусков и т.п. Чувствительные по безопасности данные хранятся изолировано от web доступа.
7f8dae9bf9 C3f369a8d5 2cceffaa86 565c96af09 331f01e48b 8e06f9568f 4027cc47a3 14928b629e