Файл csv

Урок 221 из 386
Автор: Роберт Басыров
Сложность урока:
4 уровень - сложно, требуется сосредоточиться, внимание деталям и точному следованию инструкции.
4 из 5
Просмотров: 43023
Дата изменения: 16.10.2024
Недоступно в лицензиях:
Текущую редакцию Вашего 1С-Битрикс можно просмотреть на странице Обновление платформы (Marketplace > Обновление платформы).
Ограничений нет

  Файл CSV

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

По умолчанию, в «1С-Битрикс: Управление сайтом» для файлов импорта используется разделитель ;. Если вы в своем файле будете использовать иной разделитель, то при выполнении самого импорта не забудьте указать нужный.

Примечание: достаточно часто используется символ |, так как он никогда не встречается в названиях товаров.

Удобнее всего для создания файла использовать программу MS Excel. Можно использовать и другие, вплоть до простейшего Блокнота, но этот табличный редактор удобен и им привычно пользоваться обычным пользователям.

Cамый простой способ подготовки файла .csv – сначала экспортировать каталог (получив готовый файл-образец для наполнения именно вашего каталога), а затем добавлять новые товары по образцу:

  Создание файла .csv

Откройте программу MS Excel.

Создайте новый файл под любым именем (в нашем случае пусть это будет: baza) и сохраните его с расширением csv.

Примечания:
  • Если при сохранении файла в csv-формате в MS Excel нет формата разделителя «;», то выберите разделитель «,». На самом же деле файл все равно сохранится с нужным разделителем – точка с запятой.
  • Сохранять файл нужно в кодировке сайта, в который он будет импортирован.

В файле CSV должно присутствовать хотя бы одно из двух полей (по этим полям элементы сопоставляются с базой данных):

  • Название элемента (так элемент будет отображаться в каталоге);
  • Внешний код элемента (XML_ID).

Рассмотрим случаи, когда и какое из полей должно быть обязательно:

  • Если Вы только вносите изменения в уже существующие на сайте элементы, то можно указывать только XML_ID (в первую очередь база данных сверяется именно по XML_ID);
  • Если Вы создаете новый элемент, то Вам достаточно При создании нового элемента можно (но не обязательно) добавить колонку с уникальными идентификаторами элементов XML_ID (в этом случае Вы самостоятельно сможете задать этот идентификатор — можно использовать буквы латинского алфавита и цифры).

    Если же такую колонку не создавать, то внешние коды будут присвоены новым элементам автоматически.
    указать название элемента, а XML_ID будет добавлен автоматически при импорте.
    Однако если еще планируется импорт торговых предложений Товары, имеющие торговые предложения, выводятся двумя инфоблоками: инфоблоком товаров (импорт которого вы научились делать ранее ) и инфоблоком торговых предложений.

    В этом уроке рассмотрим подробнее, как импортировать инфоблок торговых предложений, сохранив привязку к нужным товарам (т.е. к элементам инфоблока товаров).

    Подробнее...
    (то есть вы готовите два файла: с товарами и с торговыми предложениями этих товаров), то удобнее в первом файле прописать XML_ID, чтобы указать во втором файле эти же XML_ID в поле для привязки предложений к нужному товару.

Название колонок с параметрами не обязательно должно совпадать с названиями параметров в системе. Главное, что бы они были понятны вам, и при задании условий импорта у вас не возникло затруднений в определении соответствий полей создаваемого вами сейчас файла CSV и полей формы импорта.

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

Готов необходимый минимум параметров. При желании можно сохранить файл и импортировать его на сайт, технически операция импорта осуществится. Но это – технический минимум, нормальную торговлю на этих данных организовать невозможно. Значит, будем дополнять файл дальше.

Нам нужно, чтобы каждый товар попадал строго в нужную папку в рамках уже созданной структуры каталога. Для этого в процедуре импорта все предусмотрено. Нужно только создать колонки, которые будут объяснять, куда какому товару попадать. У нас крайне простая структура с одним уровнем вложенности. Значит, надо создать одну колонку с названиями папок в каталоге.

Создадим колонку для первого уровня и назовем ее Первый уровень.

Заполните колонку Первый уровень для всех элементов, согласно нашей структуре.

Важно! Названия, вводимые в эти колонки, должны точно совпадать с теми названиями, которые используются в каталоге. Если названия не будут совпадать, то система при импорте создаст разделы с новыми названиями и в них поместит импортируемые элементы.

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

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

Теперь можно приступать к созданию колонок с данными о товаре.

Создайте колонки, соответствующие необходимым данным для импорта и заполните колонки данными.

  Важные моменты

  • Если в качестве описания используется текст, отформатированный html-тегами, то необходимо в настройках модуля Торговый каталог, на закладке Экспорт / Импорт добавить в качестве используемой строку Тип детального описания tip_det_op.png . Если html-форматирование используется и для анонсового описания, то нужно добавить соответствующую строку и для анонсового описания. Соответственно, в CSV-файле должны быть добавлены колонки, указывающие на тип описания.
  • Добавление элемента в колонки со свойством типа Привязка к элементу не произведет автоматического привязывания элемента, если элементы еще не созданы (так как заполнить эту колонку можно только ID элементов, а они еще неизвестны). Привязку необходимо осуществить после экспорта, вручную. Однако, если элементы инфоблоков уже созданы, то можно в соответствующие колонки ввести код элемента.
  • При добавлении численных значений необходимо следить, чтобы разделитель десятичных знаков, используемый в «1С-Битрикс: Управление сайтом» совпадал с разделителем, используемым в CSV-файле. В системе «1С-Битрикс: Управление сайтом» в качестве разделителя десятичных знаков используется точка.
  • Одновременно с указанием цены, в CSV-файле обязательно необходимо предусмотреть колонку валюта, в которой будет указана используемая валюта. Без этого импорт не произойдет. Точнее – импорт элементов осуществится, но цены не будут добавлены или обновлены.
    В колонках Цена и Валюта не должно быть пробелов Корректное заполнение:
    ;; (Если не нужно добавлять, обновлять цену)
    1234;RUB; (Если нужно добавить или обновить цену).

    Ошибочное заполнение:
      ;RUB; (Пробел в колонке Цена или Валюта)
    ;RUB; (Отсутствие значения цены)
    123123;; (Отсутствие значения валюты)
    .
  • Для загрузки данных для свойств с признаком множественности, необходимо повторить строку с товаром столько раз, сколько будет множественных полей. Например, в случае со свойством Технические характеристики, нам нужно заполнить три поля. Следовательно, в файле CSV получится по три строки на каждый товар. Если множественных свойств несколько, то число строк должно равняться числу параметров наибольшего свойства. Ячейки для параметров свойств с меньшим числом можно просто оставить пустыми. Все строки должны быть одинаковыми по содержанию, за исключением множественных полей, которые изменяются указанием новых данных для этого свойства. Подобная особенность импорта с помощью стандартного механизма приводит к распуханию файла, если количество множественных свойств много и они интенсивно используются. При импорте больших файлов следует использовать пошаговые операции.
  • Перед импортом необходимо загрузить картинки в систему. В файле CSV для них должна быть выделена своя отдельная колонка. Картинки могут быть расположены в любом месте в рамках файловой структуры, главное – указать при импорте правильный путь до них. Рекомендуется использовать папку /upload. Картинки загружаются в файловую структуру, если это разрешено настройками хостинга.

    Примечание: Изображения также можно добавить со сторонних сайтов (но не из облачных хранилищ), прописав полные URL этих картинок В случае, если в URL содержатся кириллические символы, они должны быть кодированы в формате Unicode. То есть, например, вместо https://www.google.ru/search?q=кодирование+кириллицы должно быть https://www.google.ru/search?q=%D0%BA%D0%BE%D0%B4%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5+%D0%BA%D0%B8%D1%80%D0%B8%D0%BB%D0%BB%D0%B8%D1%86%D1%8B. .

    Этот способ не рекомендуется для загрузки больших каталогов, т.к. при импорте каталога изображения будут копироваться на Ваш сайт (если php на сервере это разрешает), и сам процесс импорта займёт значительно большее время.

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

    (Контент > Инфоблоки > Типы инфоблоков > [ваш тип инфоблока]/[ваш инфоблок]), в который Вы хотите загрузить файл: если во вкладках Поля или Поля разделов какие-либо поля отмечены как обязательные, то эти колонки должны быть обязательно и в загружаемом csv-файле.
  • С версии В более ранних версиях поле Единица измерения остаётся пустым, если оно не заполнено в импортируемом файле. модуля Торговый каталог 20.0.100 при импорте для новых товаров устанавливается единица измерения по умолчанию, если в файле не указано иное значение.

  Пример итогового файла .csv


IE_NAME;IP_PROP9;IP_PROP11;IP_PROP13;IC_GROUP0;IC_GROUP1;IC_GROUP2;CV_PRICE_1;CV_CURRENCY_1

Ремень Класика;188-12-xx;кожа;/upload/classic1.jpg;Аксессуары;Ремни;Ремни Мужские;1190.00;RUB
Ремень Класика;188-12-xx;кожа;/upload/classic2.jpg;Аксессуары;Ремни;Ремни Мужские;1190.00;RUB
Ремень Класика;188-12-xx;кожа;/upload/classic3.jpg;Аксессуары;Ремни;Ремни Мужские;1190.00;RUB
Ремень Элегантность;188-13-xx;кожа;/upload/elegance1.jpg;Аксессуары;Ремни;Ремни Женские;730.00;RUB
Ремень Элегантность;188-13-xx;кожа;/upload/elegance2.jpg;Аксессуары;Ремни;Ремни Женские;730.00;RUB
Ремень Элегантность;188-13-xx;кожа;/upload/elegance3.jpg;Аксессуары;Ремни;Ремни Женские;730.00;RUB

В данном примере описана загрузка информации о двух новых товарах: мужского ремня "Классика" и женского ремня "Элегантность":

  • прописываем название товара (для новых товаров будет сгенерирован автоматически XML_ID);
  • формируем структуру разделов: в разделе Аксессуары находится раздел Ремни, в котором два подраздела – Ремни мужские и Ремни женские;
  • прописываем свойства товаров, которые хотим указать (например, Артикул и Материал );
  • у каждого ремня есть по 3 изображения (т.е. множественное свойство Картинки галереи), поэтому строки одного и того же товара дублируем и в каждой меняем только название картинки;
  • указываем Цену и Валюту.

Примечание: в нашем случае в настройках наполняемого инфоблока во вкладках Поля (или Поля разделов) НЕТ каких-либо полей, отмеченных как обязательные (иначе эти поля нужно обязательно указывать в загружаемом файле .csv).


Нам жаль это слышать… Но мы постараемся быть лучше!

Мы благодарны Вам за помощь в улучшении документации.

Спасибо, мы рады что смогли помочь Вам. Ниже Вы можете оставить свой отзыв или пожелание :)
Мы стараемся сделать документацию понятнее и доступнее,
и Ваше мнение важно для нас
Курсы разработаны в компании «1С-Битрикс»