Мы часто сталкиваемся с ситуацией, когда клиенты тратят дни на ручное обновление каталога товаров. Десятки поставщиков, разные форматы — YML, CSV, CommerceML — и каждое изменение в фиде приходится вносить вручную. Автоматизация решает эту проблему: импортёр сам скачивает файл, парсит его и синхронизирует данные с Битриксом. Гибкая архитектура позволяет адаптироваться под любого поставщика без переписывания кода.
Фид поставщика — XML, CSV или YML-файл с товарным каталогом, который регулярно обновляется. Это самый чистый способ получать данные: никакой защиты от парсинга, структурированные данные, часто — договорённость на официальное использование. Задача сводится к построению надёжного импортёра, который умеет обновлять существующие товары, добавлять новые и не ломаться при изменении формата фида.
Автонаполнение каталога Битрикс из фидов поставщиков — это процесс, который экономит до 20 часов в неделю ручной работы. При внедрении потокового импорта с SAX-парсерами удаётся избежать простоев и ошибок персонала.
Форматы фидов
| Формат | Особенности | Скорость разбора | Сложность реализации |
|---|---|---|---|
| YML | Де-факто стандарт среди российских поставщиков, есть валидатор от Яндекса | Высокая (SAX) | Низкая — готовая схема |
| CommerceML | Формат 1С, Битрикс умеет нативно читать | Средняя | Средняя — много необязательных полей |
| CSV/XLSX | Структура уникальна для каждого поставщика, нужен ручной маппинг | Высокая | Высокая — требуется гибкая конфигурация |
| REST/JSON API | Технически не «фид», но логика обработки аналогичная | Высокая | Средняя — зависит от документации API |
Получение фида
Три варианта доставки:
- HTTP/HTTPS URL — самый удобный, просто file_get_contents() или Guzzle
- FTP/SFTP — подключаемся через ftp_connect() или phpseclib
- Email с вложением — парсим почту через IMAP, извлекаем файл
Для FTP и SFTP рекомендую хранить credentials в .env и читать через $_ENV, не в коде.
Как ускорить импорт при больших объёмах?
Для больших файлов (100+ МБ) используем SAX-парсер (XMLReader) вместо DOM. SAX обрабатывает файл потоково, без загрузки в память — критично при файлах от 50 МБ. Сравнение: SAX-парсер обрабатывает файл в 3 раза быстрее DOM при объёме свыше 100 МБ.
$reader = new XMLReader();
$reader->open($feedUrl);
while ($reader->read()) {
if ($reader->nodeType === XMLReader::ELEMENT && $reader->name === 'offer') {
$offer = new SimpleXMLElement($reader->readOuterXML());
$this->processOffer($offer);
}
}
Синхронизация: добавить, обновить, деактивировать
Импорт фида — это не просто «добавить всё». Нужна полная синхронизация:
- Новые позиции (есть в фиде, нет в Битриксе) →
CIBlockElement::Add() - Обновлённые (есть в обоих, данные изменились) →
CIBlockElement::Update() - Удалённые (есть в Битриксе, нет в фиде) → деактивируем (
ACTIVE = N) или удаляем
Почему стоит деактивировать товары, а не удалять?
Удаление товара разрывает связи с заказами и историей. Поэтому сначала деактивируем — через неделю, если товар не появился в следующем фиде, удаляем. Такой подход сохраняет целостность данных и позволяет легко восстановить позиции при ошибке в фиде.
Обработка вариантов товара (торговые предложения)
YML-фид часто содержит один <offer> на каждую вариацию. В Битриксе это торговые предложения (CATALOG_TYPE = 3). Логика:
- Группируем offers по vendorCode (артикул модели)
- Создаём родительский элемент (тип 2, товар с предложениями)
- Каждый offer → торговое предложение, привязанное к родителю
Таймлайн работ
| Этап | Срок |
|---|---|
| Анализ структуры фида, маппинг полей | 4–8 часов |
| Разработка импортёра с потоковым парсингом | 2–3 дня |
| Логика синхронизации (новые/обновлённые/удалённые) | 1–2 дня |
| Обработка торговых предложений | 1–2 дня |
| Настройка расписания, мониторинг | 4–6 часов |
Итого: 5–9 рабочих дней на одного поставщика с нестандартным форматом. Стандартный YML — ближе к нижней границе.
Что входит в работу
- Анализ структуры фида и консультация по источникам
- Разработка импортёра с поддержкой потокового парсинга
- Настройка расписания и мониторинг ошибок
- Документация по процессу (архитектура, конфиги)
- Обучение вашего администратора работе с системой
- Гарантийная поддержка 1 месяц после ввода в эксплуатацию
Наша команда — это инженеры с 10+ годами коммерческого опыта в Битрикс. Более 50 проектов по интеграции фидов поставщиков выполнено успешно. Мы гарантируем, что импортёр будет работать стабильно и не сломается при изменении данных.
Оцените ваш проект: пришлите образец фида — мы выполним предварительный анализ структуры и назовём точную стоимость и сроки. Получите консультацию по автоматизации импорта каталога — это бесплатно.
Экономия: автоматизация исключает ручные ошибки и сокращает время обновления каталога с 20 часов в неделю до нескольких минут. Это снижает операционные затраты и уменьшает количество товаров с неверными ценами, что экономит до 15% выручки.
Рекомендации по формату YML от Яндекса и документация Битрикс по торговому каталогу помогут разобраться в структуре фида.







