Как оптимизация интервалов доставки помогла снизить нагрузку на логистику
Расскажем, как оптимизация интервалов доставки при оформлении заказа на сайте и в мобильных приложениях помогла нашему клиенту ускорить процесс доставки заказов
Задача:
Сократить количество пиковых часов на доставке утром и вечером.
Причина:
Загруженность службы логистики — один из факторов, который влияет на скорость доставки. Поскольку пользователи сейчас отдают предпочтение тому, кто окажется быстрее, заказчик рисковал потерять клиентов.
Неблагоприятные погодные условия, технические сбои, неверное планирование маршрута, загруженность службы логистики — все это может влиять на скорость доставки. Согласно статистике одного крупного сервиса доставки еды, двое из трех пользователей отдадут предпочтение тому, кто окажется быстрее.
В этом кейсе расскажем, как оптимизация интервалов доставки при оформлении заказа на сайте и в мобильных приложениях помогла заказчику SimbirSoft ускорить доставку. Решение может оказаться полезным для компаний, у которых есть запрос на снижение нагрузки в службе доставки и связанных с ней рисков доставки, а также на улучшение пользовательского опыта.
С какой задачей пришел заказчик
К SimbirSoft обратился крупный поставщик продуктов питания.
Задача — сократить количество пиковых часов на доставке утром и вечером. Заказчик искал решение, которое поможет сместить некоторый объем заказов на дневное время, контролировать нагрузку на службу доставки.
Какое решение предложили
Во многих компаниях доставка осуществляется в фиксированные интервалы. С таким подходом не всегда получается решать проблему с высокой нагрузкой.
Клиент использовал механизм закрытия интервалов по мощности, т.е. при достижении лимита количества заказов данный интервал становился недоступным. На проекте устоялись двухчасовые интервалы, в связи с чем переход на меньшие интервалы был невозможен.
Мы предложили разработать более гибкий формат выбора времени доставки, который снизит нагрузку и при этом будет учитывать требование по текущей длине интервала. Обсудили с заказчиком идею на основе настраиваемого шага, когда пользователи могут самостоятельно выбирать интервалы с небольшим сдвигом. Благодаря такому решению расчет нагрузки можно вести на меньших отрезках времени. Также мы предложили дать пользователям возможность выбора начала и конца интервала.
Такое решение удовлетворяло запросам клиента:
- Закрытие небольших отрезков в утреннее и вечернее время будет побуждать пользователей смещать интервал в сторону дневных часов
- Настраиваемая длина шага позволит более точно определять и контролировать нагрузку на разных участках временной шкалы
- Корректировка мощностей даст системе большую гибкость
По итогам аудита мы пришли к выводу, что большой пласт работ лежит на стороне бэкенда. Это было связано с тем, что код большинства модулей был завязан на старом решении. Также необходимо было учесть особенности мобильных приложений, которые предполагают поддержку старых версий. Таким образом, нам предстояло сформировать последовательный подход к реализации предложенной функциональности.
Как решали задачу
В качестве пользовательского интерфейса (UI) решили использовать таймлайн — горизонтальную шкалу с делениями, равными текущему значению шага. Интервал доставки в нем задается двумя ползунками, минимальное расстояние между которыми равно двум часам. В случае попадания в интервал закрытых отрезков диапазон увеличивался на недостающее количество открытых — с приоритетом на утренние часы.
Мы спроектировали будущий сервис интервалов, объединив в нем работу со временем и датой. При этом учли правила доставки по разным регионам. В отдельный сервис вынесли механизм расчета количества заказов по каждому отрезку времени в рамках шага на каждый день в пределах возможных дат доставок.
Также мы добавили метод конвертирования старого формата в новый для совместимости API со старыми версиями мобильных приложений. Это позволило постепенно выпускать новые фичи по интервалам сначала на сайте, а позже и в приложениях без возможных ошибок в их старых версиях.
К каким результатам пришли
Оптимизация интервалов доставки способствовала решению ряда важных задач. Ключевой из них является переход на сбалансированное распределение нагрузки, благодаря которому удалось сократить большое количество утренних и вечерних заказов со смещением на дневное время.
В результате детализация нагрузки дала заказчику возможность подкорректировать мощности интервалов и оптимизировать работу разных модулей сервиса: логистики, техподдержки и др.
Как показывает практика, данная проблема актуальна и для сервисов, не связанных с доставкой. Решение можно использовать в разных сферах, например, для расчета времени приготовления блюд в ресторанах или организации почасовой аренды средств передвижения. Подобные варианты оптимизации могут значительно увеличить эффективность и прибыль бизнеса.
Оптимизация интервалов обеспечила переход на сбалансированное распределение нагрузки. Заказчику удалось сократить большое количество утренних и вечерних заказов со смещением на дневное время.