Поставщик прислал прайс в Excel, выгрузку XML или доступ к API. На сайте нужно создать карточки товаров, распределить их по разделам, загрузить фотографии, цены и остатки. Вручную это можно сделать для нескольких позиций. Но когда товаров сотни или тысячи, нужен импорт — а при регулярных изменениях ещё и механизм обновления каталога.
В этой статье разберём способы загрузки товаров на сайт на «1С-Битрикс: Управление сайтом»: от таблицы Excel до интеграции с поставщиком. Расскажу и об инструментах, которые часто использую в своей работе при настройке импорта.
Какой способ загрузки товаров выбрать
Выбор зависит от того, где хранятся исходные данные, как часто они меняются и какая структура каталога нужна на сайте. Количество товаров влияет на обработку, но само по себе не определяет способ импорта.
| Исходные данные и задача | Подходящий способ |
|---|---|
| Нужно один раз загрузить каталог из таблицы | Excel через модуль импорта или CSV через штатные средства |
| Поставщик регулярно присылает прайс Excel | Настроенный профиль импорта с повторной загрузкой или запуском по расписанию |
| Доступна выгрузка XML или YML | Модуль импорта с сопоставлением полей либо собственный обработчик |
| Номенклатура, цены и остатки ведутся в 1С | Обмен с 1С в формате CommerceML |
| Поставщик предоставляет API | Интеграция API поставщика с каталогом сайта |
| Данные есть только на сайте поставщика | Парсинг с последующей подготовкой файла или загрузкой скриптом |
| Несколько поставщиков и разные правила обновления | Несколько профилей импорта или отдельный механизм синхронизации |
Перед настройкой нужно проверить редакцию Битрикса и состав модулей. Загрузка элементов в информационный каталог и работа полноценного торгового каталога с ценами, складским учётом и предложениями — разные задачи.
Что подготовить перед импортом
Даже хороший модуль не исправит автоматически все проблемы исходного прайса. Сначала нужно определить, что означает каждая колонка и куда она должна попадать на сайте.
- Идентификатор. Постоянный код позиции, по которому можно найти товар при следующем обновлении.
- Разделы. Соответствие категорий поставщика структуре вашего каталога.
- Характеристики. Какие данные нужны для карточки, сравнения и фильтра: бренд, материал, размеры, назначение.
- Цены. Валюта, тип цены, единица продажи и правила наценки.
- Остатки. Точное количество, остатки по складам или только признак наличия.
- Изображения. Ссылки или файлы, доступные для загрузки.
- Варианты товара. Нужны ли отдельные торговые предложения для размеров, цветов, упаковок.
Заранее стоит решить и то, какие поля импорт имеет право менять. Например, цены и остатки обновляются из прайса, а подготовленные вручную описания, SEO-поля и адреса страниц сохраняются.
Загрузка товаров из Excel и CSV
Excel удобен, когда каталог ведётся в таблице или поставщик присылает прайс. Менеджер может проверить данные, добавить характеристики и подготовить файл без программирования.
Для простого каталога таблица может выглядеть так. Значения ниже — условный пример:
| Код поставщика | Артикул | Название | Раздел | Цена, ₽/шт. | Остаток, шт. |
|---|---|---|---|---|---|
| p-1001 | BOLT-M8-30 | Болт М8×30 | Крепёж / Болты | 12,50 | 500 |
| p-1002 | NUT-M8 | Гайка М8 | Крепёж / Гайки | 4,80 | 1200 |
В отдельные колонки можно вынести описание, производителя, характеристики и ссылки на фотографии. Как именно записывать путь раздела и несколько изображений, определяется настройками выбранного импортера.
Штатный импорт CSV
В Битриксе есть штатный импорт CSV для торгового каталога. Таблицу можно подготовить в Excel, затем сохранить в CSV и сопоставить её колонки с полями сайта в мастере загрузки. Excel-файл XLSX и CSV — разные форматы: для этого штатного сценария требуется именно CSV.
При подготовке файла нужно проверить кодировку, разделитель колонок, формат чисел и обязательные поля. Артикулы с ведущими нулями лучше хранить в таблице как текст: иначе Excel может превратить «00125» в «125» ещё до импорта.
Как я настраиваю удобную загрузку из Excel
Для загрузки из Excel я часто использую модуль «Импорт из Excel. Загрузка каталога товаров 1С-Битрикс». Им удобно настраивать загрузку под конкретный прайс и сохранять настройки для повторного использования.
Модуль поддерживает XLS, XLSX и CSV, сопоставление колонок с полями и свойствами, загрузку изображений, цен и остатков. Профили позволяют повторять импорт с ранее заданными параметрами; для регулярного обновления предусмотрен запуск по cron.
В работе это удобно организовать так: сначала настраивается профиль под файл поставщика, проверяется результат на небольшой выборке, затем сотрудник использует готовые настройки для следующих загрузок. Если поставщик изменит структуру таблицы, профиль потребуется проверить и при необходимости скорректировать.
Отдельного внимания требуют торговые предложения. Футболка в трёх размерах или крепёж в нескольких упаковках могут быть вариантами одного товара. Тогда при импорте нужно не только создать позиции, но и правильно связать предложения с родительской карточкой.
Загрузка товаров из XML и YML
XML подходит для передачи структурированных данных: категорий, товаров, характеристик и вариантов. YML — один из форматов на основе XML. Но расширение файла само по себе не говорит, что Битрикс сможет загрузить его без настройки.
У двух поставщиков XML может быть устроен совершенно по-разному. Например, цена у одного записана внутри товара, у другого — в отдельном блоке, связанном с ним по идентификатору. Поэтому сначала изучается структура файла, затем настраивается соответствие данных полям каталога.
Для таких задач я часто использую модуль «Импорт из XML, YML, JSON. Загрузка каталога товаров 1С-Битрикс». Он позволяет настроить загрузку полей, свойств, цен и остатков, сопоставить разделы и выполнять импорт по расписанию. Это удобный инструмент, когда выгрузку поставщика нужно адаптировать к структуре существующего сайта.
Однако возможность настройки нужно оценивать по конкретному файлу. Если данные требуют сложного объединения, нестандартных вычислений или обработки нескольких источников, может понадобиться предварительное преобразование выгрузки либо собственный скрипт.
Чем XML поставщика отличается от обмена с 1С
CommerceML — формат обмена коммерческими данными на основе XML. Для обмена с 1С в Битриксе предусмотрен специальный механизм. Произвольный XML поставщика не становится совместимым с ним только потому, что имеет такое же расширение.
Если каталог уже ведётся в 1С, обычно разумно настраивать обмен с учётной системой. При этом нужно определить источник каждого поля: например, цены и остатки приходят из 1С, а фотографии и описания — от поставщика. Без таких правил один импорт может перезаписывать результаты другого.
Загрузка товаров через API и собственный PHP-скрипт
API подходит, когда внешний сервис предоставляет доступ к каталогу, ценам и остаткам в виде запросов. Вместо ручной передачи файлов сайт получает данные автоматически — по расписанию или другому согласованному сценарию.
Обычно процесс выглядит так: обработчик обращается к API поставщика, получает данные, проверяет их, преобразует в структуру вашего каталога и создаёт либо обновляет товары в Битриксе.
Здесь важно различать API поставщика, откуда поступают данные, и PHP API Битрикса, через который обработчик записывает их на сайт. Наличие API у поставщика не означает, что его можно подключить к каталогу одной настройкой: между системами нужен механизм сопоставления и обновления.
В собственном импорте отдельно обрабатываются поля элемента инфоблока, свойства, параметры торгового каталога, цены и складские остатки. Просто создать элемент с названием и описанием недостаточно для полноценной товарной карточки интернет-магазина.
Разработка обработчика оправдана, когда нужно:
- объединять ассортимент нескольких поставщиков и сопоставлять одинаковые товары;
- рассчитывать цены по правилам категорий, брендов или закупочной стоимости;
- обрабатывать постраничные ответы API и ограничения числа запросов;
- загружать большой каталог порциями с продолжением после сбоя;
- обновлять только изменившиеся данные, если источник позволяет их получить;
- вести журнал ошибок и уведомлять о неудачных обновлениях.
Я разрабатываю такие интеграции для сайтов на 1С-Битрикс, когда готового профиля импорта недостаточно. Задача — сделать обновление каталога предсказуемым: с понятными правилами, проверками и контролем результата.
Можно ли спарсить товары с сайта поставщика
Да. Если у поставщика нет Excel, XML или API, данные можно собрать с его сайта с помощью парсера. Такой скрипт обходит страницы каталога и извлекает доступные сведения: артикулы, названия, характеристики, изображения, цены и наличие.
Дальше есть два пути: сохранить собранные данные в таблицу или XML для загрузки через модуль либо передать их непосредственно в собственный скрипт импорта Битрикса.
Перед сбором стоит согласовать с поставщиком использование данных и изображений, определить нужные разделы и допустимую частоту обращений. Парсер получает только то, что доступно в источнике: надпись «в наличии» не даёт точного складского остатка, а розничная цена на странице может отличаться от вашей закупочной.
Парсинг зависит от структуры сайта поставщика. После изменения вёрстки обработчик может потребовать доработки. Поэтому для постоянного обмена сначала стоит запросить выгрузку или API, а парсинг использовать, если подходящего источника нет.
В рамках наполнения каталога я могу настроить сбор данных, привести характеристики к единому виду и разработать загрузку на сайт. При этом отдельно определяются правила обновления: какие данные берём из источника, а какие сохраняем в вашей карточке.
Как обновлять каталог без дублей
Повторная загрузка должна находить существующую позицию, а не каждый раз создавать новую. Для этого нужен устойчивый ключ: внешний код поставщика, XML_ID или другой согласованный идентификатор.
XML_ID сам по себе не предотвращает дубли. Импортер должен искать товар по выбранному ключу в нужном каталоге и обновлять найденную запись. Для предложений также требуется собственный идентификатор и связь с основным товаром.
Сопоставление по артикулу подходит, если он действительно уникален и стабилен. При нескольких поставщиках артикулы могут повторяться; тогда нужен дополнительный признак источника или отдельная таблица соответствий. Название товара обычно ненадёжно: поставщик может изменить формулировку.
До запуска нужно согласовать три правила:
- Что обновлять. Например, цену и остаток при каждом импорте, описание — только при создании карточки.
- Как понимать пустые значения. Пустая ячейка может означать отсутствие новых данных или команду очистить поле — это разные действия.
- Что делать с отсутствующими товарами. Сохранить, деактивировать, обнулить остаток или отправить на проверку.
Отсутствие позиции в файле не всегда означает снятие с продажи. Прайс может содержать только часть ассортимента, а API — вернуть неполный ответ. Массовую деактивацию стоит выполнять только после проверки успешности и полноты загрузки.
Как проверить импорт перед запуском
Первую загрузку лучше выполнять на тестовой копии сайта или небольшой выборке после резервного копирования. В выборку стоит включить разные случаи: обычный товар, предложение, несколько фотографий, нулевой остаток и позицию с необычными характеристиками.
- Проверьте разделы, свойства и отображение товаров в фильтре.
- Сверьте цены, валюту, единицы продажи и остатки.
- Откройте карточки на сайте: загрузка в административную часть ещё не гарантирует правильного отображения в шаблоне.
- Повторите импорт и убедитесь, что дубли не появились, а ручные описания и адреса сохранились.
- Проверьте поведение при пустых значениях, отсутствии товара и ошибке получения файла.
- Для автоматической загрузки проверьте журнал выполнения и защиту от одновременных запусков.
Только после проверки стоит переносить настройки на весь каталог и включать регулярное обновление.
Когда ручной загрузки Excel уже недостаточно
Проблема возникает, когда обновление зависит от свободного времени сотрудника: прайс нужно скачать, поправить, загрузить, проверить и повторить для каждого поставщика. Пока это происходит, на сайте могут оставаться старые цены и недоступные товары.
Сам формат Excel не мешает автоматизации. Если поставщик публикует файл по постоянной ссылке и сохраняет его структуру, загрузку можно выполнять по расписанию. Переход к API или собственному обработчику нужен, когда усложняются правила, появляются несколько источников или требуется более оперативное обновление.
Я помогаю настроить импорт Excel и XML, обмен с 1С, интеграцию API поставщиков и загрузку данных после парсинга. Если импорт уже работает с ошибками, разбираюсь в причинах дублей, пропавших изображений и расхождений цен или остатков. Способ решения выбираю после изучения исходных данных и существующего каталога.
Настрою импорт и обновление каталога на 1С-Битрикс
Разберу ваш Excel, XML или API поставщика, проверю структуру каталога и предложу способ загрузки. Настрою обновление товаров, цен и остатков без дублей, а если готовой выгрузки нет — рассмотрю сбор данных с сайта поставщика и импорт скриптом.
Частые вопросы о загрузке товаров в Битрикс
Можно ли загрузить товары прямо из XLSX?
Да, через модуль, поддерживающий этот формат, или собственный обработчик. Для штатного CSV-импорта таблицу предварительно сохраняют в CSV.
Можно ли обновлять только цены и остатки?
Да. Для этого настраивается сопоставление существующих позиций и ограничивается список обновляемых данных. Важно убедиться, что импорт не очищает остальные поля.
Подойдёт ли любой XML для обмена с 1С?
Нет. Механизм обмена ожидает определённую структуру CommerceML. Для произвольного XML поставщика нужно отдельное сопоставление или преобразование данных.
Можно ли загружать товары автоматически?
Да, если источник доступен для автоматического получения. При настройке определяются расписание, правила обновления, обработка ошибок и действия с отсутствующими позициями.
Сколько стоит настройка импорта?
Стоимость зависит от структуры файла, качества данных, торговых предложений, количества источников и правил обновления. Для оценки пришлите пример выгрузки или документацию API и опишите, что нужно создавать и обновлять на сайте.
Виталий Николаев


