Импорт из csv в каталог UMI.CMS применяется обычно для массовой загрузки товаров.
Подготавливаем csv-файл для импорта в UMI.CMS
Проще всего csv-файл получить из каталога, созданного в табличном процессоре типа Excel. Поля в файле разделяются символом "точка с запятой" (";"), а это означает, что в текстах нашего каталога не должно быть этих символов.
Пример таблицы:
id | name | title | otdelka | description | image | price |
id | наименование | title | Отделка | Комплектность | Изображение | цена |
native | native | string | relation | text | img_file | price |
500059 | 4024дуб мореный | Волховец дуб мореный | шпон | полотно, коробка, 5 наличников | ./images/cms/data/dub1.jpg | 17970 |
Первые три строки указывают обозначение поля, название и его тип.
Как узнать типы полей? Все просто - названия берете из блоков в описании макроcа data getProperty - в общем, макросы этой серии.
Для всех записей в csv обязательно должен быть указан уникальный id, и если вы предполагает обновлять товары также импортом, нужно позаботиться, чтобы id у товаров не менялся.
Изображения: путь указывается относительно скрипта-обработчика, что == путь от корня с точкой впереди. Также все изображения нужно загрузить на сервер до начала импорта, иначе поля не будут заполнены - UMI проверяет наличие файла изображения.
Ограничения по размеру csv файла. Как правило, для виртуального хостинга установлено ограничение на время исполнения скрипта 30с. Создание объектов происходит весьма небыстро, поэтому количество позиций файле желательно ограничить. Сколько - в зависимости от быстродействия сервера. У sweb я обычно беру не более 100-120 позиций.
Процедура импорта в UMI.CMS
Вы можете выбрать раздел, в который надо импортировать. Тип данных UMI.CMS выбирает сама и называет его "объект каталога #23" или вроде того, не помню точно. Позже его можно переименовать во что-то более человеческое. В этом типе данных создаются поля в группе imported. Указать системе при импорте, что поля нужно распределить по группам нет никакой возможности.
Справочники UMI.CMS создаст сама и заполнит, причем достаточно интеллектуально - новые значения добавятся, а уже имеющиеся не дублируются.
Вопрос с типами данных требует особого внимания. Как утверждают разработчики UMI.CMS, обновление импортом из csv возможно, только если UMI.CMS сама создавала типы данных, а не если они были созданы вручную.
Если обновление вам неинтересно, можно заранее создать типы данных с соответствующими полями, и система их распознает и подхватит, НО: только если они являются дочерними по отношению к типу "объект каталога". Типы полее глубокой вложенности игнорируются.