Обмен данными CSV
Актуально для версии 2.9
Для того, чтобы правильно организовать импорт и экспорт посредством модуля Обмен данными используя формат CSV воспользуемся следующими инструкциями.
Создадим необходимый нам Шаблон Данных. (Модули -> Шаблоны Данных -> Раздел сайта -> Объект каталога ->Добавить тип данных) В нашем примере это будет "Обувь", назначение типа уже стоит "Объекты каталога". Создаем в нем Группу, если требуется (Например "Свойства"), и в группе создаем необходимые поля (Например "размер", "высота"). Выставляем им нужные типы.
Заходим в модуль каталог. Выбираем нужный раздел, нажимаем добавить объект. Выбираем ему созданный тип данных. Заполняем основные параметры (Название, поле H1, Псевдостатический адрес, META, теги, Title), нажимаем добавить. Заполняем все остальные интересующие нас поля. Сохраняем.
Заходим в модуль Обмен данными. Вкладка экспорт -> Настроить новый экспорт. Даем название сценарию экспорта, выбираем формат CSV и объект каталога который недавно создали. Нажимаем добавить и выйти. Выполняем экспорт. Полученный файл нельзя переименовывать. Внутри файла мы видим такую таблицу
id | name | type-id | is-active | template-id | parent-id | h1 | price | publish_status | vysota | razmer |
id | Наименование | Идентификатор типа | Активность | Идентификатор шаблона | id родительской страницы | Поле H1 | Цена | Статус публикации | Высота | Размер |
native | native | native | native | native | native | string | price | relation | int | int |
4912 | Валенок | 131 | 1 | 1 | 36 | Валенок | 110 | Опубликован | 30 | 42 |
52 | Обувь | 71 | 1 | 1 | 36 | Обувь |
Теперь можно разобрать как обновить или добавить новые элементы.
ID - уникальный идентификатор объекта, его оставляем без изменений.
name - название, можно изменить на любое другое значение.
type-id это ID типа данных данных, в нашем случае это были Валенки. Если изменим тип данных, то все последующие поля необходимо будет изменить так же как и у другого типа. Если тип является разделом каталога, то новых полей не потребуется.
is-active - это флаг о активности страницы. Если поставить значение 0, то этой страницы не будет видно на сайте.
template-id - это идентификатор шаблона который будет использоваться для отображения нужной вам страницы.
parent-id - идентификатор родительского элемента. Т.е. в каком разделе находится страница.
h1 - это заголовок страницы.
price - цена объекта.
publish_status - статус публикации.
vysota - поле которое мы добавили в ручную.
razmer - поле которое мы добавили в ручную.
Для того чтобы изменить одну или несколько характеристик у объекта каталога, необходимо поменять нужные нам поля на новое значение.
При этом есть некоторые особенности.
Нельзя ставить одинаковый ID и Parent ID, это приведет к тому, что объект станет сам себе родителем и не будет отображаться в структуре. Т.е. просто будет занимать место в Базе Данных не принося никакой пользы.
Нельзя менять ID, т.к. если вы измените идентификатор, система определит объект как новый и вместо обновления добавит новый объект, оставив старый как он и был.
Если вы меняете ParentID, то раздел с этим ID должен присутствовать в этом csv файле. Если ParentID вообще не указывать, то файл будет помещен в раздел который будет указан в сценарии импорта. Если в сценарии раздел не указан, то объект будет помещен в каталог минуя все разделы и подразделы.
Вносить изменения в поля можно исключительно того типа который объявлен. Например в поле Integer (int) нельзя записывать дробные числа, такие как 3.14.
Итак, на примере Валенка присутствующего в экспорте, составим три таблицы как обновить,как переместить и как создать объект. Указанный parentId (36) это id каталога.
Обновление объекта будет выглядеть примерно так:
id | name | type-id | is-active | template-id | parent-id | h1 | price | publish_status | vysota | razmer |
id | Наименование | Идентификатор типа | Активность | Идентификатор шаблона | id родительской страницы | Поле H1 | Цена | Статус публикации | Высота | Размер |
native | native | native | native | native | native | string | price | relation | int | int |
4912 | Новые валенки | 131 | 1 | 1 | 36 | Валенки | 250 | Опубликован | 24 | 43 |
Для перемещения объекта необходимо изменить parentId, обратите внимание что ParentID который вы указываете должен присутствовать как id раздела каталога.
id | name | type-id | is-active | template-id | parent-id | h1 | price | publish_status | vysota | razmer |
id | Наименование | Идентификатор типа | Активность | Идентификатор шаблона | id родительской страницы | Поле H1 | Цена | Статус публикации | Высота | Размер |
native | native | native | native | native | native | string | price | relation | int | int |
4912 | Валенок | 131 | 1 | 1 | 52 | Валенок | 110 | Опубликован | 30 | 42 |
52 | Обувь | 71 | 1 | 1 | 36 | Обувь |
При создании объекта или раздела каталога измените ID на любой другой. Он не должен совпадать с другими ID и ParentID учавствующими в этом файле.
id | name | type-id | is-active | template-id | parent-id | h1 | price | publish_status | vysota | razmer |
id | Наименование | Идентификатор типа | Активность | Идентификатор шаблона | id родительской страницы | Поле H1 | Цена | Статус публикации | Высота | Размер |
native | native | native | native | native | native | string | price | relation | int | int |
555 | Валенок | 131 | 1 | 1 | 36 | Валенок | 110 | Опубликован | 30 | 42 |