Техническое задание
- Получить цены из Excel-файла от поставщика
- Проверить товары и обновить его цену, если изменилась.
- Обновить цену на сайте
Получение цены из XLS-файла
В личном кабинете создан дополнительный функционал, который позволяет загрузить прайс-лист в форматах xls/xlsx, разложить его на строки и колонки и по указанным заранее номерам колонок получить соответствующие данные (артикул, название и новую цену).
Поскольку было представлено несколько вариантов прайсов от разных поставщиков в разных форматах, то номера колонок выбираются пользователем перед началом работы по загрузке.
В результате разбора файла получается структурированный набор элементов, которые необходимо в дальнейшем найти в каталоге и по каждому выполнить операцию обновления.

Проверка товара и обновление цены
Функционал корзины проверяет каждый из товаров, полученный из прайс-листа поставщика и по уникальному артикулу находит аналогичный товар в каталоге. Затем система проверяет соответствие цены и если цена в прайсе отличается от цены в каталоге - выводит на экране предложение об обновлении. В сообщении указывается информация о старой цене и новой, а также дополнительно указывается название товаров для принятия решения со стороны администратора магазина. Ему остается только нажать на одну из 2 кнопок “Принять изменения” или “Пропустить”. При этом предложение из списка пропадает. И так пока не будут обработаны все записи прайс-листа.

Обновление цен на сайте
Использован стандартный механизм передачи данных о стоимости товара из корзины на страницу сайта, описанный на странице “частые вопросы по настройке корзины”. При этом по завершению процедуры обновления корзина готовит новый файл с данными для того, чтобы сайт их смог отобразить.