Поставщик прислал прайс в CSV, а в 1С нет — и владелец магазина вечером пытается залить сотни позиций через админку. Открыли файл в Excel, кириллица превратилась в иероглифы, импорт написал «обработано 0 элементов» или создал дубли, а витрина опустела. Ниже — путь для 1С-Битрикс: Управление сайтом: CSV с XML_ID, мастер Import CSV (new) и чек-лист, чтобы повторная загрузка обновляла цены, а не ломала каталог.
CSV-импорт в CMS работает без обмена с 1С: уникальный внешний код XML_ID определяет, обновить товар или создать новый. Сначала экспортируйте шаблон из каталога, заполните 3-5 тестовых строк в UTF-8, пройдите мастер Import CSV (new) и только потом грузите весь прайс. Не правьте файл в Excel без контроля кодировки - так чаще всего ломается витрина при сохранении.
Речь про коробочный 1С-Битрикс: Управление сайтом. Облачная CRM того же вендора - другой продукт без мастера Import CSV. Если обмен с 1С уже настроен, смотрите гайд по CommerceML - здесь только ручная загрузка из таблицы.
Выберите способ загрузки: CSV, обмен с 1С или Excel-модуль
Один и тот же прайс можно залить тремя путями. Выбор зависит от источника данных, наличия 1С и того, правит ли менеджер файл в Excel каждую неделю.
| Ситуация | Штатный Import CSV (new) | Обмен CommerceML с 1С | Модуль импорта из Excel |
|---|---|---|---|
| Прайс от поставщика в CSV, 1С нет | Да, основной сценарий статьи | Нет смысла без учетной системы | Можно, если удобнее XLSX |
| Каталог ведется в 1С:УТ / Розница | Только разовая подгрузка | Да, регулярная синхронизация | Редко |
| Менеджер правит цены в Excel каждую неделю | Да, после сохранения в UTF-8 CSV | Если настроен обмен - лучше он | Да, без конвертации в CSV |
| Тысячи SKU с вариантами размера | Два файла: товары + предложения | Обычно через 1С | Зависит от модуля |
Если источник - XLSX от поставщика, конвертируйте лист в CSV с UTF-8 или рассмотрите модуль импорта из Excel на маркетплейсе - штатный мастер ждет именно CSV.
Делайте: для разовой или периодической загрузки прайса без 1С используйте Import CSV (new). Не делайте: не путайте этот путь с интеграцией сайта с 1С - там протокол CommerceML, профили в catalog_import и связка с учетной системой, а не ручной CSV из почты поставщика.
Подготовьте инфоблок каталога и шаблон экспорта
Импорт пишет в уже существующий инфоблок. Каталог не готов - сначала создайте инфоблок и привяжите его в модуле "Торговый каталог". Нужны разделы, свойства, права "Управление импортом/экспортом" и бэкап до теста.
Шаблон колонок берите из Export CSV (new): Магазин → Настройки → Импорт данных (без модуля магазина - Контент → Инфоблоки → Экспорт). В файле будут IE_XML_ID, IE_NAME, IE_ACTIVE, цены, разделы.
Делайте: в модуле "Торговый каталог" отметьте поля для экспорта/импорта. Не делайте: не смешивайте экспорт из "Магазин" и "Контент" без сверки заголовков - "файл из своего экспорта" часто не проходит маппинг.
Соберите CSV: XML_ID, кодировка и обязательные поля
CSV - текстовая таблица: колонки через точку с запятой или запятую. Ключевое поле XML_ID (внешний код) показывает, обновить товар или создать новый. Без XML_ID сопоставление идет по NAME - и дубли появляются при малейшем отличии в названии.
Минимальный набор для строки: IE_XML_ID (уникальный артикул), IE_NAME, IE_ACTIVE (Y/N), раздел по шаблону экспорта, колонки цен и валюты. Дополнительные свойства - бренд, цвет, материал - добавляйте только если они уже созданы в инфоблоке, иначе импорт пропустит колонку или выдаст ошибку по обязательному полю.
Кодировка — UTF-8. Excel при «Сохранить как» часто ломает кириллицу. На практике правят файл в Notepad++, VS Code или Calc с UTF-8; для Windows-1251 включите перекодировку на шаге разделителей.
Делайте: присвойте каждой позиции стабильный XML_ID и не меняйте его между загрузками. Не делайте: не открывайте большой UTF-8 файл в Excel "просто поправить цену" без проверки кодировки после сохранения.
Пройдите мастер Import CSV (new) за три шага
Мастер Import CSV (new) - пошаговая форма в админке: загружает файл и сопоставляет колонки с полями инфоблока. Путь: Магазин → Настройки → Импорт данных → Import CSV (new). На шаге 1 выберите инфоблок каталога и укажите XML_ID как уникальный идентификатор - не NAME, иначе при опечатке в названии появится дубль.
Схема мастера:
Файл и инфоблок → разделители и кодировка → маппинг колонок → запуск импорта пакетами
- Шаг 1 - файл и инфоблок. Укажите CSV на сервере или загрузите с компьютера. Выберите инфоблок каталога. В поле "Уникальный идентификатор" поставьте XML_ID (внешний код), не NAME.
- Шаг 2 - разделители. Для файлов из Excel в России чаще подходит точка с запятой. Включите "первая строка содержит имена полей". Проверьте превью: названия колонок должны читаться по-русски.
- Шаг 3 - маппинг. Сопоставьте колонки: IE_XML_ID → внешний код, IE_NAME → название, цены → типы цен. Свойства из CSV маппятся на IP_PROP* - коды смотрите в экспортном шаблоне. Картинки: путь upload/import/goods/ на сервере или пропуск с ручной дозагрузкой.
- Запуск. Нажмите "Начать импорт". Для тысяч позиций поставьте "время выполнения шага" 30-60 секунд - мастер пойдет пакетами и не оборвется по таймауту скрипта.
- Контроль. После первых 3-5 строк откройте каталог в админке и на витрине: раздел, цена, активность. Только затем грузите полный прайс.
Делайте: сохраните настройки мастера как профиль - при следующем прайсе маппинг подтянется автоматически. Не делайте: не грузите полный файл, если тест дал "0 элементов" - сначала разделитель, кодировка и заголовки.
Настройте повторный импорт, цены и торговые предложения
Повторная загрузка с теми же XML_ID обновляет цены, остатки и свойства без новых карточек. Сценарий для еженедельного прайса: правите цифры в CSV, запускаете сохраненный профиль Import CSV. Если в файле новый XML_ID - появится новый товар; старый код не трогайте у позиций, которые уже продаются.
SKU (варианты размера/цвета) импортируют отдельным файлом во второй инфоблок: в CML2_LINK - XML_ID родителя. Структуру SKU разбираем в гайде про торговые предложения; правило простое: сначала товары, потом предложения.
Картинки: файлы в upload/... и путь в маппинге, либо импорт без фото с ручной дозагрузкой. Для ежедневного прайса профиль можно повесить на cron - но сначала отладьте ручной запуск.
Делайте: после обновления цен проверьте остатки на складах в CMS. Не делайте: не меняйте XML_ID у товаров, которые уже в заказах и на витрине - система воспримет их как новые позиции.
Проверьте каталог по чек-листу перед публикацией
Типичная ошибка: менеджер правит цены в Excel и сразу грузит файл обратно — тысячи ошибок и пустая витрина. Виноваты кодировка, пустой XML_ID, неактивные разделы.
- Бэкап до импорта.
- Тест 3-5 строк с известными XML_ID.
- Повтор с новой ценой - без дублей.
- Витрина: название, цена, раздел, карточка товара.
- Остатки и кеш сайта.
- Лог импорта без критических ошибок.
"Невозможно идентифицировать элемент" - нет XML_ID/NAME или неверный маппинг. "0 элементов" - разделитель или кодировка.
Нужна помощь с первым импортом или настройкой профиля под прайс поставщика - напишите через форму контактов. Разберем ваш CSV на тестовой копии, чтобы полный прайс не задел боевую витрину.
Автор: Максим Мольков, разработчик 1С-Битрикс.
Источники: справка Import CSV (new), официальный урок "Импорт данных", практика внедрений интернет-магазинов на CMS.
Частые вопросы
Можно ли импортировать товары в Битрикс без 1С?
Да. Штатный Import CSV (new) в админке CMS загружает и обновляет каталог из таблицы без учетной системы. Нужны готовый инфоблок, CSV с XML_ID и права на импорт.
Чем CSV-импорт отличается от обмена с 1С?
CSV - ручная или cron-загрузка файла с вашими колонками. Обмен CommerceML - автоматическая синхронизация каталога, цен и остатков из 1С по расписанию. Для разового прайса от поставщика достаточно CSV.
Какие поля обязательны в CSV-файле?
Минимум - уникальный IE_XML_ID или IE_NAME плюс нужные колонки цен и разделов из экспортного шаблона. Без XML_ID повторный импорт чаще создает дубли вместо обновления.
Как обновить цены через повторный импорт?
Сохраните те же XML_ID, измените колонки цен в CSV и запустите тот же профиль Import CSV. Система найдет товары по внешнему коду и перезапишет цены без новых карточек.
Куда класть картинки перед загрузкой?
Скопируйте файлы в папку на сервере, например upload/import/goods/, и в маппинге укажите относительный путь в колонках превью или детальной картинки. Либо импортируйте товары без фото и добавьте изображения вручную в админке.
Почему импорт пишет "обработано 0 элементов"?
Проверьте разделитель (точка с запятой для Excel), кодировку UTF-8, галку "первая строка - имена полей" и что файл не пустой после сохранения из Excel. Запустите тест на 3 строках с превью на шаге 2.
Было полезно?
Поставьте лайк, если статья помогла разобраться.
Поделиться статьёй
Отправьте тому, кому это пригодится.
Можно поделиться и фрагментом: выделите текст статьи.