Полная автоматизация MLM-компании

Формулировка задачи

С компанией «Дэта-Элис» мы сотрудничали достаточно давно. Поэтому нам была доверена важная работа - разработка новой версии системы, отвечающей за жизнь всей компании. Системы, ведущей учет всех клиентов (партнеров), всех финансовых операций и остальных бизнес-процессов. Ввиду специфики MLM-компаний ни одна из стандартных CRM не может решить эту задачу.

Общая информация о структуре MLM-компаний

Бинар

Вопреки стереотипу, MLM-компания не является финансовой пирамидой, т.е. не живет исключительно за счет появления новых участников. Хотя по структуре связей она действительно напоминает пирамиду, во всем мире такую структуру принято называть бинарным деревом, или сокращенно - бинаром. Широко известные в России MLM-компании - Avon, Amway и др.

Участники в бинаре выстраиваются по следующему принципу:

Разработка ПО для MLM-компании: общий вид бинара

Как правило, новые люди в бинаре появляются по приглашению кого-либо из существующих партнеров. Если Иван пригласил Петра в бинар, то Петр становится личноприглашенным партнером Ивана, а Иван - спонсором Петра (устоявшиеся термины).

Партнер может иметь 0, 1 или 2 потомка (поэтому дерево и называется бинарным). При этом есть разница между левой и правой ветками - каждая из них учитывается отдельно. Одна из них называется спиловер-веткой, другая - боковой. Каждый партнер сам выбирает, какую ветку считать боковой (левую или правую), а какую - спиловером. Ниже показан пример:

Заказная разработка программного обеспечения на заказ для МЛМ: вид бинара по веткам

При приглашении нового участника может так получиться, что у его спонсора уже заняты оба потомка. В этом случае система проходит по цепочке ниже до появления свободного места. Каждый участник сам выбирает, в какую из веток должны попадать его личноприглашенные партнеры. Таким образом, личноприглашенный партнер может встать не напрямую к своему спонсору, а к одному из потомков спонсора - у кого будет свободное место. При этом система по-прежнему будет помнить, кто именно пригласил этого участника в бинар.

В этом и заключается разница между боковой и спиловер ветками: все «чужие» потомки (их пригласил вышестоящий участник, но у него не было свободного места) всегда будут попадать в спиловер.

Ниже показан пример: партнер 6 приглашает нового участника 16. При этом партнер 6 выбрал в качестве ветки регистрации новых участников - боковую. Место в его боковой ветке уже занято, поэтому новый участник (16) встанет на первое свободное место в боковой ветке - это спиловер участника 9 (поскольку все «чужие» потомки всегда становятся в спиловер).

Разработка ПО для MLM-компании: схема расположения нового участника в бинаре

Покупки, баллы и деньги

Основная движущая сила MLM-компании - покупки товаров участниками. Когда партнер покупает товар, все вышестоящие партнеры вплоть до спонсора получают баллы. Количество баллов индивидуально для каждого товара. Пример:

Создание программного обеспечения для MLM: бизнес-процесс совершения покупки

Баллы впоследствии конвертируются в степы, а степы - в деньги на специальном бонусном счету. Эти деньги можно потратить на приобретение товаров (не более установленного процента от стоимости), перевести другому партнеру или вывести на счет ИП.

Статусы партнеров

Один из важных моментов - каждый партнер должен раз в год подтверждать, что он является участником бинара. Это делается путем покупки фирменного товара (флешкита) - как правило, это набор информационных материалов, дающих право на членство в бинаре (фактически некоторый аналог членских взносов).

Однако покупки флешкита недостаточно: партнер должен выполнять реальную работу в бинаре, т.е. по нему должны либо производиться начисления баллов за покупки, либо он должен сам купить товаров на определенную сумму.

Соответственно, участник может иметь один из следующих статусов:

  • Новый - зарегистрировался, но не купил флешкит
  • Активен - основной рабочий статус
  • Заморожен - не подтвердил участие в бинаре (не купил флешкит или не было начислений баллов). Такому участнику продолжают начисляться баллы, но они заморожены до получения статуса «Активен».
  • Уволен - не разморозился за определенное время. Участник сохраняет место в бинаре, однако ему уже не начисляются баллы и бонусы.
  • Удален - не проявил действий после увольнения. Такой партнер удаляется из бинара и теряет все накопленные баллы и бонусы.

Карьера

Каждый партнер имеет определенное звание - «Мастер», «Бронзовый мастер», «Серебряный мастер» и т.п. Звание не влияет на статус и объем начисляемых баллов, однако является неким «социальным» показателем. За достижение очередного звания предусмотрены подарки (техника, поездки и др.).

Продвижение по карьере осуществляется за счет накопления т.н. карьерных баллов. Эти баллы начисляются за:

  • Привлечение новых партнеров лично;
  • Привлечение новых партнеров своими личноприглашенными партнерами.

Кроме того, для продвижения по карьере партнеру необходимо иметь определенное количество степов. Они не списываются, просто достаточно иметь значение выше порога.

Разное

На самом деле, в системе множество достаточно тонких и сложных нюансов, подробно описать которые невозможно на одной странице. Вот лишь некоторые из них:

  • Структура бонусных начислений более сложная, чем описано выше. Есть «Вознаграждение за подвижение (ВЗП)» (дополнительный бонус спонсору при покупке товара личноприглашенным партнером), бонус «Звезда» (приглашение 2-х партнеров в течение 7 дней) и другие.
  • В системе предусмотрены операции компрессии (автоматической и ручной). Компрессия - специальная процедура «очистки» бинара от неактивных участников (собственно, перевод в статусы замороженного, уволенного или удаленного).
  • Баллы конвертируются в степы только при условии соблюдения определенного баланса баллов по боковой и спиловер веткам (если накопить баллы только по одной из веток, то конвертации в степы не произойдет).
  • Крайне сложная процедура возврата. При возврате нужно не только вернуть деньги, но и откатить назад все начисления баллов. При этом на момент возврата баллы уже могли быть сконвертированы в степы, и тогда партнер может уйти в минус по баллам. Отдельная проблема - возврат флешкитов, поскольку нужно откатывать назад еще и статусы партнера, карьеру его спонсора и др.
  • Предусмотрена система реферальных ссылок на интернет-магазин - чтобы все покупатели автоматически вставали в бинар реферала.
  • У каждого участника есть два вида счета: основной (для оплаты товаров деньгами) и бонусный (на него происходит начисление бонусных средств).

Общая архитектура системы

Система состоит из множества модулей. Ниже представлена ее архитектура:

Разработка ПО для MLM-компании: архитектура системы
  • Сайт и интернет-магазин - веб-сайт, на котором размещается информация о компании, каталог товаров и магазин для осуществления покупок
  • Бэк-офис - личный кабинет партнера (где он видит свой бинар, историю покупок, начислений и др. - будет подробно описано далее).
  • Админка - приложение для руководства компании (см. далее).
  • Приборы Deta-Mini и служба для них - веб-сервис для автоматической доставки купленных программ на аппаратные средства.
  • 1-С - используется для обработки интернет-заказов. Фактически, заказы формируются на сайте, далее выгружаются в 1-С, где и обрабатываются. В свою очередь, 1-С сообщает сайту о всех обновлениях по заказу (для отображения пользователю).
  • Сервис начислений - специальная служба, производящая фоновое начисление баллов, степов и бонусных средств, а также обновляющая статусы и карьеру пользователей.
  • Служба интеграции с транспортными компаниями - используется для расчета стоимости доставки при покупке товаров.

Работа в разных странах

Поскольку компания работает во множестве стран, в системе предусмотрен полный комплекс мер для этого:

  • Многоязычность интерфейса
  • Поддержка разных валют и разных курсов между ними
  • Возможность подключения любых процессинговых сервисов (для онлайн-оплаты).

Сайт и интернет-магазин

Настала пора посмотреть на систему вживую. Начнем с официального сайта, совмещенного с интернет-магазином.

Главная страница сайта - типичный «лэндинг»:

Заказная разработка программного обеспечения на заказ для МЛМ: лэндинг пейдж

На сайте много и других чисто информационных страниц.

Однако главную роль играет интернет-магазин. Хотя с виду это классический интернет-магазин, на самом деле это не так. Движок магазина очень тесно интегрирован с MLM-функционалом.

Страница каталога выглядит достаточно стандартным образом:

Заказная разработка программного обеспечения на заказ для МЛМ: каталог товаров

Карточка товара тоже весьма банальна для интернет-магазина:

Заказная разработка программного обеспечения на заказ для МЛМ: интернет-магазин - карточка товара

Основные отличия начинаются при оформлении покупки. Система в обязательном порядке предложит зарегистрироваться или авторизоваться (если человек уже зарегистрирован). Это необходимо для того, чтобы в системе прошло начисление баллов за покупку и все дальнейшие действия.

Ниже показана форма авторизации и регистрации. Как правило, регистрирующийся участник знает номер спонсора. В этом случае он обязательно должен указать его при регистрации. Это необходимо для того, чтобы новый партнер встал в правильное место в бинаре и стал новым личноприглашенным партнером спонсора.

Если участник не знает спонсора (например, нашел сайт через поиск и ранее не был знаком с системой), то он ставит соответствующую галочку. В этом случае он встанет в спиловер к партнеру «по умолчанию», которым является сама компания.

Создание программного обеспечения для MLM: форма регистрации

Зарегистрировавшись, участник становится полноправным членом бинара. Теперь ему доступен личный кабинет, называемый бэкофисом, о котором и пойдет речь далее.

Бэкофис

Бэкофис - это основной рабочий кабинет любого партнера системы. Опишем его поподробней.

На стартовой странице бэкофиса партнер видит общую сводку о состоянии своих дел: в каком карьерном ранге он сейчас находится и сколько необходимо степов для следующей ступеньки, сколько дней осталось до продления членства, краткую информацию о своей структуре (потомках в своей ветке бинара) и др.

Разработка ПО для MLM-компании: сводка о партнере

Более подробную информацию можно посмотреть в разделе «Статистика». Тут все: и информация о карьере, и о состоянии денежных счетов, и статистика по своему бинару, и история начисления баллов и степов.

ПО на заказ: статистика партнера

Если партнера интересует подробная информация о карьере (чего не хватает для следующего ранга, какие подарки его ожидают, какова была история продвижения и др.) - все можно посмотреть в соответствующем разделе:

Создание программного обеспечения для MLM: карьера

В разделе «Деньги» можно посмотреть историю движения денег (между счетами, поступления и выводы) или сделать перевод денег другому партнеру:

Заказное ПО: финансовая информация для партнера

Интересный раздел - «Мой бинар», где можно в графическом режиме посмотреть структуру своего дерева, а также построить путь от одного партнера к другому (чтобы понимать, кто у кого в какой ветке стоит):

Заказная разработка программного обеспечения на заказ для МЛМ: мой бинар

В разделе «Мои заказы» партнер видит всю историю своих покупок:

Разработка ПО для MLM-компании: мои заказы

В разделе «Мой профиль» участник может отредактировать контактную информацию. Редактировать можно не все поля - некоторые (например, ФИО) можно изменить только через администрацию. Это сделано для того, чтобы избежать злоупотреблений.

Кроме того, именно в данном разделе находится функционал загрузки скана договора. Для вывода заработанных средств на счет ИП необходимо обменяться договорами с компанией. Здесь находятся шаблоны договор и возможность подгрузки отсканированных копий. После утверждения их компанией происходит обмен оригиналами по почте. Только после этого администрация устанавливает соответствующий признак у пользователя и ему становится доступен вывод средств на свой счет ИП.

Создание программного обеспечения для MLM: просмотр профиля партнером

Приложение администратора

Для руководства компании было разработано отдельное приложение - «админка». В нем реализован функционал для управления системой.

Прежде всего, это просмотр бинара со всеми подробностями и в разных ракурсах:

Заказная разработка программного обеспечения на заказ для МЛМ: просмотр бинарного дерева в администраторском приложении
Программное обеспечение: админка - просмотр бинара

Доступна статистика в разрезах, интересующих именно руководство компании:

Разработка ПО для MLM-компании: админка - статистика

Изначально номенклатура товаров интернет-магазина импортируется из 1-С. Но информация, специфичная для MLM (баллы, ВЗП и др.) и для интернет-магазина (описание, фотографии и т.п.) - редактируются в админке:

Заказная разработка программного обеспечения на заказ для МЛМ: каталог - список товаров
Создание программного обеспечения для MLM: каталог

Также именно в приложении администратора настраиваются параметры, влияющие на поведение MLM-компоненты системы:

ПО на разработку: Настройки в админке

Как говорилось ранее, некоторые товары интернет-магазина являются обновлениями на устройства, продаваемые компанией. Такие обновления доставляются автоматически: когда пользователь покупает обновление, он указывает идентификатор своего устройства, и через интернет происходит загрузка обновления именно на его девайс. Настройка обновлений (комплексов) производится также в админке:

Разработка ПО для MLM-компании: админка и работа с устройствами

Мы рассказали лишь о некоторых возможностях приложения администратора, т.к. полный рассказ получился бы слишком большим.

Взаимодействие с 1-С

В системе реализована очень тесная интеграция с 1-С. Дело в том, что немалая часть бизнес-процессов компании администрируется именно через 1-С. Переносить этот функционал в разрабатываемую систему было слишком дорого.

Так, например, номенклатура товаров первично ведется именно в 1-С. Там же задаются цены. Поэтому эта информация импортируется из 1-С в систему, а уже в самой системе администратор дополняет товары нужной для сайта информацией: описанием, фотографиями, начислением баллов и др.

Ключевой процесс - обработка заказов интернет-магазина (получение оплаты, отгрузка, доставка и т.п.). Изначально заказ появляется в интернет-магазине. После подтверждения он выгружается в 1-С и дальнейшая обработка ведется именно там. Однако система постоянно запрашивает статус заказа у 1-С, чтобы отображать его пользователю в личном кабинете. Также эта информация используется для определения момента начисления баллов и ВЗП.

Взаимодействие реализовано через веб-сервисы.

Импорт данных из предыдущей системы

Поскольку заказчик уже использовал готовую (покупную) систему, нам было необходимо разработать утилиту импорта данных из старой системы в новую (разрабатываемую). Эта задача оказалась очень нетривиальной и была сопряжена с рядом проблем.

Во-первых, в новом варианте системы было предусмотрено больше данных и больше бизнес-процессов. Исходные сведения по ним в старой системе отсутствовали в принципе. Для их формирования у существующих участников бинара пришлось реализовывать достаточно сложную бизнес-логику, вычисляющую недостающие данные по имеющимся (истории и т.п.). Например, в старой системе не было деления счетов на основной и бонусный. Это потребовало реализации алгоритма, просматривающего историю заказов каждого из участников и распределяющего деньги по нужным счетам.

Во-вторых, утилита банально не успевала отработать перенос данных за ночь (слишком большой объем данных и медленная скорость их отдачи из старой системы). Это потребовало реализации двух режимов импорта: основной импорт и т.н. «доимпорт». В режиме доимпорта вставлялись только новые данные (с момента предыдущего импорта). Это позволило выполнить переход частями (сначала одна часть участников, потом оставшаяся). В целом процесс был завершен за сутки, хотя это и потребовало постоянного дежурства наших программистов.