Парсер экселя с внутренней логикой
Кратко: это обновление цен и наличия для интернет магазина но на стороне отдельного маленького вебприложения, на пхп как вариант, у которого есть своя база, и который работает с ней делаю итоговые файлы бля импорта в магазин. Попутно сверяясь с актуальными прайсами и обновляя цены и прочее.
Напишите вашу цену.
Техническое задание
*под “базой” подразумевется MySQL
Из файла экспорта магазина необходимо создать первоначальную базу товаров. Столбцы в этой базе распределены следующим образом:
“Number” - номер товара порядковый в магазине.
”SKU” - номер, по которому происходят все связки.
“%” - Коэффициент для цены. Используется с делением на 100 + 1. Если в прайсе его нет, устанавливается по умолчанию как Х% или 1,Х.
“Name” - Наименование товара (не обновляется).
“PriceStart” - Исходная цена товара.
“PriceItog” - Исходная цена, умноженная на коэффициент для цены.
“amount” - остаток товара на складе в штуках.
“available” - включен товар на сайте или нет, имеет два значения 1 или 0 (да или нет). Если amount равен 0, то available равен 0, если амоунт больше 0, то авайлебл 1.
“Category1” - Главный раздел товара.
“Category2” - Подраздел товара.
“Category3” - Под-подраздел товара.
Прайс лист поставщика менеджер копирует в отдельную папку на сервере (через веб-интерфейс). Нажимает кнопку “обновить”. И происходит обновление:
Столбик Код/SKU - постоянное значение. Именно по нему и происходит связка цен, наличия и других параметров.
У нас три типа прайс-листов для обновления. В каждом поля с SKU, количество на складе и другие находятся в разных столбцах. Я предлагаю ввести заранее определенные названия столбцов (они описаны в пункте 1), чтобы импорт мог осуществляться из любых прайс-листов. Другими словами менеджер перед загрузкой прайса на сервер редактирует его и пишет первой строкой файла названия к столбцам.
Наименование товара остается постоянным и не изменяется, даже если в файле - обновлении оно другое и не соответствует прежнему.
Обновление поля “цена”(итоговая) происходит в соответствии с алгоритмом: Цена прайса*K, где К - коэффициент, указанный персонально к каждой позиции прайса.
Если при обновлении появились новые позиции (новые SKU), без столбца “Category1”, их не добавляем в основную базу, из них необходимо сформировать файл xls или csv. И сохранить на сервере (формат: имя_исходного_файла_new), для дальнейшей ручной обработки менеджером.
Результат обработки прайсов и обновления - файл готовый к импорту в магазин по шаблону. Шаблон дадим.