Загрузка и Выгрузка товаров для 1С-Битрикс в формате XLSX, CSV, XML, JSON

В большинстве проектов разработанных на 1С-Битрикс требуется настроить выгрузку или загрузку товаров. Самый лучший вариант – написать индивидуальный скрипт-загрузчик под конкретные задачи. Из данной статьи вы поймете почему это так, и узнаете в чем заключаются основные отличия разных форматов.

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

Стандартные способы выгружать и загружать данные в 1С-Битрикс

В системе битрикс предусмотрено всего несколько видов стандартной загрузки и выгрузки данных. Первый из них это Импорт\Экспорт Информационных блоков:

Именно инфоблоки являются основным инструментом, в которым мы храним данные. Этакая “часть базы данных” в удобном представлении.

При Импорт\Экспорте доступны 2 формата:
1. CSV – это простейший формат, который можно открыть в экселе и увидеть наглядно структуру файла в виде таблицы (правда, иногда в сломанной кодировке, т.к. эта программа почему-то любит windows-1251). Если открыть в блокноте, этот формат имеет вид:

Артикул; Название товара; Цена (руб.)
123; Жвачка для рук; 1000
234; Шар желаний; 1500

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

Правда есть один неприятный нюанс – В Битриксе вы не сможете адекватно выгрузить и затем загрузить данные о товаре, если делать это через Импорт \ Экспорт инфоблока. При этом варианте отсутствуют основные поля каталога, цены и количество, какой в этом смысл? Кроме того, ссылки для изображений указывают на папку /upload/, как вы поймете что вам копировать а что нет? Это можно исправить написав свой скрипт, но об этом позже.

2. XML – тут дела обстоят получше, когда речь заходит о более полной структуре данных. Тут вам и дерево из разделов, и все свойства из информационного блока, и даже цены. По сравнению с CSV форматом, все изображения собираются в отдельную папку, с таким же самым названием, которое мы давали файлу, что несомненно плюс.

Из частых проблем я бы выделил:
– сам формат сложнее в плане чтения и работы с ним (в случае если захотите что-то добавить через редактор)
– при выгрузке товары выгружаются в новый инфоблок (а должно загружаться в старый)

Как видите, если вы автоматом собираете XML выгрузку, например, из программы 1С, и после этого загружаете без проблем на свой сайт, то XML очень даже хороший формат. Но как показывает практика, это очень редкие случаи.

Какая выгрузка на проектах сделанных на 1С-Битрикс самая лучшая?

Выгрузка в формате CSV, XLSX или XLS для CMS 1С-Битрикс написанная вручную

По моему опыту, самый лучший вариант, это написать уникальный загрузчик. Почему?

1. Будет использован формат данных, к которому привыкли вы и ваши коллеги / партнеры. Например, если у вас сохраняется определенная последовательность полей – “Название, Артикул, Цена, Вес”, то в самом скрипте будет прописано “искать товары по Артикулу, если ничего не найдено искать по Названию, если товар найден поменять его Цену и Вес“.
2. При желании файл может загружать картинки из определенных папок и даже сторонних сайтов. Задавать картинки для товаров можно будет не только для полей “Картинка для анонса” и “Детальная картинка”, но и перезаписать часто используемое свойство типа Файл, с отметкой Множественное.
3. Можно будет задать более сложную логику загрузки. Например, у ваших товаров есть свойство бренд, и вы хотите чтобы всем товарам также отмечался раздел, с соответствующим брендом. Все ограничивается лишь поставленной задачей, в рамках более сложной логики загрузки можно учесть многие нюансы, которые применимы только в вашем бизнесе или проекте.

При разработке такого скрипта код пишется с нуля на языке PHP при использовании Bitrix API, и не содержит лишних строчек.

Форматы файлов могут быть любыми: CSV, XML, XLSX, XLS, YML, JSON и т.д.

Вас интересует данная услуга? Свяжитесь со мной, отвечу на все вопросы и помогу с реализацией.

Для примера отчет одного из таких загрузчиков, который видно сразу после выполнения скрипта:

выгрузка товаров из CSV, XML, XLSX, XLS, YML, JSON в Битрикс

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

загрузка товаров из CSV, XML, XLSX, XLS, YML, JSON в Битрикс

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

Если для вашего сайта необходимо настроить выгрузку или загрузку товаров из Excel или любого другого формата, обращайтесь.

автор: Dmitriy

З 2011 року займаюся веб-розробкою. Зараз я – PHP Full Stack Developer.
Обговорити ваш проект, а також дізнатися більше про мене ви можете на цьому сайті:
dev.forwww.com

Email: dmitriyribka@gmail.com

10 коментаря

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

  1. Дмитрий, добрый день. Хотел уточнить по поводу парсинга контента со сторонних сайтов (т.к поставщиков много), с возможностью периодично обновлять

Залишити коментар до Инна Скасувати коментар