Перенос данных с GetCourse
Техническая инструкция: что переносится автоматически, что руками, и почему автоматическая часть идёт часами. Ограничения ниже — их, а не наши: они следуют из того, что API GetCourse отдаёт наружу.
Что их API отдаёт #
Через API GetCourse забираются:
- пользователи с контактами и дополнительными полями;
- группы;
- заказы;
- платежи.
Этого достаточно, чтобы люди оказались в новой установке с историей покупок.
Что их API не отдаёт #
| Что | Как переносится |
|---|---|
| Курсы, модули, уроки | Ручной выгрузкой либо собирается заново |
| Содержимое уроков | Копированием: разметка у платформ разная |
| Ответы учеников на задания | Ручной выгрузкой по подготовленному шаблону |
| Промокоды | Ручной выгрузкой |
| Сегменты | Собираются заново: язык условий другой |
Учебную структуру их API не создаёт и не отдаёт вовсе — ни в классическом API, ни в Tech API. Ответы учеников тоже: это работа ваших учеников и кураторов за годы, и переносится она выгрузкой, а не вызовом.
Планируйте эту часть временем человека, а не временем скрипта.
Почему автоматическая часть идёт часами #
Ограничения классического API GetCourse:
- 100 запросов экспорта за 2 часа на весь аккаунт — не на ключ и не на интеграцию;
- каждый опрос «готов ли файл» расходует квоту — ожидание готовности стоит столько же, сколько заказ выгрузки;
- экспорт однопоточный: пока формируется один файл, второй не начнётся;
- чтения одного объекта нет — только массовая выгрузка.
База в десятки тысяч человек выгружается часами. Это закладывается в план заранее, а не обнаруживается в день переезда.
Отсюда же требование к модулю переноса: продолжать с места обрыва. Процесс, который идёт часами, обязан переживать разрыв связи и перезапуск.
Порядок переноса #
- Запустить перенос людей и истории покупок. Автоматическая часть, идёт долго и без вашего участия.
- Собрать курсы в новой установке параллельно — это ручная работа, ждать выгрузки для неё не нужно.
- Выдать доступы. Соответствие «человек → курс» восстанавливается из перенесённых заказов; выдать можно руками или импортом.
- Проверить на себе: войти учеником, открыть урок, отправить ответ.
- Переключить продажи и только после этого отключать старое.
Дата старта доступа — проверить отдельно #
В новой установке расписание курса считается от даты старта доступа, а не от даты оплаты и не от даты переноса.
При переносе дату старта надо проставить осознанно: иначе у перенесённых учеников уроки откроются не тогда, когда они ожидают, — все разом либо не откроются вовсе. Как устроены правила открытия — Доступы.
Что проверить после переноса #
- число людей совпадает с числом в старой школе;
- у нескольких человек наугад — контакты, дополнительные поля, история заказов;
- доступы: открывается ли курс у того, кто его купил;
- даты открытия уроков у перенесённого ученика — см. выше;
- ответы учеников, если переносились: на месте ли и видны ли куратору.
Состояние #
Модуль переноса спроектирован, но не написан. Сегодня автоматической части нет: переносить придётся выгрузками целиком, включая людей и заказы.
Ограничения их API от появления модуля не изменятся — они такие же и будут такими же. Поэтому страница описывает процесс, а не кнопку: процесс верен уже сейчас.
Следить — в Обновлениях.