Как улучшить валидацию адресов с помощью USPS и Smarty
- Sarov+
- Apr 25
- 3 min read
Сегодня расскажем о нашем опыте использования USPS Address Validation Control в одном из проектов, который мы реализовали для клиента. Этот инструмент значительно упростил процесс работы с адресами, сокращая время заполнения и повышая точность данных. Мы также рассмотрим, почему мы выбрали именно этот контрол, какие лицензии использовали и как интегрировали его в проект.
А узнать больше про USPS можно в нашем видео:
Предыстория проекта
Проект был ориентирован на работу с клиентами, где было критически важно точное заполнение адресов. У клиента было три разных типа адресов, каждый из которых содержал минимум десяти строк данных: улица, номер дома, квартира, город и т. д. Вручную заполнять эти адреса каждый раз было неэффективно и занимало много времени. Поэтому мы решили использовать автоматическое автозаполнение и валидацию адресов с помощью USPS Address Validation Control.
Почему Smarty?
Мы выбрали Smarty по нескольким причинам:
Опыт предыдущих интеграций: Компания клиента уже использовала интеграцию с Smarty, что обеспечивало бесперебойное продолжение работы.
API для County: Одна из возможностей API Smarty позволяла вытаскивать информацию о County (нечто вроде микрорайона), что было необходимо клиенту для корректного заполнения адресов.
Наличие подходящих лицензий: Мы использовали две лицензии от Smarty — Address Autocomplete и Address Verification. Эти лицензии идеально подходили для нужд проекта, и они обеспечивали необходимую точность и скорость работы.
Добавление на форму
Для добавления контрола на форму, сначала необходимо создать поле, в котором будет отображаться компонент Smarty Address Autocomplete. Далее мы маппируем это поле с необходимыми адресными данными: country, county, street, city, state, zip, apartment. Важно отметить, что для интеграции требуется Smarty API Key, который мы получаем при регистрации в системе Smarty и приобретении лицензии.
Лицензии
Для этого проекта использовались две лицензии:
Address Autocomplete — для автоматического автозаполнения адресов.
Address Verification — для проверки корректности введенного адреса и получения дополнительной информации, такой как County.
Smarty предоставляет бесплатную триальную версию, которую можно использовать до 45 дней, и также есть международная версия, однако она менее стабильна, чем версия для США.
Flow input адреса
Интеграция с Smarty начинается с ввода данных в поле автозаполнения. При этом сразу происходит запрос к первому API Smarty, который возвращает список адресов из базы данных. Пользователь выбирает нужный адрес, включая, если необходимо, номер квартиры. Затем выбранный адрес отправляется на второй API, где происходит валидация, и если доступны, данные о County добавляются в форму.
Использование контрола
Контрол активно использовался для автоматического заполнения всех полей адреса, что существенно упростило работу с большими объемами данных. Важно отметить, что если county не было в адресе, то это влияло и на поле country. Если не было информации о county, то автоматически добавлялось значение United States в поле country.
Заполнение полей после выбора
После выбора адреса пользователем система автоматически заполняла все необходимые поля. Если же county не пришел, то автоматически вставлялось значение N/A, что было предусмотрено бизнес-правилами клиента. Такая логика была разработана для уменьшения нагрузки на контрол и подстроена под специфические требования клиента.
Технические улучшения
В проекте были реализованы некоторые улучшения, чтобы контрол работал более эффективно:
Захардкоженные значения: Если при валидации не было получено county, то в контрол добавлялось дефолтное значение — United States.
Обработка отсутствующих данных: В случае отсутствия номеров квартир или других полей, в эти поля автоматически вставлялись значения N/A.
Преимущества
Экономия времени: Автоматическое заполнение адресов существенно сокращает время работы.
Точность: Использование API для валидации помогает убедиться, что введенные адреса точны и корректны.
Дополнительная информация: Возможность вытаскивать дополнительную информацию, такую как County, делает решение более гибким.
Ограничения
Платная подписка: Использование Smarty требует покупки лицензий, что накладывает некоторые финансовые ограничения.
Не всегда заполняются все поля: Если для адреса нет информации о county или country, то эти поля могут быть не заполнены, и система должна применять дефолтные значения.
International: Для международных адресов система работает менее стабильно, чем для США.
Требование обновления данных: При интеграции с уже существующим проектом требовались значительные обновления данных, чтобы обеспечить правильное отображение и структуру адресов.
Рекомендации
Мы рекомендуем:
Всегда проверять API-ключи при релизах.
Тестировать контрол с большим количеством различных типов данных, чтобы убедиться в его стабильности.
Адаптировать логику заполнения полей под конкретные требования клиента, используя бизнес-правила.
Есть ли баги в Smarty?
Во время тестирования с использованием API не было зафиксировано никаких проблем с самим сервисом Smarty. Однако на начальном этапе мы столкнулись с проблемой, что при любых изменениях формы или релизах важно не забывать проверять API-ключи. Несмотря на это, сам сервис оказался стабильным и не вызывал проблем в эксплуатации.
Заключение
Интеграция USPS Address Validation Control с Smarty показала свою эффективность и надежность в проекте. С помощью этого контрола мы смогли значительно сократить время на ввод данных и повысить точность адресных данных, при этом оставив гибкость в настройке логики заполнения и валидации.
Comments