«ИнфоАптека» имеет встроенный функционал обмена данными с внешними ресурсами. Нам были любезно предоставлены примеры XML-файлов, изучив которые мы разработали следующий алгоритм работы.
Работа с товарами:
- «ИнфоАптека» выгружает XML-файл с товарными позициями на FTP-сервер в скрытую от публичного доступа директорию с периодичностью один раз в 5 минут.
- На сервере раз в минуту по CRON запускается скрипт, который проверяет наличие input-файла. XML парсится и обрабатывается по следующему алгоритму:
- Проверяем, соответствует ли структура каталога на сайте входящему файлу, параллельно фиксируя изменения,
которые необходимо внести (добавить/обновить/удалить).
- Производим необходимые манипуляции с каталогом на сайте.
- Уничтожаем XML-файл с товарными позициями
- Записываем в логи результаты импорта.
Работа с заказами:
- При появлении нового заказа на сайте формируем XML-файл, содержащий необходимую информацию для «ИнфоАптеки», если XML-файл уже существует – дополняем его.
- «ИнфоАптека» с определенной периодичностью забирает XML-файл с заказами, удаляя его. В логи записывается информация о том, что файл принят, заказы переходят в статус «Передан».
- После обработки заказов фармацевтом – «ИнфоАптека» возвращает файл со статусом заказа.
- На основании статуса заказа пользователю отправляются отчеты по SMS и e-mail
- Если в ответе «ИнфоАптеки» отсутствует информация о необработанном заказе – заказ повторяется. Данный подход исключает потерю заказов, например в случае сбоя.