Ввод адреса с подсказками
Возможности
На витрине и в приложении
- Поиск адреса — отдельный экран: строка ввода и список вариантов под ней. На телефоне он занимает весь экран, на
широком — колонку рядом с картой.
- Подсказки запрашиваются с третьего символа, с небольшой паузой после последнего нажатия. К набранному тексту всегда
добавляется выбранный город, поэтому от города зависит, что вообще найдётся.
- Выбор варианта подставляет адрес и координаты и возвращает к карте с меткой. По координатам тут же считаются зона,
цена и время доставки.
- Адрес можно указать и меткой на карте: гость перетаскивает её, а адрес подставляется обратным геокодированием точки.
- Если адрес не попал ни в одну зону, подтвердить его нельзя: вместо кнопки «Да, верно» гость видит «Ввести другой
адрес» и погашенное «Сюда пока не доставляем».
- Город спрашивается отдельным шагом и берётся из списка точек заведения. Один город выбирается сам. Город может быть
предложен по адресу подключения гостя — тогда заведение показывает вопрос «Ваш город N?».
- После адреса гость заполняет квартиру, подъезд, этаж, домофон и комментарий курьеру либо отмечает «Частный дом».
В кабинете
- В карточке заказа адресная строка ищет так же: подсказки раскрываются выпадающим списком, а выбор варианта
записывает улицу, тип улицы, дом, корпус и координаты и подбирает зону доставки.
- Рядом со строкой — адреса этого клиента. В новом заказе список раскрыт сразу, в заказе с адресом прячется за
пиктограммой.
- Кнопка «Определить зону доставки» пересчитывает координаты и зону по тексту адреса — она нужна, когда адрес
поправили руками.
- Если адрес распознан не до дома, рядом появляется предупреждение.
- Тем же поиском вводится адрес точки заведения.
Откуда берутся подсказки
- Варианты и координаты считает сторона заведения, а не браузер гостя: витрина, приложение и кабинет получают один и
тот же ответ.
- Источник выбирается перебором по тому, что подключено заведению: собственный справочник адресов, затем адресный
поиск Яндекса, геокодер Яндекса, 2ГИС, Google. Если не подключено ничего, работает DaData — она же и запасной
вариант для всех остальных.
- Перебор останавливается на первом источнике, который вернул непустой ответ.
- Выдача ранжируется по зонам доставки заведения: адреса внутри зон поднимаются выше, но адреса за их пределами из
списка не пропадают.
- Варианты уровня улицы, без номера дома, ведут себя по-разному: адресный поиск Яндекса, 2ГИС и Google их отбрасывают,
геокодер Яндекса и DaData оставляют с пометкой — иначе на «Москва, тверска» не нашлось бы ни одной улицы. Адресом
доставки такой вариант всё равно не станет.
- Для DaData городу можно задать спутники — соседние населённые пункты, по которым поиск идёт дополнительно и
результаты складываются в один список.
- Заведение с собственной адресацией — закрытая территория, посёлок, вахтовый городок — задаёт свой справочник адресов
с координатами, и подсказки берутся только из него.
Как настроить
- Поиск работает без настройки: заведению, которое ничего не подключало, адреса ищет DaData.
- Чтобы подсказки шли от Яндекса, 2ГИС или Google, заведение подключает собственные ключи к этим сервисам. Ключей
Яндекса можно задать несколько — запросы распределяются между ними.
- Отдельными настройками включаются: обязательный выбор адреса только из подсказки, обязательное заполнение квартиры,
подъезда и этажа, запрос города или адреса сразу при открытии витрины, спутники города для поиска, собственный
справочник адресов, приём адреса в виде пары координат и карта адреса в карточке заказа в кабинете. Все они
переключаются по запросу.
- Список городов и площадь поиска берутся из точек и зон доставки заведения: отдельного справочника городов нет.
Что должно быть настроено и ограничения
- Нужны точки с заполненными городом и адресом — иначе гостю нечего выбрать на шаге города.
- Нужны зоны доставки с нарисованным контуром: без них выдача не приоритезируется по территории, а выбранный адрес не
с чем сопоставить.
- Подсказки приходят по сети. Если источник недоступен или ключ исчерпан, список окажется пустым, а поиск перейдёт к
следующему источнику.
- Ключи к картам — на стороне заведения, вместе с их лимитами и оплатой. Исчерпанный ключ на час выключается, и поиск
идёт дальше по списку.
- Качество адресной базы — свойство выбранного источника, а не заведения: чего нет в базе, того не будет и в
подсказке.
- Виджет корзины на чужом сайте — поверхность прежнего поколения, новые возможности ввода адреса туда не приезжают.
Чего нет
- Не подсказывает квартиру, подъезд, этаж и домофон: их гость и оператор вводят руками.
- Не ищет без города. Пока город не выбран, поиск на витрине не запускается, а в кабинете город подставляется в запрос
как есть.
- Не подсказывает по первым двум символам: короче трёх символов запрос не отправляется.
- Не помнит, что искали раньше: подсказки не смешиваются с сохранёнными адресами гостя, это отдельный список рядом.
- Не выбирает пункт самовывоза: там поиск идёт по названиям и адресам точек заведения, а не по адресной базе.
- Не показывает ничего, когда все источники промолчали, — вместо списка «Ничего не найдено».
- Не проверяет адрес, набранный мимо подсказки: на витрине такой адрес просто не сохранится, в кабинете сохранится, но
координаты и зона останутся прежними, пока не нажать «Определить зону доставки».
Примеры
Гость впервые заказывает доставку
1. Гость открывает корзину и попадает на панель адреса.
2. Выбирает город (или город выбирается сам, если он у заведения один).
3. Нажимает «Улица и дом», набирает первые буквы улицы, видит список вариантов.
4. Выбирает свой дом — метка встаёт на карту, под адресом появляются цена и время доставки.
5. Заполняет квартиру, подъезд и этаж, нажимает «Да, верно» — адрес уходит в заказ и сохраняется в его адресах.
Гость указывает адрес меткой
1. Гость открывает панель адреса и попадает на карту своего города.
2. Перетаскивает метку на нужный дом — адрес подставляется сам.
3. Если строка получилась неточной, открывает поиск и выбирает вариант из списка; метка переезжает на выбранный дом.
4. Подтверждает адрес.
Оператор принимает заказ по телефону
1. Оператор открывает карточку заказа и проверяет город.
2. Набирает улицу в адресной строке и выбирает вариант из выпадающего списка — улица, дом, координаты и зона доставки
заполняются сами.
3. Если гость уже заказывал, оператор берёт адрес из списка адресов клиента.
4. При ручной правке адреса нажимает «Определить зону доставки» и убеждается, что предупреждение о нераспознанном доме
исчезло.
Связанные статьи
- 2GIS — геокодер
- Google Maps — геокодер
- Яндекс — геокодер