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

в 12:59, , рубрики: agile development, ecommerce, ecommerce solutions, highload, highload systems, legacy, Анализ и проектирование систем, Разработка под e-commerce

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.

Автор: AlexanderByndyu

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js