Catapulto подстраивают адреса к требованиям API 20 служб доставки

Задача. На сайте Catapulto люди вводят адреса, сервис отправляет эти адреса службам доставки — по API. У разных служб доставки — разные требования к тому, как присылать адреса в API-запросах. Чтобы подстраиваться к требованиям любого перевозчика, нужно:

  1. Разделять на компоненты адреса, введенные одной строкой.
  2. Находить индексы для введенных адресов.
  3. Определять координаты. 

Решение. Подключили «Подсказки» «Дадаты» ко вводу адресов на сайте. Сервис помогает клиентам вводить адреса быстро и без ошибок, присылает компоненты адресов, индексы и координаты. Из этих элементов Catapulto составляют форматы адресов, которые требуют перевозчики.

Catapulto — агрегатор курьерских служб

Обычно организации заключают договор с одной курьерской службой и все отправляют по ее тарифам. Но иногда перевозчики-конкуренты предлагают более низкие тарифы.

  • Условный пример. Документы из Москвы в Краснодар дешевле отправить через Pony Express, а в Казань — через «СДЭК». Это обусловлено логистическими цепочками служб доставки, наличием автопарка, надбавками к себестоимости перевозки.
  • Другой пример. Pony Express не доставляют заказы в Горноалтайск. Заказ перенаправят «Почте России», но доставка обойдется дороже, чем напрямую через почту.

Чтобы сэкономить на перевозках, нужно вручную собирать и сравнивать цены курьерских служб. И так каждый раз, когда нужно отправить документы или товар. К тому же придется заключить 20 договоров с 20 разными перевозчиками — иначе тарифы не узнать. 

Catapulto же мигом соберет тарифы курьерских служб в единую таблицу. Останется выбрать самый дешевый или быстрый вариант:

Заодно сервис сформирует заявку на вызов курьера, создаст накладные, отследит трекинг, разберется с задержками. В результате сэкономит клиентам время и деньги.

У разных служб доставки — разные требования к адресам в API-запросах

Catapulto работает как посредник между клиентами и курьерскими службами.

Клиент указывает, какой груз хочет доставить, откуда и куда. Catapulto же узнает тарифы перевозчиков и передает заказ той курьерской службе, которую человек выберет.

Со службами доставки Catapulto общается по API — автоматически. Отправляет запросы и получает ответы. Вот как все работает:

На сайте Catapulto клиент указывает параметры груза, адреса получателя и отправителя.

Catapulto отправляет курьерским службам запрос на расчет тарифа. В этот запрос упаковывает введенные клиентом сведения. Службы доставки отвечают на запрос — присылают цены и сроки.

Выбранному перевозчику Catapulto отправляет запрос на создание заказа. Туда снова упаковывает адреса и параметры груза, которые ввел человек. Служба доставки обрабатывает заявку и присылает ответ: мол, принято. Затем выполняет заказ.

Слева запрос СДЭКу: «Нужно доставить груз 10×10×10, весом 4 кг из Москвы в Краснодар. Покажи тарифы». Справа ответ: «От двери до двери — 2 дня, 1135 ₽; со склада на склад — 2 дня, 960 ₽»

Сложность в том, что Catapulto одновременно общается с 20 разными службами доставки. А у них — разные требования к тому, как присылать адреса в API-запросах.

СДЭК требует индексы для расчета тарифов.

Pony Express рассчитает тарифы и примет заказ, если адреса пришлют в двух частях: «Город» и «Улица, дом».

«Достависта» хочет адреса одной строкой в формате «Город, улица, дом».

«Яндекс Доставка» пришлет цены и примет заказ, только если вместе с адресом отправить координаты.

Если не подстроиться под требования того или иного перевозчика, он не пришлет тарифы и не примет заказ. Или же примет, но не сможет обработать автоматически — отправит на ручную обработку. Тогда доставка затянется, клиент будет волноваться, Catapulto придется разбираться с задержкой.

Задача — подстраивать адреса к требованиям API 20 служб доставки. Для этого нужно делить адреса на компоненты, определять индексы и координаты

Задача Catapulto — подстраивать адреса, которые вводит клиент, под требования 20 перевозчиков. 

Это возможно, если для каждого введенного адреса знать:

  • компоненты — город, улицу, дом по отдельности;
  • индекс;
  • координаты.

Из перечисленных элементов можно составить такой формат адреса, который подойдет любой службе доставки:

Задачу можно разделить на три части:

1. Нужно автоматически разбивать адреса на компоненты. На сайте Catapulto люди вводят адреса в одном из двух форматов: в отдельных полях или одной строкой. Адреса строкой нужно разбить на части.

Клиент сразу ввел адрес по частям. Ничего делать не нужно
Адрес ввели строкой. Нужно разбить его на части

2. Нужно автоматически определять индексы для адресов. Индексы часто нужны, чтобы получить тарифы курьерских служб. Поэтому индекс в Catapulto — одно из обязательных адресных полей. Но порой клиенты не знают индексов, поэтому вводят их как попало, а это опасно.

Скажем, человек хочет доставить документы из Санкт-Петербурга в Краснодар. Это, например, стоит 800 ₽.

В поле «Индекс» клиент вводит «111111» — несуществующий индекс. На API-запрос с таким индексом перевозчик пришлет цену 400 ₽. Клиент закажет доставку, а потом получит счет на 800 ₽: перевозчик получит заказ, пересчитает стоимость и увеличит цену.

Или же клиент ввел «125009» — это существующий Московский индекс. Перевозчик пришлет тариф на доставку из Москвы, а не из Питера — 600 ₽. Клиент закажет доставку и вновь получит счет на бо́льшую сумму.

Надежнее определять индексы автоматически — за человека.

3. Нужно автоматически определять координаты адресов. В Catapulto люди не вводят координаты — никто не знает широту и долготу адресов. При этом координаты обязательны, чтобы работать с «Яндекс Доставкой». Без них не рассчитать тариф и не заказать перевозку.

Решение. «Подсказки» «Дадаты» присылают индексы, координаты и компоненты введенных адресов

К формам ввода адресов на сайте Catapulto подключили сервис «Подсказки» «Дадаты». На внедрение потратили один день.

«Подсказки» помогают ввести адрес и по частям, и одной строкой

Основная функция «Подсказок» — сделать так, чтобы люди вводили адреса быстро и без ошибок. В отдельной статье мы рассказали, почему это важно для Catapulto. Тут расскажем о другой функции сервиса — обогащении данных.

Стоит клиенту ввести первые буквы города или улицы, как сервис предложит варианты адресов. Человеку остается выбрать подходящий. 

Для выбранного адреса «Подсказки» присылают вагон полезной информации. В частности, компоненты, индекс, широту и долготу. Это как раз нужные Catapulto элементы.

Человек вводит адрес строкой, «Дадата» делит его на компоненты, Catapulto расставляет компоненты по полям формы

«Подсказки» работают по API:

  • человек пишет первые буквы адреса;
  • Catapulto отправляет эти буквы запросом «Дадате». Мол, пришли нам подходящие варианты;
  • «Дадата» присылает ответ — список подходящих адресов с дополнительными сведениями о каждом;
  • человек выбирает адрес;
  • специальный скрипт достает из ответа «Дадаты» компоненты выбранного адреса, индекс и координаты. И расставляет по нужным полям формы.

Дальше дело техники — собрать адрес по требованиям курьерских служб.

«Дадата» помогла ввести адрес, прислала его компоненты, индекс и координаты — по API

Как подключить «Подсказки»

«Подсказки» можно подключить: 

Просто покажите инструкции программисту.

«Подсказки» входят в подписку на «Дадату» и работают на всех тарифах. Тарифы отличаются полнотой данных, которые присылает сервис. И лимитом на обращения к «Подсказкам».

  • Например, ребята из Catapulto, используют «Подсказки» на «Расширенном» тарифе. Он стоит 28 000 ₽ в год.
  • Нужные Catapulto компоненты адресов, индексы и координаты «Подсказки» присылают на любом тарифе. Но «Расширенный» нужен, чтобы «Подсказки» справились с объемом адресов, которые вводят клиенты — ≈ 1000 в день.

Чтобы протестировать «Подсказки» — зарегистрируйтесь в «Дадате». После регистрации включится бесплатный тариф с лимитом в 10 000 запросов. Это ≈ 300 адресов в день.

Не пропускайте важные материалы

Подпишитесь в соцсетях

Публикуем ссылку на статью, как только она выходит. А еще даём знать о новых фичах и срочных новостях. Например, напишем, если налоговая потеряет данные по организациям в свежей выгрузке или API «Дадаты» перестанет отвечать.

Подпишитесь на рассылку

Раз в месяц присылаем на почту новые статьи из блога и обновления сервисов «Дадаты». Не тревожим без повода и не шлем спам.