Новый виток вводимых ограничений ведет к кратному росту числа клиентов в онлайн-ритейле. Для того, чтобы справиться с растущими объемами, компании e-commerce сегмента массово внедряют различные проекты по автоматизации привычных процессов. Одним из таких все чаще становится внедрение Transportation Management system (TMS) — это общее название для технологий, которые позволяют автоматизировать управление таксопарком компании и дают возможность компании масштабироваться за счёт оптимизации грузоперевозок.
Подобную систему можно как приобрести у внешних разработчиков, так и создать самим. Сергей Оленцов, product owner TMS «Утконос Онлайн», рассказал об опыте компании в разработке собственной TMS-системы и о том, как ее можно дополнить с помощью внешних решений для усиления бизнес-процессов компании.
Что такое TMS и какие задачи она решает?
TMS — это система, которая с помощью предиктивных алгоритмов рассчитывает загрузку машин под конкретные интервалы и равномерно распределяет машины по маршрутам под каждый из интервалов.
TMS анализирует заказ с точки зрения веса, состава, объемов, размеров, географии доставки. Помимо этого, система изучает информацию об уже созданных логистических маршрутах и ситуации на дорогах — отталкиваясь от этого, она подбирает покупателю подходящие временные интервалы доставки.
С помощью TMS компании могут:
- сократить время обработки заказа;
- оптимизировать логистику;
- обеспечить равномерную загрузку машин;
- увеличить точность попадания в интервал;
- сократить объем ручных операций в три раза;
- избавиться от пиковых интервалов и сделать равномерную нагрузку в течение суток.
Из чего состоит функционал TMS
Если раскладывать по полочкам, то функционал TMS состоит из следующих этапов:
- 1. Обработка входящего заказа
Покупатель выбирает товары и адрес доставки, сайт запрашивает у TMS интервалы.
- 2. Определение параметров заказа
TMS определяет сегмент доставки, зоны и кластер. Затем сервис раскладки (Layout Service, LS) заказов по коробам завершает работу и отдает полученный результат в TMS.
- 3. Оценка доступных ресурсов
TMS выбирает машины из списка доступных и пересчитывает их маршруты. TMS умеет работать с любым типом, маркой и моделью транспортного средства.
- 4. Выбор подходящего интервала заказа
TMS передает сайту доступные интервалы, клиент выбирает нужный. Затем выбранный интервал возвращается в TMS.
- 5. Размещение заказа
Оценка ресурсов в выбранном клиентом интервале, оптимизация по пробегу, фиксируется новая точка в маршруте.
Как повысить эффективность TMS с помощью внешних решений
Даже самый продвинутый ритейлер может потратить много ресурсов и инвестиций на собственные IT-разработки, но все равно не достигнуть идеального результата. Понимая это, с самого начала мы разрабатывали TMS с учетом того, чтобы иметь возможность гибко синхронизировать ее работу с внешними инструментами.
Одни из таких решений стали технологии нашего партнера «Яндекс.Маршрутизации». С помощью алгоритмов компании мы усилили нашу разработку в части процесса планирования маршрутов. Сейчас этот процесс выглядит следующим образом.
В течение дня TMS набирает данные о заказах, а в момент, когда заполненность автомобилей достигает отметки выше 70%, либо по триггеру (примерно раз в час) все принятые заказы отправляются на внешний сервис в «Яндекс.Маршрутизацию».
Там происходит процессинг полученных данных и оптимизация ресурсов за счет наложения более жестких условий, вследствие чего получается точнее рассчитать заполненность машины и оптимизировать маршрут для каждой конкретной машины.
После этого мы отправляем в систему новые, более плотные значения маршрутов.
За счет регулярной маршрутизации происходит уплотнение и высвобождение около 10-20 % ресурсов, что позволяет нам предлагать клиентам доставку с возможностью выбора двухчасового временного интервала для получения заказа.
Объясним на примере: наш внутренний алгоритм TMS предлагает отправить на маршруты 20 водителей. Система посчитала их автомобили полностью укомплектованными, поэтому на внешний сервер «Яндекса» уходит информация о 20 машинах. В результате второго этапа обработки это число сокращается до 17-18 автомобилей. Таким образом мы получаем еще 2-3 машины, доступных для заполнения.
Конечный цикл выглядит следующим образом: собранные заказы собираются и распределяются исходя из адреса и габаритов. После этого TMS отправляет данные на внешнюю платформу, где высвобождается часть машин, которые возвращаются в начальную точку цикла, становясь доступными для клиентов.
Качественные изменения
Как улучшились показатели, насколько оптимизировались процессы, где удалось сэкономить и перераспределить ресурсы
С помощью TMS мы исключили возможность предложения уже заполненного интервала покупателю, который собирается оформить заказ.
В зависимости от географии и габаритов заказа один и тот же интервал может быть доступен одновременно, например, двум жителям Химок, один из которых заказал на неделю вперед, а другой просто купил недостающие продукты, но этот же временной интервал не будет доступен, например, жителям Гольяново и Хамовников с аналогичными заказами — потому что вместе их везти в таком случае логистически нецелесообразно.
Загруженность машин также влияет на доступность временных слотов. Например, маленький заказ с докупкой может поместиться в машину, которая заполнена на 96%, но в нее точно не поместится большой заказ.
Основная константа — интервал доставки, который мы подтвердили клиенту, а внутри самого маршрута порядок адресов может меняться в зависимости от, например, трафика на дорогах.
Разработка TMS
Наша команда разработки состояла из product owner’a, трех backend-разработчиков, одного frontend-разработчика, аналитика и тестировщика.
Сам подход к разработке TMS выглядел так:
- 1. Формулируем цель проекта
Наша основная цель звучала так: разработать максимально конфигурируемое и настраиваемое решение, которое можно трансформировать под меняющиеся бизнес-процессы.
- 2. Выбираем язык разработки
Изначально TMS писали на Java, но впоследствии было принято решение переписать все на Python, более быстрый в освоении и более удобный для работы с массивами данных, а специалистов, работающих с ним, намного больше.
- 3. Прописываем архитектуру системы
Важно заранее понимать, как блоки, из которых состоит система, будут взаимодействовать между собой, чтобы обеспечить их бесперебойное взаимодействие.
- 4. Пишем код
Прописываем взаимодействие всех блоков системы и складываем их в единое целое.
- 5. Тестируем
Обкатываем систему сначала на небольших участках, постепенно внедряя в жизнь склада.
Сейчас полученное решение позволяет решать более сложные задачи через простую настройку конфигурации и с минимальным объемом доработок.
Кстати, еще одно преимущество Python заключается в том, что он позволил не строить административный интерфейс с нуля, а подключить готовый фреймворк — это позволило нам не тратить много времени на frontend-разработку в этом направлении.
Что важно помнить при разработке TMS
- Собственные разработки могут значительно улучшить бизнес-процессы и способствовать масштабированию бизнеса, а для достижения максимального результата можно задействовать подходящие для вас внешние разработки;
- Предварительный анализ бизнес-процессов и выявление их слабых сторон поможет выяснить, какие процессы требуют усовершенствования;
- Прежде чем переходить непосредственно к написанию кода IT-решения, продумайте основные блоки, из которых будет состоять автоматизируемая часть ваших процессов. Не забудьте про гибкость и адаптивность, которая поможет в синхронизации со сторонними решениями.
Фото на обложке: unsplash.com
Нашли опечатку? Выделите текст и нажмите Ctrl + Enter
Материалы по теме
-
Пройти курс «Как самозанятому стать ИП»
- 1 В России каждый четвертый заказ готовой еды доставляется с задержкой
- 2 Wildberries добавила оплату таможенных пошлин при заказе зарубежных товаров
- 3 «Купер» запустил доставку посылок между пользователями
- 4 Amazon приостанавливает доставку дронами после аварий на тестах