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

  2. Дмитрий, как можно с вами связаться ? Вопрос по загрузчику товара на сайт.

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

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *