image
Инфографика в посте сделана на R по реальным данным из Тарификатора.

Вы сталкиваетесь с тарификацией доставки, когда делаете заказ в интернет-магазине. Тарификатор — IT-система, которая говорит каким способом товар доставят, на какие посылки разобьется корзина, сколько стоит доставка и когда привезут заказ. Тарификатор собирает информацию со склада и служб доставки, перерабатывает и выдает результаты покупателям интернет-магазина на сайте.

Цена за доставку товара для покупателя интернет-магазина редко совпадает с ценой, которую транспортная компания возьмет с самого магазина. Захотели вы привезти книги с помощью DHL в Новосибирск. OZON.ru выставит вам конкурентную цену за доставку — 500 руб. При этом DHL за эту доставку выставит OZON.ru счет на 1000 руб. Это кажется странным, но такова реальность, которую диктует рынок.

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

Проблемы по ту сторону тарификации


У OZON.ru и раньше был Тарификатор, но он не отвечал требованиям рынка. Одно из ограничений — тарификация только по физическому весу. Телевизор тяжелее лопаты? Значит доставка телевизора дороже. Но транспортные компании выставляют счет не только за физический вес, но и по объемному весу. Подушка или грабли — легкие, но в упаковке объемные. Транспортная компания посчитает физический вес и объемный вес, а оплату за доставку возьмет по максимальному.

Как это влияет на повседневную работу? Расскажу вам историю из жизни. Дело было с доставкой на Дальний Восток. Доставлять туда в принципе дорого, поэтому ошибаться с тарификацией накладно. Покупатель заказал лопату, которая весит 2 кг. OZON.ru выставил покупателю счет за доставку двух килограмм, т.е. счет по физическому весу. К сожалению, в упаковке лопата занимает много места, поэтому транспортная компания выставила счет за объемный вес, который составил 40 кг. Разницу пришлось платить из кармана компании.

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

Службе поддержки пользователей тоже было несладко. Представьте ситуацию, звонит недовольный покупатель и говорит: “Я заказал у вас товар неделю назад. Только сейчас понял, что доставка обошлась дороже, чем обычно. Почему мне насчитали такую большую сумму?” Искать информацию для ответа на этот вопрос было негде. Невозможно мысленно угадать состояние тарифа неделю назад в момент заказа, как повлияли маркетинговые акции и другие коэффициенты. Поэтому служба поддержки тратила недели на разбор подобной ситуации.

Амбициозные планы


OZON.ru задумал изменить ситуацию и запустил создание нового Тарификатора. Для новой системы выделили две ключевые цели и ряд задач.

Первая цель — в десятки раз ускорить процесс настройки условий доставки для покупателей. Раньше настройка перевозчика с доставкой для 100 городов России занимала месяц, сейчас это вопрос нескольких дней.

Вторая цель — выдерживать нагрузку в 1 000 000 расчетов тарифов в час со средним временем отклика менее секунды. Особое внимание высоким нагрузкам уделялось, так как Тарификатор обслуживает процесс покупки товара, выдает данные для страницы деталей товара, используется на главной странице для отображения способов доставки и еще в десятке других сервисов. Во время Черной пятницы или других распродаж Тарификатор становился “бутылочным горлышком” производительности в цепочке продажи, и это негативно влияло на прибыль.

Как подступиться к решению?


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

  1. Устоявшееся видение процесса настройки тарифов внутри OZON.ru. Сложно взглянуть на задачу по-новому, когда годами видишь текущее решение и учишься с ним работать.

  2. Устоявшиеся отношения внутри команды и между подразделениями. Люди обрастают отношениями и историей, а это влияет на инертность при создании новых IT-продуктов.

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

Процесс создания нового Тарификатора шел по шагам, который я подробно описывал в статье Пять самых важных составляющих процесса выпуска проектов и рассказывал на AgileDays 2016 в Москве.

Новые подходы к решению старой задачи


Мы смотрели на старый Тарификатор и погружались в проблемы с интерфейсом. Стояла задача взглянуть по-новому на этот инструмент и понять как правильно организовать новый Тарификатор.

Мы видели два пути для автоматизации рутинной работы:

  1. Вместо копирования настроек тарификации вручную в каждый ПВЗ можно копировать настройки автоматически.

  2. Если меняются условия доставки в одном месте, автоматически изменяются настройки у связанных тарифов.

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

image

Выводы и впечатления Юрия Павленко, руководителя проекта в OZON.ru о новом решении:
Тарификатор стал легко масштабируемым продуктом с точки зрения бизнеса. Если мы захотим ввести тарификацию за подъем на этаж, то сделаем это за пару недель. Т.е идеи легко «вкручиваются» в интерфейс и логику нового Тарификатора. Для покупателя это означает, что мы предлагаем все более усовершенствованный, современный сервис и новые услуги.

Покупатели уже оценили


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

  1. Повысилась точность и полнота информации о способах доставки, а также об условиях и обещанных сроках доставки. Новый Тарификатор является единым источником достоверных данных о доставке, что позволяет избежать противоречивых обещаний в разных разделах сайта. Исчезли ситуации, когда не указан график работы, нет геоокоординат, нет адреса для ПВЗ, не указаны или указаны неправильные сроки хранения.
  2. Прозрачность тарифов. Клиенту и сотрудникам колл-центра не приходится искать ответ на вопрос: «Почему так посчиталось?» Теперь Тарификатор показывает «раскладку» по каждому из посчитанных тарифов.
  3. Появилась возможность быстро настраивать новые услуги по доставке и улучшать существующие. Как пример, в апреле были внедрены новые трехчасовые интервалы курьерской доставки по Москве, а в мае была запущена курьерская доставка в день заказа по Москве. С апреля, после запуска новых складов в Екатеринбурге и Казани, клиенты получают достоверную информацию о сроках и тарифах доставки в зависимости от склада комплектации заказа.
  4. Не «тормозит» расчет стоимости доставки при большом количестве посетителей сайта. Благодаря масштабируемой архитектуре Тарифкатора стало возможным показывать актуальную информацию об условиях доставки не только в процессе оформления заказа, но и на других посещаемых страницах (карточка товара, шапка сайта и т.д.).


image

Чему мы научились


Советы по результатам работы над Тарификатором:

  1. Процесс с формулированием целей и стратегии достижения объединяет людей, дает им единый вектор.
  2. Используйте Impact Mapping, мотивируйте людей на достижение бизнес-целей, а не на реализацию списка задач.
  3. Полное перепроектирование и приглашение внешней команды помогает взглянуть по новому на старые проблемы. Для это подходят инструменты Customer Journey Mapping и User Story Mapping.
  4. Интеграция новых и старых систем идет проще, если есть координатор и общие для всех измеримые цели.
  5. Эксперты от бизнеса должны стать частью команды создания IT-продукта. Причем сами эксперты, а не их заместители.

В статье намеренно опущено много технических деталей. Буду рад ответить на вопросы в комментариях или по почте, если ответы не будут нарушать NDA.
Поделиться с друзьями
-->

Комментарии (16)


  1. PolinaRuRu
    13.09.2016 18:42
    +2

    Так новая система учитывает габариты товаров? Проблему задали, а решение не понятно.
    По идее должны считать объемный и физический вес и дальше давать наибольший ценник.
    Обычно габариты самое проблемное место в складской и транспортной логистике. Процент ошибок там велик.


    1. razon
      13.09.2016 19:33
      +1

      Да, новый Тарификатор учитывает габариты товаров и при расчете объемного веса, и при компоновке товаров в посылки (коробки) с соответствующими алгоритмами поворотов/переворотов товаров :)
      Формулы расчета объемного веса у доставщиков различаются — это тоже учитывается.
      Настроить тарифы можно в том числе и так, чтобы брался максимальный из объемного и физического весов и по нему считалась стоимость доставки.


      1. PolinaRuRu
        14.09.2016 13:58
        +1

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


        1. razon
          15.09.2016 13:54
          +1

          Цена за доставку товара для покупателя интернет-магазина редко совпадает с ценой, которую транспортная компания возьмет с самого магазина

          Т.е. эффективные тарифы, по которым считается стоимость доставки, в общем случае могут быть никак не связаны с тарифами доставщика.Соответственно хранятся и живут они в новом модуле


  1. mantyr
    13.09.2016 23:40

    Сколько сейчас занимает среднее время доставки до Новосибирска? Почему до сих пор нет ни одного склада справа по карте? Курьеры это конечно хорошо но хочется:
    — получать книги быстро
    — получать книги в идеальном состоянии, например в пузырчатой плёнке, а не в бумажных наспех сделанных коробках где и книги мнутся уголкам и кейсы для дисков трескались когда заказывал.


    1. AlexanderByndyu
      14.09.2016 13:04

      Увы, не смогу подсказать. Мы создавали ПО для Тарификации, а не занимались стратегическим бизнес-планированием. Но я уверен, что Озон стремиться сделать доставку быстрой и возможно в будущем откроет новые склады на востоке страны, кто знает :)


    1. AlexanderByndyu
      14.09.2016 13:53

      Я пообщался с коллегами из Озона и вот что они ответили:

      Средний срок доставки в Нск 6 дней, в зависимоти от способа и дня недели. Город Новосибирск в ближайшем будущем будет подключен для комплектации со склада в Екатеринбурге и срок доставки сократится. Что касается упаковки, то мы работаем и над поиском новых материалов для упаковки и новых технологий. Например, если в заказе 1 книга, то сейчас используется такой вид коробки (так называемый гофра короб мэйлер), который сохраняет углы книги от повреждений во время транспортировки


      1. mantyr
        14.09.2016 13:59

        А если не одна? Всегда заказывал по две-три книги и получал в упаковке:
        — вначале гофрокартоном обмотанны
        — сверху упаковочной бумаге
        Больше походило на бандероли.

        Екатеринбург от Новосибирска и уж тем более Дальнего Востока всё таки далеко.


  1. dShell
    14.09.2016 01:29
    +1

    Алгоритм предсказаний заложен?
    Есть ли отдел по «посдматриванию» за Амазоном и их решениями?


    1. AlexanderByndyu
      14.09.2016 02:40
      +1

      Прямо сейчас не отвечу на первый вопрос. Посмотрим как пойдет работа в текущей версии.

      > Есть ли отдел по «посдматриванию» за Амазоном и их решениями?
      :)


      1. dShell
        14.09.2016 03:49
        +1

        Здорово!

        > :)
        Я про открытые источники, конечно же. :)


  1. VanyaKokorev
    14.09.2016 12:08
    +1

    В тему прозрачности доставки. Заказал два товара, один из которых при доставке был разбит. Ozon предложил мне вернуть стоимость разбитого товара, но не стоимость доставки. Таким образом, когда я закажу снова такой же товар, мне нужно будет снова заплатить за доставку, причём на этот раз больше, т.к. чем дешевле заказ, тем дороже доставка. Я считаю это несправедливым, ведь вина за разбитый товар лежит явно на транспортной компании, которая и должна нести риски, связанные с порчей товара при доставке. А получается, что частично их несу лично я. Справедливой была бы замена товара и бесплатная доставка замены


    1. AlexanderByndyu
      14.09.2016 13:06

      Да, согласен, что справедливо была бы замена товара и бесплатная доставка замены. К сожалению, я не могу на это повлиять :) Попробуйте написать в Озон напрямую была бы замена товара и бесплатная доставка замены.


    1. AlexanderByndyu
      14.09.2016 13:40

      Я пообщался с коллегами из Озона и вот что они ответили:

      Средний срок доставки в Нск 6 дней, в зависимоти от способа и дня недели. Город Новосибирск в ближайшем будущем будет подключен для комплектации со склада в Екатеринбурге и срок доставки сократится. Что касается упаковки, то мы работаем и над поиском новых материалов для упаковки и новых технологий. Например, если в заказе 1 книга, то сейчас используется такой вид коробки (так называемый гофра короб мэйлер), который сохраняет углы книги от повреждений во время транспортировки


    1. AlexanderByndyu
      14.09.2016 13:53

      Я пообщался с коллегами из Озона и вот что они ответили:

      В данном случае сложно посчитать сколько бы стоила доставка конктретного товара в заказе, ведь в стоимость доставки формируется из разных составляющих и считается на заказ целиком. Например, если доставка заказа из 10 книг в Хабаровск стоила 1000 руб., и 1 из них оказалось бракованной, то как посчитатать стоиимость доставки этой одной книги? по весу, по габаритам? а если эта книга не проходит порог минимальной стоимости заказа? У некоторых доставщиков есть скидка за объем, в случае с доставкой 10 книг скидка будет, а в случае с 1 книгой уже нет, т.е стоимость доставки будет выше. Это учитывать? В общем решение вопроса с возвратом денег за доставку бракованного товара получается не простым. Несмотря на это мы всегда идем навстречу клиенту — как правило наш CRM дает бесплатную доставку или компенсацию в виде баллов.


      1. VanyaKokorev
        14.09.2016 13:59

        Очень много вопросов вместо очевидного решения — прислать замену бракованной книги за свой счёт и дальше предъявлять убытки партнёру — транспортной компании