Программа для обновления прайс листа
Требуется написать программу для обновления прайс-листа (наличие и цены) интернет-магазина.
Тех.задание:
Наш csv файл скачивается с сайта (с закрытого раздела из подпарольной админки). В нем есть всё. Но обновлять в нем нужно только наличие и цены.
Прайсы трех поставщиков в xls скачиваются с закрытых b2b-шных сайтов. Еще парочка прайсов просто рассылается по почте.
В прайсе основного поставщика нет цен на одну категорию товаров, но есть правильное наличие. Цены на нее высылаются отдельно почтой, раз в неделю. Они в отдельном файле. На некоторые категории товаров там определенная скидка. Всё это нужно учитывать при обработке.
Суть такая. Программа должна скачать наш прайс, прайсы поставщиков (какие то с сайтов, какие то подцепить с локального компьютера, где я их сам буду обновлять), учесть актуальный курс доллара (прайсы поставщиков на половину в рублях, на половину в долларах, по категориям товаров, доллары надо переводить ЦБ + определенный % конвертации), и на основании цен и наличия товаров у поставщиков, обновить наличие и цены товаров (только тех, которые есть в нашем прайсе) у нас. Потом обратно залить на сайт новый файл, обновив таким образом данные на сайте.
Очень важно, что наш csv файл должен оставаться без изменений после обновления (ну только наличие и цены).
Должен учитываться курс доллара, скидки по некоторым категориям товаров. Цена должна искаться минимальная среди поставщиков, окончательная цена должна выставляться в соответствии с желаемой наценкой на данную категорию товаров.
Еще момент. Должна быть возможность вручную выставлять нужно ли всех поставщиков брать в расчет. Надо, чтоб программа могла работать как с одним поставщиком, так и со всеми.
Артикулы на товары у разных поставщиков немного отличаются. Программа должна безошибочно определять тот или иной товар.
Также должна быть функция поиска наличия и мин.цены в ручном режиме по одной выборочной позиции.
Программа должна быть достаточно легкой, не перегружать ресурсы компьютера и работать в фоновом режиме, не мешая остальным работающим приложениям.