Перегрузить данные из CSV в базу (парсинг CSV)

Олег17 лет в сервисе
Данные заказчика будут вам доступны после подачи заявки
29.01.2013

Есть большое количество (около 150 штук) больших файлов выгрузки товаров из магазинов (до 200 тыс записей каждый, до 70 метров весом) в формате CSV.

Файлы обновляются ежедневно. Пример файла прикреплён к заданию.

Необходимо:

1. Раз в сутки (или по мере обновления файлов поставщиками, такая информация будет доступна) забирать CSV, разбирать и складывать в базу. База MySQL, язык разработки PHP.

Обновление должно происходить по крону в автоматическом режиме без участия админа и незаметно для пользователей. То есть сносить старую базу и забивать новые данные, отключив при этом сайт на полчаса – не решение.

Данные во всех файлах представлены в одном и том же формате.

Данные необходимо сложить в таблицу базы со следующими полями:

id – auto_increment

shopname – название магазина в соответствии с нашим именованием (дам отдельно, для выгрузки с разных файлов одного магазина ставить одно имя).

ArtNumber

Title

Description_Short

DisplayPrice

Img_url

Deeplink1

ProductCategoryID

ProductCategoryName

ImgWidth

ImgHeight

Img180_url

Img180Width

Img180Height

Price

Price_old

Description

Brand

Manufacturer

BasePrice

Shipping

DisplayShipping

properties – сюда записать данные всех остальных полей через запятую

Обратить внимание, что тексты в файлах на немецком языке, всё должно храниться в базе в utf-8.

В поле ArtNumber символ / (слэш) необходимо заменить на _ (нижнее подчёркивание). Нелатинские символы с надстрочными знаками – заменить на латинские (не уверен, что такое будет, но чем чёрт не шутит).

Финальная страница со списком товаров на сайте будет выглядеть так: www.sale24.by/shop/mexx/

Страница с самим товаром так: www.sale24.by/shop/mexx/3062/, где 3062 – значение поля ArtNumber

Каждый товар будет запрашиваться из базы по двум параметрам: shopname и ArtNumber

При обновлении данных id можем изменяться, а shopname и ArtNumber для конкретного товара должен оставаться неизменным.

2. Для товаров каждого поставщика в соответствии с записями ProductCategoryName создать дерево категорий и записать в отдельную таблицу базы.

3. Заголовки товаров и названия категорий необходимо давать на русским языке (делать автоматический перевод с немецкого с помощь Яндекс- или Гуггл-переводчика).

Это три задачи, которые мне нужно решить. Первая наиболее приоритетная, ожидаю оценку по стоимости и срокам по каждому пункту.