Что мы сделали? Внедрили интеграцию с сервисом Яндекс Доставка через использование API.
API представляет собой набор правил, определяющих, как программы или приложения взаимодействуют между собой. Проще говоря, API — это связующее звено между различными технологиями или частями программного обеспечения. Благодаря API разработчики могут использовать уже готовые функции и методы, облегчая интеграцию и обеспечивая безопасность взаимодействия между различными системами.
Почему это важно? Компания Xistore.by приняла решение о внедрении доставки товаров через сервис Яндекс Доставка. Согласно статистике, этот сервис позволяет доставлять заказы в течение 30 минут по городу. Это означает, что после интеграции клиенты смогут оперативно получить товары, например, в качестве подарка, без необходимости посещать магазин или ждать свободного курьера компании.
Яндекс Доставка — это сервис для бизнеса, который предоставляет возможность управлять доставками через личный кабинет или с помощью интеграции. Он предлагает быстрые и надежные решения как для частных лиц, так и для компаний. Сервис активно трансформирует рынок логистики, используя передовые технологии и данные: автоматически распределяет заказы среди курьеров, прогнозирует потребности и оптимизирует маршруты в режиме реального времени. Выбор исполнителя для заказа — сложный процесс, управляемый уникальными алгоритмами. Ежемесячно клиенты сервиса оформляют свыше 5 миллионов заказов.
Перед внедрением решения мы совместно с клиентом разработали алгоритм для организации доставки через сервис Яндекс Доставка:
При оформлении заказа пользователь указывает адрес доставки.
Алгоритм обрабатывает введенный адрес и выполняет поиск магазина, который может выполнить доставку, учитывая часы работы, наличие товаров и их размеры.
Если подходящий магазин найден, на сайте отображается возможность доставки через Яндекс Доставку.
После подтверждения возможности доставки на этапе оформления заказа в системе Яндекс Доставка происходит предварительное бронирование, и клиенту предоставляется время для оплаты заказа онлайн.
Если заказ оплачен, его статус меняется на "Оплачен", и он становится доступен для курьеров сервиса Яндекс Доставка.
Чтобы избежать ошибок при вводе адреса на этапе оформления заказа, мы интегрировали API стороннего сервиса DaData. Теперь, когда пользователь вводит адрес доставки на сайте, DaData автоматически предлагает корректные варианты из существующих адресов, и пользователю остается лишь выбрать нужный:
Кроме приведения адресов к стандартному формату, API от DaData также позволяет получать координаты и город в удобном формате, что существенно облегчает дальнейшую работу с сервисом Яндекс Доставка.
После получения адреса и его координат мы определяем, нужно ли предлагать пользователю возможность доставки через Яндекс Доставку.
Мы также рассматривали вариант добавления дополнительного параметра, который бы определял магазин с минимальной стоимостью доставки.
Однако этот вариант был отклонен по двум причинам:
1. Определение формата передачи данных в API.
Определение формата передачи данных в API оказалось непростой задачей. Хотя у Яндекса есть неплохая документация, многие вопросы пришлось решать методом проб и ошибок. Документация не всегда достаточно детализирована, а некоторые сведения оказались неточными. Это было связано с тем, что на момент реализации проекта сервис только недавно вышел на рынок РБ и еще проходил процесс отладки.
Из-за этого возникли трудности с определением правильного формата передачи данных с сайта в API для создания заявки на доставку. Проблему удалось решить с помощью метода проб и ошибок, а также благодаря поддержке представителей Яндекса.
После того как формат данных был окончательно определен, оставалось лишь передать их с нашей стороны.
2. Дублирование заявок в рамках одного посещения и пересчет стоимости.
Возникла проблема с дублированием заявок в рамках одного сеанса. Например, если покупатель сначала выбирал «Яндекс Доставку» для расчета стоимости, затем переключался на другой тип доставки, а потом возвращался к Яндекс Доставке, система создавала два запроса к API, что приводило к появлению двух идентичных заявок в личном кабинете Яндекс Доставки. Эти дубликаты засоряли личный кабинет, а также могли вызвать недовольство у клиентов, так как стоимость доставки могла измениться при повторном запросе, даже если параметры заказа оставались неизменными.
Для решения этой проблемы мы разработали систему, которая предотвращает создание дублей заявок. Мы добавили уникальный ID к запросу API, который учитывает все параметры, указанные пользователем при оформлении заказа. При повторном выборе Яндекс Доставки система использует этот ID, чтобы обратиться к уже существующей заявке в личном кабинете, а не создавать новую.
Кроме того, для поддержания чистоты в личном кабинете Яндекс Доставки мы внедрили агент на cron, который регулярно получает список просроченных и неоформленных заявок через API и удаляет их.
Эти меры позволили избежать дублирования заявок и обеспечили отображение первоначальной стоимости доставки при повторном обращении к заявке с теми же параметрами.
Эта интеграция значительно повышает эффективность работы магазина, улучшает обслуживание клиентов и способствует формированию положительного имиджа бренда Xistore.by. Рассмотрим результаты интеграции для пользователей сайта и владельца бизнеса:
Результаты для пользователей сайта:
Результаты для владельца сайта: