Оформление онлайн заказа на безрецептурные препараты и доставка на «ПроАптека»
Как мы подготовили сервис ко дню принятия закона, разрешающего его работу
Сибирикс
Как мы подготовили сервис ко дню принятия закона, разрешающего его работу
Оформление онлайн заказа на безрецептурные препараты и доставка на «ПроАптека»
Ранее закон разрешал продавать лекарства только в обычных аптеках. БАДы, витамины, суперфуды — пожалуйста, а препараты, даже безрецептурные — нет.

3 апреля 2020 года ситуация изменилась. Из-за распространения коронавирусной инфекции, чтобы люди лишний раз не выходили на улицу, государство опубликовало закон. Он разрешает онлайн-аптекам с лицензией продавать безрецептурные лекарства (пока только до 31 декабря 2020 года).
Выдержка из ФЗ 61 «Об обращении лекарственных средств», ст. 55, п 1.1. Источник
Но наша история начинается раньше.
Разработка законопроекта vs разработка онлайн заказов для «ПроАптекa»
18 марта 2020 года законопроект внесли на рассмотрение в Государственную Думу, а мы провели первую skype-встречу с «ПроАптека». Пока закон рассматривали, читали, рекомендовали и одобряли, мы готовились ко дню, когда услуга онлайн-покупки и доставки станет законной.
1. Подключили онлайн-оплату

Заказчик выбрал банк для эквайринга, а мы его интегрировали по API.

2. Интегрировали сайт со службами доставки

Для доставки выбрали несколько компаний: Яндекс. Taxi, СДЭК, Достависта и Gett Delivery. Сначала добавили возможность расчета сроков и стоимости доставки, затем и автоматическое создание заказа в службе доставки «ПроАптека».

Яндекс.Такси добавили сервис курьерской доставки в свое приложение 3 апреля после того, как протестировали в марте 2020 года. Тогда же Яндекс анонсировал, что через этот сервис будет возможна доставка безрецептурных лекарств.

После заключения договоров мы интегрировали все эти службы по API, и Яндекс. Такси — одну из первых. Она же оказалась самой занимательной :)
Начну с того, что API Яндекс.Такси нам отдали документом формата pdf. Было понятно, что работа предстоит… интересная. Создали группу в Телеграм на троих: ПроАптека, Яндекс и Сибирикс. С нашей стороны мы решили не использовать никакие модули, а самим написать кастомные службы доставки, чтобы все службы были одинаковыми. Написали, начали тестировать и случайно выяснилось, что сумму доставки Яндекс не отдавал для тех заказов, где в отправной точке (аптеки) не был прописан e-mail. Пожали плечами и на случай, если у какой-то аптеки e-mail не задан, сделали его по умолчанию. Телефон на всякий случай тоже.

Но просто оформить доставку было недостаточно. Чтобы рассчитать стоимость, Яндекс не использует калькулятора (как это делают все другие сервисы). Поэтому мы создаем заявку на их сервере, получаем идентификатор заказа и затем в цикле запрашиваем стоимость, пока она не появится. Когда цена появляется, мы отдаваем ее обратно покупателю, чтобы тот уже мог оформить заказ.

Но и на этом не все. Все это дело нужно было подтвердить. Когда на стороне сайта у заказа менялся статус заказа на доставку, Яндекс. Такси сразу же начинал поиск исполнителя — таксиста. На первом тесте сделали заказ, но не поняли, как его отменить — никакой кнопки для этого не было. Чтобы отменить тестовый заказ, я за 10 минут написал метод отмены по API. На втором тесте таксист-таки доехал до аптеки и 20 минут ждал код подтверждения от Яндекса, который должен был прийти на номер телефона аптеки — стационарного телефона аптеки. И мы снова отпустили таксиста, заплатив ему за вызов. Решили проблему лишь тем, что прописывали в комментарии для таксиста номер заказа, который тот сообщает сотруднику аптеки.

Позже наш QA на очередном тесте выяснил, что для отмены заказа в Яндекс. Такси нужно навести мышкой на определенную область, и через несколько секунд появляется кнопка отмены :)

Евгений
Разработчик
Интеграция со службами доставки прошла довольно гладко, процесс сейчас тормозится со стороны курьерских служб. Мы их подгоняем со всех сторон: и со своей, и со стороны Сибирикс: это очень хорошо, что Сибирикс проявляет к этому интерес, т. к. нам за всем не уследить.

ПроАптека
Заказчик
3. Подготовили все необходимые интерфейсы

Имеющуюся страницу заказа мы дополнили службами онлайн оплаты и доставки, не нарушив имеющуюся логику и не перегружая страницу новой для покупателей информацией.
Задачи в подобные сроки просто невозможно выполнить в одиночку. Как только появилась информация о рассмотрении закона, мы с заказчиком сразу начали готовиться к реализации. Организовали онлайн-встречу, обо всем договорились и распределили обязанности. Каждый выполнил свою часть работы на совесть и в необходимые сроки. И вуаля! Новый функционал блестит и сияет. Мы готовы были запустить его как только рука последнего подписанта оторвется от документа, регулирующего работу нового закона.

Антон
Руководитель проекта
Теперь вы можете делать заказы лекарственных средств и получать их, не выходя из дома. Будьте здоровы!