Morpheus — интернет-магазин постельного белья «для тех, кто не любит заправлять». Продаёт бельё и подарочные сертификаты, доставляет заказы по России и в Казахстан. Товар хранит и отправляет фулфилмент SafeRoute, сайт ведёт сторонняя команда разработчиков, рассылки уходят из Mindbox.
В июне АТОМ взял RetailCRM магазина на сопровождение. Магазин расписал в техническом задании на пять страниц, когда заказ можно отправлять на сборку без менеджера, и АТОМ сделал по этому заданию интеграцию: она проверяет в каждом новом заказе оплату, остатки на складе и комментарий покупателя и собирает отчёт.
Как обрабатывали заказы раньше
Каждый новый заказ открывал менеджер. Он смотрел, есть ли товар на складе SafeRoute, пришла ли оплата, о чём покупатель написал в комментарии и не просил ли связаться с ним перед отправкой. Только после этого заказ уходил на сборку.
Магазин решил перевести эти проверки на автоматику. В задании он расписал и 21 сценарий приёмки: от заказа, оплаченного двумя сертификатами, до случая, когда менеджер меняет статус прямо во время проверки.
Собрали проверку: обычные заказы идут на сборку сами
Интеграция берёт новый заказ с сайта в RetailCRM и проверяет:
- сходятся ли оплаты с итоговой суммой заказа, включая скидки и доставку;
- хватает ли на складе SafeRoute свободного остатка каждой позиции;
- передана ли заявка в SafeRoute и не менялись ли после этого данные получателя и доставки;
- заполнены ли имя, фамилия, почта и телефон, а для курьера ещё город, улица, дом и квартира;
- нет ли в комментарии покупателя слов из словаря;
- стоит ли отметка «Свяжитесь со мной перед отправкой / отгрузкой».
Если всё сошлось, заказ переходит в статус «Готов к комплектации» и подтверждается в SafeRoute. Если нет, он уходит в новый статус «В обработке», и дальше с ним работает менеджер. Пока оплата или подтверждение SafeRoute не пришли, заказ остаётся «Новым», а интеграция проверяет его повторно. Срок ожидания и интервал проверок договорились при настройке, после срока заказ тоже уходит менеджеру.
Правила оплаты магазин расписал под свои способы: онлайн-оплата, «Долями», «Плайт частями», подарочные сертификаты и оплата при получении. Платить при получении можно только курьеру, заказ в пункт выдачи или постамат должен быть оплачен целиком. К одному способу оплаты можно добавить один или два сертификата.
Остатки интеграция сверяет по складу SafeRoute: свободный остаток каждой позиции должен быть не меньше количества в заказе. Если не хватает хотя бы одной позиции, весь заказ уходит менеджеру. Когда на последнюю единицу претендуют два заказа, её получает тот, что пришёл раньше, и одну вещь не отдадут двум заказам сразу. Этот порядок держится и при повторных проверках.
Отдельно в задании расписано, как не мешать менеджеру. Перед сменой статуса интеграция ещё раз смотрит, что заказ всё ещё «Новый» и данные в нём не изменились. Если менеджер успел перевести заказ сам, его статус остаётся. Обработанный заказ интеграция второй раз не трогает, а при технической ошибке не переводит заказ в «Готов к комплектации».
Подключили к проверке словарь из 149 слов и фраз
В комментарии покупатель может попросить то, чего не видно в составе заказа. Поэтому магазин составил словарь: 149 слов и фраз в 16 группах, среди них «Подарки», «Изменение», «Размеры», «Примерка и выкуп», «Счета и документы», «Упаковка и вложения».
Интеграция ищет целые слова и фразы без учёта регистра, буквы «е» и «ё» считает одинаковыми. Смотрит только текст покупателя: если слово из словаря попало в служебную часть комментария, заказ всё равно уходит на сборку.
Любое совпадение со словарём отправляет заказ менеджеру, даже если покупатель написал просьбу с отрицанием. Просит покупатель о чём-то или отказывается, разбирается менеджер.
Вывели менеджеру отчёт по каждому заказу
По каждому заказу интеграция собирает отчёт по разделам задания. Наверху итог: «Готов к комплектации» или «В обработке». Рядом — когда заказ впервые увидели, сколько раз проверили, когда проверяли последний раз и до какого времени ждут данные.
В каждом разделе отчёта видно, какие данные ожидались, что содержится в заказе и прошёл ли он проверку. Если заказ передали менеджеру, отчёт показывает причину. Ниже показаны две страницы отчёта; персональные данные покупателя на скриншотах скрыты.
Проверку запустили недавно, и считать, сколько заказов проходит без менеджера и сколько времени это экономит, пока рано. Все условия взяли из задания Morpheus, так что под правила другого магазина проверку можно собрать так же.
Встроили доставку SafeRoute: пункт и тариф приходят с сайта
Покупатель выбирает на сайте пункт выдачи или постамат СДЭК, 5Post или доставку курьером. Пункт и тариф, которые выбрал покупатель, передаются с сайта прямо в заказ RetailCRM.
Модуль SafeRoute в RetailCRM больше не поддерживается и работает на старом API. Ещё одна сложность — справочники: в DaData, RetailCRM и других базах населённые пункты определяются по-разному. АТОМ разобрался в этих различиях и сопоставил справочники городов по ФИАС — федеральной адресной системе. Команду, которая ведёт сайт, подробно проконсультировали и вместе с ней разобрали логи синхронизации.
Почистили RetailCRM от старых триггеров
В RetailCRM осталось много триггеров от прежних интеграций. Они отправляли данные на внешние серверы и обработчики, и магазин не знал, что с этими данными происходит дальше. Часть триггеров не срабатывала ни разу, часть выдавала ошибки.
АТОМ почистил систему настолько, насколько это было возможно. Заодно проверили, как RetailCRM связана с Mindbox.
Показали команде, как работать в чатах RetailCRM
Команде магазина объяснили, как работать в коммуникаторе RetailCRM: как подключить каналы и как из переписки с покупателем создать заказ.
Что дальше
Магазин вместе со своими подрядчиками делает собственного чат-бота с бонусной системой. АТОМ консультирует команду по программе лояльности и продолжает сопровождать RetailCRM.

