Кейс: автоматическая обработка прайсов поставщиков
Задача:
В интернет-магазине ежедневно обновлять остатки и цены с прайсов поставщиков.
Условия:
Есть 5 поставщиков. Каждый поставщик предоставляет онлайн доступ к своему прайсу. У кого-то это ссылка на XML, у кого-то папка на Яндекс.Диске.
Ограничения:
Интернет-магазин на Инсейлс. Платформа принимает файлы форматов: CSV/XLS/XLSX и YML.
План:
Привести прайсы всех поставщиков к единому формату. Написать программу, которая будет ежедневно автоматически обрабатывать прайсы. Программу пишем на Python.
Решение
1. Приводим прайсы к единому виду.
Написали программу отдельно для каждого поставщика:
– Поставщики № 1, 2 и 3 предоставляют прайс по ссылке в XML.
– Поставщик № 4 предоставляет прайс по ссылке в XLS.
– Поставщик № 5 предоставляет доступ к папке на Яндекс.Диске.
С первыми четырьмя поставщиками схема работы одинаковая: скрипт скачивает прайс по прямой ссылке, парсит данные и сохраняет в CSV.
С последним поставщиком пришлось настроить парсер для работы с Яндекс.Диском. Сначала скрипт получает список всех файлов в папке, ищет среди них прайс и получает на него ссылку. Далее по готовому сценарию — скачиваем прайс по прямой ссылке и парсим данные.
2. Настраиваем сервер
Для автоматической и круглосуточной работы скриптов нужен сервер.
– Арендовали сервер на Бегете.
– Сделали на сайте поддомен update.site.ru и направили его на сервер.
– Настроили сервер по инструкции.
– Создали на сервере проект, установили необходимые библиотеки для работы скриптов. Скопировали туда скрипты для всех поставщиков.
– Настроили в cron запуск скриптов по расписанию.
3. Настраиваем импорт в Инсейлс
В интернет-магазине настроили импорт из файлов CSV по ссылке по расписанию.
Для каждого прайса сохранили настройки и время импорта.