Интернет-магазин бытовой химии различает города-тезки при доставке. И сохраняет по 20 заказов в месяц
Представьте, в интернет-магазин пришли покупатели из двух городов с одинаковым названием. Задача — автоматически отличить города-тезки друг от друга и определить, в каком из них работает курьерская доставка. В этой статье расскажем, как проблему решили разработчики крупной розничной сети.
- Розничная сеть продает товары по уходу за собой и домом
- Интернет-магазин определяет города покупателей, чтобы рассчитывать цену и способы доставки
- Интернет-магазин путал города с одинаковыми названиями, поэтому предлагал неактуальные способы доставки
- Благодаря «Дадате» интернет-магазин различает города-тезки и сохраняет около 20 заказов в месяц
- API-методы «Дадаты», чтобы без ошибок определять местоположение покупателей и быстрее получать заказы
Интернет-магазин определяет города покупателей, чтобы рассчитывать цену и способы доставки
Стоит открыть интернет-магазин, как он определит город посетителя. Это важно, чтобы скорректировать ассортимент, показать актуальные цены товаров, а также способы и стоимость доставки.
Человека лишний раз не тревожат вопросами и вычисляют местоположение автоматически по IP-адресу или координатам. Вот как все происходит:
- Магазин определяет координаты человека. Напрямую с помощью инструментов Google и Apple, если покупатель предоставил доступ к геолокации. Или через IP-адрес.
- Ищет координаты на карте. Ее заранее разделили на квадраты и присвоили каждому название города, который расположен внутри. Например, в квадрате с названием «Краснодар» находится город Краснодар.
- Считает городом пользователя название квадрата на карте, в который попадают координаты.
Интернет-магазин путал города с одинаковыми названиями, поэтому предлагал неактуальные способы доставки
Определив населенный пункт, интернет-магазин сверяет его с городами присутствия — теми, где работает розничная сеть. От результата сверки зависят способы доставки. В населенный пункт из перечня заказы доставят курьером, в остальные — только Почтой России.
Раньше города покупателей сверяли с городами присутствия по названию. Магазин искал, например, текст «Павловск» в списке населенных пунктов, будто слово в Excel ищут через Ctrl+F. Дальше два варианта:
- если искомый текст совпадает до буквы с вариантом в перечне, значит, розничная сеть работает в городе покупателя. Тогда можно доставлять товары курьером;
- если не совпадает — курьерская доставка недоступна.
Процесс ломается, если у нескольких городов названия совпадают. Магазин видел одинаковые наименования и не понимал, что покупатели живут в разных населенных пунктах. Поэтому предлагал доставить заказ курьером в города, куда товары привозят только Почтой России.
Скажем, сайт определял, что человек живет в Павловске. Название «Павловск» есть в списке городов присутствия розничной сети, поэтому покупателю предлагали курьерскую доставку.
Но магазин не подозревал, что в России аж три Павловска: город в составе Санкт-Петербурга, город в Воронежской области и село в Алтайском крае. В первые два курьер приедет, а в Алтайский край — нет.
Из-за путаницы с названиями городов интернет-магазин терял заказы и деньги. Издержки зависели не только от города, но и от улицы, на которой жил человек.
Представьте, житель Павловска в Алтайском крае заказывал доставку на улицу Полушкина. Павловск есть в списке присутствия розничной сети, поэтому магазин принимал заказ и передавал курьерам. Однако те замечали: в том Павловске, где работает доставка, улицы Полушкина нет. Тогда менеджеры магазина звонили клиенту, объясняли ситуацию, меняли способ доставки и просили доплату. Или отменяли заказ и возвращали деньги. Раздраженный человек вряд ли еще раз покупал в магазине.
Хуже, если курьерскую доставку заказали, например, на улицу Березовую. Такая есть и в Павловске Алтайского края, и в Павловске Воронежской области. Курьер, ничего не подозревая, привозил товары, а его встречали люди, которые ничего не заказывали. Настоящий же покупатель ждал на улице Березовой в другом городе. В результате магазин оплачивал еще и «холостые» разъезды курьеров.
Благодаря «Дадате» интернет-магазин различает города-тезки и сохраняет около 20 заказов в месяц
Разработчики интернет-магазина придумали, как избежать путаницы в городах: можно сверять населенные пункты по КЛАДР-коду. Это один из уникальных идентификаторов города в адресных справочниках налоговой. У каждого населенного пункта свой код: даже если названия совпадут до буквы, коды покажут, что города разные.
Например, у Павловска в составе Санкт-Петербурга КЛАДР-код — 7800000700000; у Павловска в Воронежской области — 3602100100000; у Павловска в Алтайском крае — 2203200000100.
Для сверки по КЛАДР-коду нужно решить две задачи:
1. Вместе с названием города покупателя определять КЛАДР-код. Название города определяли по названию квадрата на карте, в который попадали координаты пользователя. Чтобы получать не только наименование населенного пункта, но и КЛАДР-код, нужно присвоить квадратам идентификаторы. Это можно сделать вручную, но квадратов — сотни, уйдут часы, чтобы найти и прописать код каждому.
2. Проставить КЛАДР-коды городам в списке присутствия розничной сети. Чтобы было, с чем сравнивать код города покупателя.
Разработчики автоматически проставили КЛАДР-коды квадратам на карте и городам в списке присутствия. Помог справочник «Города России» «Дадаты» — перечень городов, дополненный полезными сведениями: КЛАДР- и ФИАС-кодами, ОКАТО, ОКТМО, часовым поясом и координатами.
Заодно список «Дадаты» автоматически объединили с внутренними перечнями: списком городов присутствия розничной сети и списком квадратов на карте с названиями городов. Это пять минут работы с SQL. Так у каждого населенного пункта в перечнях появился уникальный КЛАДР-код.
Теперь магазин различает города с одинаковыми названиями и понимает, в какой из них доедет курьер. Поэтому предлагает правильные способы доставки и экономит деньги.
Магазин определяет, что человек живет в Павловске с КЛАДР-кодом 2203200000100. Такого КЛАДР-кода нет в списке городов присутствия, а значит, розничная сеть там не работает. Человеку предлагают доставку почтой — как и положено.
API-методы «Дадаты», чтобы без ошибок определять местоположение покупателей и быстрее получать заказы
Город по IP. Вернет детальную информацию о населенном пункте: название, индекс, регион, КЛАДР-, ФИАС- и ГАР-коды. Пригодится, чтобы автоматически актуализировать ассортимент и считать цену доставки.
Обратное геокодирование. Определит город пользователя по широте и долготе — это точнее, чем вычислять населенный пункт по IP. Сработает, только если человек предоставит доступ к геокоординатам своего смартфона или компьютера.
Подсказки по адресам. Исправляют и дополняют адреса, которые клиенты вводят при оформлении заказа. Так контакты сразу попадают в базу без ошибок и в едином формате. Не придется перепроверять адреса — можно сразу передавать их службе доставки. А еще с «Подсказками» люди вводят данные на 300% быстрее, поэтому заполняют формы без раздражения и реже бросают.