По договоренности
Общий алгоритм работы модуля
Есть файл в котором находятся товары и характеристики к ним, разбитые по колонкам. Нужно эти характеристики импортировать на сайт и сопоставить им товары, с точки зрения CMS нужно создать исходя из данных загружаемого файла наборы свойств и заполнить их данными из файла, а также сопоставить эти наборы свойств и категории, товары на сайте.
У нас проблема лишь в экспорте Характеристик товара, то есть сами категории, товары, картинки к ним и маленькое описание у нас экспортируется автоматически и здесь нет никаких проблем. Товары добавляются с уникальным ID, поэтому к ним и надо привязываться. Предполагаем следующий алгоритм добавления таких свойств:
Предположим что, перед экспортом на сайт характеристик товара у нас на сайте все товары загружены и распределены по категориям
Для экспорта на сайт характеристик у нас будет генерироваться тот файл, что мы вам скинули.
Алгоритм добавления свойств товаров:
1) смотрим первый товар, выделяем в строке первого товара непустые характеристики (то есть их название и значение)
2) затем проверяем в БД амиры есть ли у набора характеристик категории текущего товара данные характеристики
3) если их нет то мы их создаём и добавляем значения для просматриваемого товара
4) если у просматриваемого товара и категории в которой находится он не существует своего набора свойств, то мы его создаём соответственно заполняя непустыми характеристикам данного товара
Необходимо будет создать наборы свойств вручную. Пока пустые, без дополнительных полей. Поля будут добавляться в них по мере создания. Главное, чтобы на момент импорта наборы были созданы и назначены категориям.
Далее, по самому процессу создания новых свойств товаров.
Например, возьмем свойство "Тип" (13 столбец).
Данный столбец заполнен у различных товаров. Например:
"Стиральная машина ОКА Ока-10", тип = "напольная, активная, фазоинверторного типа"
"Посудомоечная машина ELECTROLUX ESF 43020", тип = "узкая"
"Холодильник Vestel DSR 330", тип = "холодильник с морозильником"
Совершенно очевидно, что это товары из разных категорий, с разными наборами свойств.
Если определять, существует ли свойство, на основе наличия его в наборе свойств категории импортируемого товара, то получится, что:
- при импорте стиральных машинок будет создано новое свойство "Тип", и добавлено в набор свойств "Стиральные машины";
- при импорте посудомоечных машин будет создано новое свойство "Тип", и добавлено в набор свойств "Посудомоечные машины";
- при импорте холодильников будет создано новое свойство "Тип", и добавлено в набор свойств "Холодильники";
и так далее.
Т.е. из одной колонки мы получим несколько разных свойств.
5) переходим к следующему товару
6) опять проверяем его непустые ячейки и если в родительской категории такой набор свойств существует, то только обновляем значение этих свойств у товара, если нет то переходим к шагу 2
У столбцов в файле есть только название. Соответственно, идентифицировать свойство можно только по названию. Если нужно, то по наличию свойства с таким названием в заданном наборе свойств.