В качестве платформы для нового сайта, до нашего появления на проекте, был выбран Битрикс. Оставив его как ядро системы, мы с нуля разработали модули каталога, страницы продукта и другие разделы сайта для обеспечения производительности и создания уникальной логики. В итоге, скорость загрузки страниц было выдержана в районе 0.3 секунды при работающем обмене.
Важной задачей было предоставление пользователям актуальной информации о товарах - в какой аптеке и по какой цене они присутствуют. При этом, цены меняются относительно редко (один-два раза в день), а остатки в аптеках меняются постоянно. Совместно со специалистами по 1С клиента, нами была реализована интеграция с 1С, позволяющая без значительной нагрузки на сервер, практически в режиме онлайн, поддерживать актуальность всей номенклатуры на сайте.
Поскольку постоянно меняется большой объем данных, неизбежны ситуации, требующие ручной работы для выявления и устранения ошибок. Для этого были реализованы механизмы логирования обмена и поиска по этим логам.
В итоге реализация интеграции вышла настолько успешной, что на ее базе позже были созданы различные сервисы для внутреннего использования — система отправки произвольных sms и push уведомлений и сервисы программы лояльности.
Для оптимизации работы бекофиса, был доработан модуль обмена с 1С пользователями и заказами.
В рамках реализации программы маркетинговой активности, мы разработали модуль для автоматизированного создания выгрузок на различные торговые площадки. Данный модуль имеет гибкий механизм настройки параметров генерации файлов для каждого маркетплейса и обеспечивает актуальность данных при минимальной нагрузке на сервер.
Мы разработали API для приложения сети аптек “Диалог”,, которое позволило реализовать в нем весь функционал сайта, а также расширить его сервисами, реализация которых в веб-среде невозможна. Также мы подготовили функциональную openAPI документацию, которая существенно упростила процесс разработки приложения.
При разработке API, совместно с разработчиками мобильного приложения, были спроектированы и реализованы дополнительные сервисы, которые посредством сайта обеспечивали взаимодействие пользователей приложения с бекофисом Диалог:
Интересная и, как оказалось, востребованная функция, которая позволяет сфотографировать в приложении рецепт врача, который далеко не всегда можно самостоятельно понять, и отправить его менеджерам-фармацевтам Диалога. Через небольшой промежуток времени, пользователь получает расшифровку рецепта. В ближайших планах добавление возможности перейти сразу к покупке товаров из списка.
Отправка Push-уведомлений из 1С как в автоматическом режиме, при наступлении тех или иных событий с заказом, так и произвольных сообщений менеджеров.
Также стоит отметить, что частью контента приложения можно управлять из административной панели сайта, что позволяет очень оперативно менять информацию в приложении привычным и удобным для менеджеров способом.
Сложная и интересная задача - создание единой системы лояльности, работающей при любой покупке пользователя - в аптеке, на сайте или приложении. Покупателю доступна полная и актуальная информация об истории начисления и списания его баллов, которыми можно оплачивать следующие покупки в сети Диалог.
Решение данной задачи проходило в несколько этапов:
В ходе этого этапа, были приведены к единому формату данные пользователей, реализованы механизмы актуализации этих данных, а также привязка карт к пользователю, что не позволяет распоряжаться бонусами на карте без ведома ее владельца.
Это независимый надежный веб-сервис со своим API, с которым взаимодействует сайт, 1С центрального офиса и каждая из аптек сети Диалог при покупке клиента. Высокая скорость работы СУБ позволяет всей сети аптек, сайту и мобильному приложению делать сотни запросов одновременно - получение информации о доступных баллах занимает не больше 0,1 секунды, что обеспечивает комфортное взаимодействие пользователей с системой.
Поскольку система лояльности затрагивает финансовые вопросы, было крайне важным предоставить пользователям возможность получить подробную информацию о начислении и списании баллов.
Было необходимо учитывать разные сценарии начисления и списания бонусов, например, отложенные оплаты при оформлении заказа на сайте, при которых все участники системы должны быть защищены от некорректного списания баллов или их повторного использования. Для решения данной задачи была реализована система резервирования баллов на карте пользователя, схожая с системой холдирования средств на банковских картах.