Обработка CSV с товарами для импорта в движок Prestashop

Валерий14 лет в сервисе
Данные заказчика будут вам доступны после подачи заявки
16.08.2015

Необходимо разработать программу для обработки CSV с товарами от поставщиков для импорта этих товаров в движок Prestashop. На выходе из программы так же должны идти CSV-файлы, но уже с подходящей структурой. У входного файла разделителем является запятая ",". У готового файла разделителем должна быть точка с запятой ";".

Программа должна иметь GUI для ручной корректировки некоторых параметров работы, таких как переназначение категорий (пункт 5 ТЗ).

1)

В таблицы нужно добавлять поле ID.

Это уникальный идентификатор одного продукта. Он отличается от SKU и других идентификаторов тем, что может содержать в себе множество продуктов с разными атрибутами (цвет, размер - в общем то, что выбирает пользователь при заказе, допустим, одежды). Например - длинное платье в горошек фабрики "Заря" имеет три размера - S, M, L. Каждый из них имеет свой SKU. Однако у всех их должно быть одинаковое числовое значение ID, не повторяющееся ни с какими другими товарами.

Все ID должны сохраняться в отдельную базу-файл, чтобы при очередной итерации работы с новым CSV от поставщика те же самые товары с новой, например, ценой или количеством на складе - имели прежний ID. Поставщиков будет несколько, но база ID должна быть одна.

Предполагаю, что определять принадлежность товара к одному ID программно можно будет по полю TITLE (название товара) после отсечения из него атрибутов типа Color и Size (цвет и размер).

2)

В таблицы нужно добавлять поле SUPPLIER (поставщик). Оно должно добавляться ко всем товарам из данного конкретного CSV-файла. Имя поставщика равно названию файла CSV, с которым идет работа.

3) С полем TITLE нужно работать в следующем направлении - вычленять оттуда группы атрибутов типа Color, Size и др (буду уточнять и добавлять по мере изучения файлов от поставщиков). Перенести значение атрибутов в отдельные поля с новым синтаксисом (см примеры).

Если никаких атрибутов у конкретного товара нет - соответствующее поле таблицы оставлять пустым.

Предусмотреть возможность самостоятельного дополнения списка атрибутов для поиска в заголовках. Как я успел заметить, после имени атрибута идет символ двоеточия, затем - значение атрибута. Несколько разных атрибутов разделены запятыми.

4)

Поле STATUS - менять значения Yes на 1, No на 0.

5)

Поля MAIN CATEGORY и SUB CATEGORY.

Их обработка должна вестись по следующему принципу: при первом проходе по файлу программа выдает запрос - какому значению равна данная комбинация обоих полей? И отображать окошко для ввода, позволяющее присвоить данной комбинации произвольное значение. Значений может быть несколько, через запятую. Однако все они должны помещаться в одно и то же поле отдельное CATEGORY.

Необходимо иметь возможность видеть значения обоих полей, которые сейчас обрабатываются при выдаче запроса.

При дальнейшем повторе данной комбинации - в поле CATEGORY вписывается уже заданное значение для этой комбинации.

Предусмотреть сохранение комбинаций и значений в зависимости от поставщика (имени входного файла CSV), в том числе и после перезапуска программы.

6)

Комбинации.

После обработки файла поставщика программой должны генерироваться еще два поля - для дальнейшей комбинации одного товара с различными атрибутами (см пункт 3).

Attribute (Name:Type:Position)*Value (Value:Position)*

Вот тут информация по комбинациям:

http://www.youtube.com/watch?v=_CErddIKx0w

http://www.youtube.com/watch?v=Euwd576tn1I

http://www.youtube.com/watch?v=uNh-iMpPOGE

В видео показана работа с отдельным файлом csv для комбинаций, но в нашем случае можно ограничиться добавлением полей в основной файл продуктов.

Входной, выходной файлы примеров приложены.

Файл одной из баз поставщика для экспериментов - приложен.