Подсказки адреса в интернет-магазине: меньше брака в доставке

Адрес в корзине — самое проблемное поле формы: его набирают вручную, с опечатками и без индекса. Разбираем, что меняет подсказка и как подключить её за вечер.

Адрес — последнее поле, которое покупатель заполняет перед оплатой, и самое дорогое для магазина. Опечатка в улице, забытый индекс или «дом 12, второй подъезд, спросить Сергея» превращаются в звонок оператора, перенос доставки или возврат на склад. Подсказка убирает большую часть этих случаев ещё до того, как заказ уйдёт в обработку.

Что ломается в оформлении заказа без подсказок

  • Опечатки и сокращения. «Ленинградск. пр-т», «ул Ленина д12к3» — человек пишет как привык, а служба доставки ждёт нормализованный адрес.
  • Пустой индекс. Покупатель его не помнит, а Почта России без него не примет отправление.
  • Несуществующие адреса. Дом, которого нет на улице; улица, которой нет в городе. Выяснится это у курьера.
  • Много полей. Отдельно город, улица, дом, корпус, квартира — каждое поле повышает шанс, что корзину бросят.
  • Разный формат в базе. Один и тот же адрес приходит в десяти написаниях, и склеить заказы по адресу невозможно.

Что даёт подсказка в поле адреса

Одно поле вместо шести
Покупатель вводит адрес одной строкой и выбирает из списка. Город, улица, дом и индекс раскладываются по скрытым полям сами.
Индекс без участия покупателя
Приходит в ответе вместе с адресом. Поле с индексом можно вообще не показывать — оно заполнится автоматически.
Подтверждённый объект, а не текст
У выбранного из списка адреса есть код ФИАС. По нему видно, что адрес существует, а не набран руками.
Координаты для расчёта доставки
В ответе приходят широта и долгота — можно сразу считать зону и стоимость доставки, не геокодируя отдельно.

Как подключить: одна строка в шаблоне

Виджет подключается тегом script и сам находит поля по атрибуту — ни сборщика, ни правок в JavaScript магазина не нужно. Это работает в любой CMS, где можно вставить код в шаблон корзины: Битрикс, OpenCart, Tilda, самописный шаблон.

Ключ для браузера — публичный, он и должен быть виден в исходниках страницы. Ограничить его можно списком разрешённых IP в личном кабинете. Секретный ключ в вёрстку магазина не ставят никогда.

Автозаполнение индекса и города

Самый частый сценарий в корзине: одно видимое поле адреса и несколько скрытых, которые уходят в службу доставки. Виджет умеет раскладывать выбранную подсказку по соседним полям сам — присваивать значения в обработчике не нужно. В атрибутах перечисляете, какое поле куда положить: индекс в одно, город в другое, улицу в третье. В заполненные поля отправляются события ввода, поэтому формы на Vue, Angular и React подхватывают значения без дополнительного кода.

Связанные поля: город → улица → дом

Если форма магазина требует раздельных полей — например, город нужен отдельно для расчёта тарифа, — поля связываются между собой. Поле улицы выключено, пока не выбран город, и ищет только внутри него; поле дома — только по выбранной улице. Привязка идёт по коду ФИАС выбранного объекта, а не по названию: одноимённых улиц в стране сотни, а код у каждой свой. Правка города сбрасывает улицу и дом, чтобы в заказ не уехала смесь из двух адресов.

Связка задаётся атрибутом на поле и не требует ни строчки JavaScript. Готовую форму «город → улица → дом» можно посмотреть и скопировать в конфигураторе виджета, вкладка «Связанные поля».

ФИО получателя: одно поле вместо трёх

Адрес — не единственное поле, где покупатель спотыкается. ФИО обычно просят тремя полями, а вводят их одной строкой и в произвольном порядке: «Иванова Мария», «Мария Сергеевна Иванова». Подсказка по ФИО разбирает строку на фамилию, имя и отчество и раскладывает их по нужным полям — теми же атрибутами, что и адрес. Покупатель видит одно поле, служба доставки получает три.

Вместе с частями имени приходит пол. Это не косметика: по нему письмо о заказе обращается «уважаемая Мария», а не «уважаемый(ая)», и корректно склоняются формы в документах. Пол определяется по имени и отчеству, отдельного вопроса покупателю задавать не нужно.

Готовую форму разбора ФИО — одно поле сверху, три заполняемых под ним — можно посмотреть и скопировать в конфигураторе, вкладка «Связанные поля».

Заказ на компанию: реквизиты по названию или ИНН

Если магазин продаёт юрлицам, самая тяжёлая часть оформления — реквизиты для счёта. Просить покупателя переписать ИНН, КПП и ОГРН из своих документов означает получить ошибку в счёте и переделку. Подсказка по организациям ищет компанию по названию, ИНН или ОГРН и подставляет реквизиты сама: покупатель набирает «яндекс маркет», выбирает нужное юрлицо и заполняет счёт одним кликом. Для ИП работает так же.

Что заполняет покупательЧто подставляется автоматически
Название компании или ИННПолное и краткое наименование
ИНН, КПП, ОГРН
Юридический адрес
Статус: действующая или ликвидирована

Статус особенно полезен на входе: заказ от ликвидированной компании видно до отгрузки, а не после. Что именно возвращается по организациям — в статье про проверку контрагента по ИНН.

Почта и телефон: чтобы чек дошёл

Письмо с чеком и трек-номером уходит на адрес, который покупатель набрал вручную, — и «mail.ru» легко превращается в «mai.ru». Подсказка по почте дописывает домен из списка распространённых, а телефон приводится к единому формату уже на стороне магазина. Ошибка в этих полях стоит не дешевле ошибки в адресе: заказ уедет, а покупатель не узнает куда.

Как отличить настоящий адрес от набранного руками

Подсказки не мешают покупателю дописать своё — и это правильно: частный сектор и новостройки не всегда есть в справочнике. Но магазину важно знать разницу. Виджет сообщает, когда человек ушёл из поля, не выбрав вариант из списка: такой заказ можно отправить на ручную проверку, а не в автоматическую отгрузку. У выбранного адреса есть код ФИАС и координаты, у дописанного — только текст.

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

Сколько подсказок показывать

ПараметрЗначениеКомментарий
Подсказок в списке1–20, по умолчанию 7Больше семи в корзине обычно мешает: список перекрывает кнопку оплаты
С какого символа искать1–10, по умолчанию 1Для города разумно 1, для улицы — 2–3
Пауза после набора0–2000 мс, по умолчанию 100Меньше пауза — больше запросов и выше расход пакета
Срез по уровнюот региона до квартирыДля поля города — только города, для поля улицы — только улицы

Запросы тарифицируются по числу обращений, а не по числу показанных строк. Дебаунс и отмена устаревших запросов уже встроены: пока покупатель печатает, в сеть уходит один запрос, а не по одному на символ. Подробнее про лимиты и коды ответов — в статье про ошибки API.

Частые вопросы

Нужно ли программировать, чтобы подключить подсказки к магазину?
Нет. Достаточно вставить тег script в шаблон страницы оформления заказа и добавить атрибут к полю адреса. Автозаполнение соседних полей и связка «город → улица → дом» тоже задаются атрибутами.
Подсказки работают в Битриксе, OpenCart, Tilda?
Да. Виджет не зависит от платформы: он навешивается на обычное поле ввода. Подойдёт любая CMS, где можно вставить код в шаблон корзины, включая самописные.
Что будет, если адреса покупателя нет в справочнике?
Он сможет дописать адрес вручную — подсказки не блокируют ввод. Магазин при этом получит сигнал, что адрес не выбран из списка, и сможет отправить такой заказ на проверку оператору.
Откуда берётся индекс?
Из того же ответа, что и адрес. Поле с индексом можно скрыть и заполнять автоматически — покупателю не придётся его вспоминать.
Безопасно ли держать ключ в коде страницы?
Для браузера используется публичный ключ, он и рассчитан на то, чтобы быть видимым. Его можно ограничить списком разрешённых IP. Секретный ключ применяется только на сервере.
Сколько запросов уйдёт на один заказ?
Обычно несколько: запросы отправляются с паузой после набора, а устаревшие отменяются. Один заполненный адрес — это единицы обращений, а не запрос на каждую букву.
Можно ли разбить ФИО на фамилию, имя и отчество?
Да. Покупатель вводит ФИО одной строкой, а магазин получает три отдельных значения плюс пол — им удобно подписывать письма и склонять формы в документах.
А реквизиты компании для счёта?
Организация ищется по названию, ИНН или ОГРН, после выбора подставляются ИНН, КПП, ОГРН, наименование и юридический адрес. Виден и статус — действующая компания или ликвидированная.

С чего начать

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

Читайте также

  • Валидация email и телефона: что реально проверяет APIПроверить почту и телефон до того, как они попадут в базу, дешевле, чем разбираться с возвратами рассылки и неотправленными SMS. Ниже — что валидация проверяет на самом деле и какую границу она не переходит.
  • Кадастровый номер по адресу: как найти через APIСвязка «адрес ↔ кадастровый номер» работает в обе стороны: по адресу приходит номер, по номеру — карточка объекта с площадью, стоимостью и назначением. Ниже — что именно в этой карточке и где у неё границы.
  • Лимиты и ошибки API: 429, 403 и что с ними делатьПоловина проблем с интеграцией — это не баги, а неправильно обработанные коды ответа. Разберём, какие ошибки означают «повтори позже», какие «сам виноват», и как не превратить лимит запросов в лежащий сервис.
← Все статьи